Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Current state: Under Discussion Adopted

Discussion thread: here

JIRA: here 

...

Since KIP-690: Add additional configuration to control MirrorMaker 2 internal topics naming convention, the replication.policy.separator has been used to control the name of internal topics for DefaultReplicationPolicy, causing backward compatibility issues if with offset syncs and checkpoint topics when users set a customized replication.policy.separator. This impacted 3.1, 3.2, 3.3, 3.4, 3.5 versions. 

...

In this KIP, we are proposing to add replication.policy.internal.topic.separator.enabled to allow customers to control this using configurations instead of providing a new implementation for both checkpoints and offset sync topics. The heartbeat topic isn't controlled by the separator at all.

Public Interfaces

PropertyDefault value Description
replication.policy.internal.topic.separator.enabledtrue

whether or not to use replication.policy.separator to control internal topic names

...

Code Block
languagejava
public class DefaultReplicationPolicy implements ReplicationPolicy, Configurable {

	private Boolean isInternalTopicSeparatorEnabled;
	
    @Override
    public void configure(Map<String, ?> props) {
        if (props.containsKey(INTERNAL_TOPIC_SEPARATOR_ENABLED_CONFIG)) {
            isInternalTopicSepratorEnabled = (Boolean) props.get(INTERNAL_TOPIC_SEPRATOR_ENABLED_CONFIG);
        }
    }
    
    private String internalSuffixinternalSeparator() {
        return isInternalTopicSeparatorEnabled ? separator + "internal" : ".internal";
    }

    public String offsetSyncsTopic(String clusterAlias) // should use internalSeparator() to name the offset sync topic
    public String checkpointsTopic(String clusterAlias) // should use internalSeparator() to name the offset topic
 }

Backporting plan

  • The KIP need to be released as part of the bugfix release to the last 3 versions
  • The KIP need to be backported into 3.1 and 3.2 (any other version reached EOL post KIP-690).  

...