[ 
https://issues.apache.org/jira/browse/KAFKA-14485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17938848#comment-17938848
 ] 

Chia-Ping Tsai commented on KAFKA-14485:
----------------------------------------

[~javakillah] that is a good question. we have different ways to handle the 
dynamical config in code base.

1. using the self-updated KafkaConfig, likes `ReplicaManager`
2. using the reconfigurable interface to refresh the inner config, likes 
`LogCleaner`

Personally, I don't like the self-updated KafkaConfig, since it creates 
complicated dependencies and god object.

Go back to your question. I prefer to try following changes.

1. move the cleaner-related getters from KafkaConfig to `CleanerConfig`
2. temporarily allow `KafkaConfig` to create `CleanerConfig` to access the 
getters for some config
3. CleanerConfig constructor can take `AbstractConfig` to initialize all 
variables

In order to address above changes, we can move 
`org.apache.kafka.server.config.BrokerReconfigurable` to server-common module 
and change the "AbstractKafkaConfig" to "AbstractConfig". Of course, we need to 
do a bit refactor for `DynamicProducerStateManagerConfig`

> Move LogCleaner to storage module
> ---------------------------------
>
>                 Key: KAFKA-14485
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14485
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Ismael Juma
>            Assignee: Dmitry Werner
>            Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to