Sorry for not getting email reminders and ignoring your reply for getting back 
so late, Yash Mayya, Greg Harris, Sagar.

Thank you for your thoughts and suggestions, I learned a lot, I will give my 
thoughts and answers in a comprehensive way:
1. The default configuration of 50MB is the online configuration I actually 
used to solve this problem, and the effect is better (see the description of 
jira:https://issues.apache.org/jira/projects/KAFKA/issues/KAFKA-15086?filter=allopenissues.
 In fact, I think it may be better to set this value smaller, so I abandoned 
the default value like __consumer_offsets, but I don't know how much the 
default value is the best.). Secondly, I also set the default value of 50MB 
online through ConfigDef#defineInternal, and if the value configured by the 
user is greater than the default value, the warning log will be displayed, but 
the only difference from your said is that I will overwrite the value 
configured by the user with the default value (emmm, this point was denied by 
Chris Egerton: https://github.com/apache/kafka/pull/13852, in fact, you all 
agree that should not directly override the user-configured value, and now I 
agree with this). 
2. I think the potential bug that Greg mentioned may lead to inconsistent state 
between workers is a great point. It is true that we cannot directly change the 
configuration for an existing internal topics. Perhaps a more tricky and 
disgusting approach is that we manually find that the active segment sizes of 
all current partitions are relatively small, first stop all connect instances, 
then change the topic configuration, and finally start the instances.

To sum up, I think whether the scope of the KIP could be reduced to: only set 
the default value of the 'segment.bytes' of the internal topics and make a 
warning for the bigger value configured by the user. What do you think? If 
there's a better way I'm all ears.

best,
hudeqi

Reply via email to