Kowshik Prakasam created KAFKA-13701:
----------------------------------------
Summary: Pin background worker threads for certain background work
(ex: UnifiedLog.flush())
Key: KAFKA-13701
URL: https://issues.apache.org/jira/browse/KAFKA-13701
Project: Kafka
Issue Type: Improvement
Reporter: Kowshik Prakasam
Certain background work such as UnifiedLog.flush() need not support
concurrency. Today in the existing KafkaScheduler, we are not able to pin
background work to specific threads. As a result we are unable to prevent
concurrent UnifiedLog.flush() calls, so we have to ensure UnifiedLog.flush()
implementation is thread safe by modifying the code at subtle areas (ex: [PR
#11814|https://github.com/apache/kafka/pull/11814]). The code will be simpler
if instead KafkaScheduler (or alike) could support pinning of certain
background work to specific threads, for example the UnifiedLog.flush()
operation for the same topic-partition will go to the same thread. This will
ensure strict ordering of flush() calls, thereby enabling us to write simpler
code eventually.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)