I have created a proposal for sharing the thread pool across client
instances.
Here is the PIP discussion thread

https://lists.apache.org/thread/5jw06hqlmwnrgvbn9lfom1vkwhwqwwd4

Thanks for all your suggestions

-- Penghui

On Mon, Dec 26, 2022 at 9:39 PM PengHui Li <peng...@apache.org> wrote:

> > I think that we can change this default but we should provide an official
> API to share the threadpools between the clients.
>
> That sounds good to me.
> Since it will introduce a new API to the client side.
> I will create a new proposal for the API changes.
>
> Thanks,
> Penghui
>
> On Mon, Dec 26, 2022 at 8:21 PM Enrico Olivelli <eolive...@gmail.com>
> wrote:
>
>> I am sorry, I am late on this train.
>>
>> Unfortunately if you have to connect using different authentication
>> parameters you need to open many PulsarClients.
>>
>> I think that we can change this default but we should provide an official
>> API to share the threadpools between the clients.
>>
>> There is no need to explicitly espose all the threadpools, that is
>> difficult for users to deal with.
>> We should have an API to allow sharing resources among multiple clients.
>>
>> Interface PulsarClientGroup ....
>>
>>
>> PulsarClient client = ....newClient().
>> .withGroup(pulsarClientGroup)
>> ....
>>
>>
>>
>> Enrico
>>
>> Il Lun 26 Dic 2022, 12:44 Ran Gao <r...@apache.org> ha scritto:
>>
>> > It seems this change will not affect the consumer, because the default
>> > executor is a single-thread executor service, increasing the listener
>> > threads number will allocate different single-thread executor services
>> to
>> > different consumers.
>> >
>> > On 2022/12/21 09:01:39 Yunze Xu wrote:
>> > > I have a concern about the message ordering. If we have more than 1
>> > > listener thread by default, could messages from the same topic be
>> > > passed to different listener threads?
>> > >
>> > > Thanks,
>> > > Yunze
>> > >
>> > > On Wed, Dec 21, 2022 at 11:12 AM 丛搏 <bog...@apache.org> wrote:
>> > > >
>> > > > +1
>> > > > Our default configuration is best for most users. Multiple clients
>> are
>> > > > a few cases.
>> > > >
>> > > > Thanks,
>> > > > Bo
>> > > >
>> > > > houxiaoyu <anonhx...@gmail.com> 于2022年12月20日周二 16:02写道:
>> > > > >
>> > > > > +1
>> > > > >
>> > > > > This change might bring thread number increment in case users
>> create
>> > many
>> > > > > clients, but too many pulsar clients run in one machine is not a
>> > good use
>> > > > > case I think,  so this change looks good to me.
>> > > > >
>> > > > > Thanks,
>> > > > > Xiaoyu Hou
>> > > > >
>> > > > > <mattisonc...@gmail.com> 于2022年12月20日周二 12:25写道:
>> > > > >
>> > > > > > +1
>> > > > > >
>> > > > > > My concern is whether this change will affect some users who are
>> > creating
>> > > > > > many clients. I think we can wait for other users to confirm it.
>> > (If this
>> > > > > > will be affected, maybe we can give it a max_io_thread_num and
>> > then expand
>> > > > > > the size from 1 to max_io_thread_num when adding a new consumer
>> or
>> > producer)
>> > > > > >
>> > > > > >
>> > > > > > Best,
>> > > > > > Mattison
>> > > > > > On Dec 20, 2022, 11:17 +0800, PengHui Li <peng...@apache.org>,
>> > wrote:
>> > > > > > > Hi all,
>> > > > > > >
>> > > > > > > I noticed the Java Client (I haven't checked other clients)
>> uses
>> > 1 IO
>> > > > > > > thread and 1 listener
>> > > > > > > thread by default. It will require users to update the thread
>> > > > > > configuration
>> > > > > > > if they have
>> > > > > > > multiple cores and desired high throughput.
>> > > > > > >
>> > > > > > > Here is the example that we change to 16 IO threads in
>> > > > > > > openmessaging benchmark
>> > > > > > >
>> > > > > >
>> >
>> https://github.com/openmessaging/benchmark/blob/master/driver-pulsar/pulsar.yaml#L22
>> > > > > > >
>> > > > > > > We can apply the configuration of the threads based on the CPU
>> > cores. So
>> > > > > > > that for the
>> > > > > > > most common cases, users don't need to touch the thread
>> > configuration.
>> > > > > > >
>> > > > > > > ```
>> > > > > > > private int numIoThreads =
>> > Runtime.getRuntime().availableProcessors();
>> > > > > > > private int numListenerThreads =
>> > > > > > Runtime.getRuntime().availableProcessors();
>> > > > > > > ```
>> > > > > > >
>> > > > > > > WDYT?
>> > > > > > >
>> > > > > > > Thanks,
>> > > > > > > Penghui
>> > > > > >
>> > >
>> >
>>
>

Reply via email to