jim0987795064 opened a new pull request, #20170:
URL: https://github.com/apache/kafka/pull/20170

   RoundRobinPartitioner behaviour was broken by sticky partitioning (KIP-480).
   
   This patch addresses the behavioural issue caused by the second call to 
`partition()` after `onNewBatch()`, in a predicatable and thread-safe manner.
   
   Unit tested by simulation of multiple threads producing to two topics with 
race conditions.
   
   **Changes:
   - Store the last used partition per batch in a thread-safe queue to ensures 
thread-safety across multiple producer threads.
   - Adds unit tests that simulate multiple threads producing to two topics.
   
   **Reasons:
   - The original round-robin algorithm relies on a shared counter, which can 
result in multiple threads assigning the same partition for new batches. This 
breaks the intended even distribution and causes partition skew.


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