squah-confluent commented on PR #20055:
URL: https://github.com/apache/kafka/pull/20055#issuecomment-3017816001

   * I "optimized" away a transition to `UNREVOKED_PARTITIONS` when the 
subscription has changed, but the client doesn't own the revoked partitions 
anyway. This makes the client re-enter the `STABLE` state 1 heartbeat sooner. 
It adds a `ownsRevokedPartitions` call, which has a small performance hit 
(compare `stableToUnrevokedPartitionsWithSubscriptionChange` and 
`stableToStableWithSubscriptionChange` in the benchmarks below).
   
   * I discovered an interesting behavior when transitioning away from 
`UNREVOKED_PARTITIONS`. When the target assignment contains a partition that 
was previously pending revocation, the member enters the 
`UNRELEASED_PARTITIONS` state, as if another member was holding the partition. 
On the next reconcile, I think there is no issue. I haven't tried to fix this 
behavior since it existed before this PR.
   
   I reran the benchmarks with the largest parameter sizes:
   ```
   Benchmark                                                                    
        (partitionsPerTopic)  (topicCount)  Mode  Cnt   Score   Error  Units
   CurrentAssignmentBuilderBenchmark.stableToStableWithNewTargetAssignment      
                          50          1000  avgt        2.771          ms/op    
   CurrentAssignmentBuilderBenchmark.stableToStableWithNoChange                 
                          50          1000  avgt       ≈ 10⁻⁶          ms/op    
   CurrentAssignmentBuilderBenchmark.stableToStableWithSubscriptionChange       
                          50          1000  avgt        0.046          ms/op
   
CurrentAssignmentBuilderBenchmark.stableToUnrevokedPartitionsWithSubscriptionChange
                    50          1000  avgt        0.059          ms/op
   JMH benchmarks done                                                          
                                                                    
   ```


-- 
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.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

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

Reply via email to