Re: OrderedScheduler & OrderedExecutor in bookkeeper client

2018-08-23 Thread Ivan Kelly
> In the case of OrderedExecutor, it needs a BlockingQueue and the current > default is to use JDK LinkedBlockingQueue which relies on CAS for > enqueue/dequeue. Additional room for improvement here is to use a more > specialized MP-SC queue with different wait strategies. +1 to this, though

Re: OrderedScheduler & OrderedExecutor in bookkeeper client

2018-08-23 Thread Matteo Merli
The reason for the performance difference between the OrderedExecutor and the OrderedScheduler is the underlying queue that is used to pass tasks to the executor thread. In the case of OrderedExecutor, it needs a BlockingQueue and the current default is to use JDK LinkedBlockingQueue which relies

Re: OrderedScheduler & OrderedExecutor in bookkeeper client

2018-08-23 Thread Ivan Kelly
> I don't think it is accidently. OrderedExecutor has performance advantages > than OrderedScheduler. > > A bit background on this: > > - OrderedScheduler was introduced by me. And I changed existing > OrderedSafeExecutor to be extending from OrderedScheduler. > Trying to standarize to one

Re: OrderedScheduler & OrderedExecutor in bookkeeper client

2018-08-23 Thread Sijie Guo
On Thu, Aug 23, 2018 at 6:35 AM Ivan Kelly wrote: > >> We currently create an OrderedExecutor and an OrderedScheduler in the > >> client. An OrderedScheduler is an OrderedExecutor. Moreover, it's very > >> seldom used (basically for polling LAC, speculative reads and explicit > >> flush. > > > >

Re: OrderedScheduler & OrderedExecutor in bookkeeper client

2018-08-23 Thread Ivan Kelly
>> We currently create an OrderedExecutor and an OrderedScheduler in the >> client. An OrderedScheduler is an OrderedExecutor. Moreover, it's very >> seldom used (basically for polling LAC, speculative reads and explicit >> flush. > > Why do they exist? Are they only legacy from past or is there

Re: OrderedScheduler & OrderedExecutor in bookkeeper client

2018-08-23 Thread Enrico Olivelli
Il gio 23 ago 2018, 12:09 Ivan Kelly ha scritto: > Hi folks, > > We currently create an OrderedExecutor and an OrderedScheduler in the > client. An OrderedScheduler is an OrderedExecutor. Moreover, it's very > seldom used (basically for polling LAC, speculative reads and explicit > flush. > Why