Hello, folks.

I would like to start discussing the pulsar internal thread pool sorting out.

How did I get this idea?

Recently, we met some problems with the BK operation timeout. After 
investigating, we found an issue that is we share the IO executor(workgroup) 
with the Bookkeeper client and internal client and do some other async task in 
the dispatcher or somewhere to avoid deadlock.

But the problem over here. If we use this executor to do some kind of 
`blocking`(or spend much time computing. e.g. reply to many delayed messages) 
operation, it will block BK clients from sending requests if they are using the 
same thread.

And then, I checked all the usage of the thread pool. We need the rule to 
constrain what thread pool we should use.

What am I expecting?

I want to collect all the thread pools and define a clear usage guide to avoid 
wrong use and improve the fault tolerance(the component problem shouldn't 
affect the whole broker)



I need to hear your guy's opinions. Please feel free to leave any questions. 
Thanks!


Best,
Mattison


Reply via email to