DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
The configuration can be applied at the topic, broker, or cluster level. However, for some configurations, our primary concern is the behavior of topics, or ensuring that topics operate consistently across the cluster, rather than expecting the same topic to behave differently on different brokers. For example, if there are two brokers with different settings for min.insync.replicas, moving a leader to a different broker would change its behavior with respect to the min.insync.replicas semantics.
...
- min.insync.replicas
- unclean.leader.election.enable
- message.max.bytes
- log.message.timestamp.type
- log.cleanup.policy
...
Cluster's first startup
- On the cluster's first startup, initialize proposed configurations at the cluster level with their static default values.
incrementalAlterConfigs and the deprecated AlterConfigs APIs
- Disallow setting these configurations at the broker level via the incrementalAlterConfigs API or the deprecated AlterConfigs API. The
...
- INVALID_CONFIG error with the corresponding error message will be returned if such requests are made.
- Disallow removing these configurations at the cluster level via the incrementalAlterConfigs API or the deprecated AlterConfigs API. The
...
- INVALID_CONFIG error with the corresponding error message will be returned if such requests are made.
Upgrade
- When upgrading to a
...
- MetadataVersion that includes this KIP, any proposed configurations at the broker level will be removed. For the cluster level, if they are not set, they will be initialized to their default values. The default values are the static configs.
...
New Errors
...
...
Proposed Changes
Cluster's first startup
On the cluster's first startup, initialize the proposed configurations at the cluster level. Since dynamic configs have higher priority, any corresponding static broker configs will not take effect.
incrementalAlterConfigs and the deprecated AlterConfigs APIs
Disallow setting the proposed configurations at the broker level and removal of proposed configurations at the cluster level. The corresponding new errors will be thrown if this kind of such requests are received.
Upgrade
When using the updateFeatures API to upgrade to a version MetadataVersion that includes this KIP change:
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
public enum GuardedBrokerConfig {
MIN_IN_SYNC_REPLICAS(MIN_IN_SYNC_REPLICAS_CONFIG, ConfigDef.Type.INT),
UNCLEAN_LEADER_ELECTION_ENABLE(UNCLEAN_LEADER_ELECTION_ENABLE_CONFIG, ConfigDef.Type.BOOLEAN),
MESSAGE_MAX_BYTES(MESSAGE_MAX_BYTES_CONFIG, ConfigDef.Type.INT),
LOG_MESSAGE_TIMESTAMP_TYPE(LOG_MESSAGE_TIMESTAMP_TYPE_CONFIG, ConfigDef.Type.STRING),
LOG_CLEANUP_POLICY(LOG_CLEANUP_POLICY_CONFIG, ConfigDef.Type.STRING);
private final String configName;
private final ConfigDef.Type type;
private static final Map<String, GuardedBrokerConfig> NAME_TO_CONFIG = new HashMap<>();
static {
for (GuardedBrokerConfig config : GuardedBrokerConfig.values()) {
NAME_TO_CONFIG.put(config.configName, config);
}
}
GuardedBrokerConfig(String name, ConfigDef.Type type) {
this.configName = name;
this.type = type;
}
// ... remaining helper methods ... //
} |
Compatibility, Deprecation, and Migration Plan
...
Rejected Alternatives
1. Disallow alter API reqeusts requests with warnings and ignore setting
...