Klose6 opened a new pull request, #345:
URL: https://github.com/apache/cassandra-sidecar/pull/345

   CdcPublisher subscribes to several event-bus addresses (token-range changed, 
range gained/lost, server stop, CDC cache warmed up) via 
vertx.eventBus().localConsumer(), so handle(Message) runs on the event loop. 
The four range/stop branches previously called handleTokenRangeChange / 
handleRangeGained / handleRangeLost / stop
   synchronously, all of which transitively perform blocking work(closing the 
Kafka producer, stopping SidecarCdc consumers, querying virtual tables). This 
blocks the event loop and can starve other Vert.x consumers under topology 
churn.
   Dispatch those four branches to the shared worker pool via 
executorPools.executeBlocking(), matching the existing
   ConfigChangedHandler pattern. Keep ON_CDC_CACHE_WARMED_UP on the event loop 
since it is only a single volatile write. Drop the now-redundant synchronized 
from handle() (event-loop-dispatched consumers cannot race with themselves; the 
actual handler methods remain synchronized).


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to