...
KIP-226 added support for dynamic update of broker configuration. In this KIP, we propose to extend the support to dynamic update of a group of operationally important broker configs which will benefit the replication process.
...
Config | Use case |
---|---|
fetch.max.bytes | Maximum bytes expected for the entire fetch response. |
failed.authentication.delay | Connection close delay on failed authentication. |
replica.fetch.response.max.bytes | Maximum bytes expected for the entire fetch response. |
replica.fetch.wait.max.ms | Max wait time for each fetcher request issued by follower replicas. |
follower.replication.throttled (new config to add) | Should all replication follower throttle |
leader.replication.throttled (new config to add) | Should all replication leader throttle |
- fetch.max.bytes: ReplicaManager will multi-inherit from BrokerReconfigurable but no reconfigurable interfaces need to be implemented since the fetcher request will calculate fetchMaxBytes as the minimum of fetchRequest.maxBytes and config.fetchMaxBytes
- failed.authentication.delay:
SocketServer
already implemented theReconfigurable
interface. Setter method will be added in bothProcessor
andSelector
and update theSelector::
failedAuthenticationDelayMsProp
variable in theReconfigure
callback. - replica.fetch.response.max.bytes: The two class ReplicaAlterLogDirsThread and ReplicaFetcherThread read this config as their class variable when they initialize. So they will multi-inherit from BrokerReconfigurable and implemented setter method to modify the class variable in the Reconfigure callback.
Public Interfaces
This KIP introduces two new broker level configs related to replication throttle:
...
- follower.replication.throttled - Should all replication follower throttle
...
- leader.replication.throttled - Should all replication leader throttle
Currently, we have two similar topic level configs:
leader.replication.throttled.replicas: A list of replicas for which log replication should be throttled on the leader side. The list should describe a set of replicas in the form [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:... or alternatively the wildcard '*' can be used to throttle all replicas for this topic.
follower.replication.throttled.replicas: A list of replicas for which log replication should be throttled on the follower side. The list should describe a set of replicas in the form [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:... or alternatively the wildcard '*' can be used to throttle all replicas for this topic.
However, sometimes operational people may want to throttle all the replication leader / follower. It's hard for them to achieve this using the topic level replication throttles.
Compatibility, Deprecation, and Migration Plan
...