kowshik edited a comment on pull request #9001:
URL: https://github.com/apache/kafka/pull/9001#issuecomment-702023940


   > Just looked through the change for firstActiveVersion, which makes sense. 
The only question I have is that if I'm doing a bold release by removing the 
deprecated code completely, such that previously I have version range [1, 6] 
and now the code only supports [4, 6] for a pair [min, max], would my 
deployment be successful automatically?
   
   @abbccdda Thanks for the review! I've addressed the comments from your most 
recent pass in a7f4860f5f8bb87cfb01452e208ff8f4e45bcd8b. To answer your 
question, the deployment will fail if the feature was finalized at say 
`[minVersionLevel=1, maxVersionLevel=6]` previously, but the new broker only 
supports version range: `[minVersion=4, maxVersion=6]`. This is where 
`firstActiveVersion` becomes useful. By bumping it up during a release (instead 
of the supported feature's `minVersion`), we are able to get past this 
situation. When `firstActiveVersion` is advanced in the code, and the cluster 
is deployed, the controller (and all brokers) know that the advancement acts a 
request to the controller to act upon the feature deprecation (by writing the 
advanced value to `FeatureZNode`). So, in this case we would release the broker 
with the supported feature version range: `[minVersion=1, firstActiveVersion=4, 
maxVersion=6]`.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to