You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@bookkeeper.apache.org by GitBox <gi...@apache.org> on 2022/07/03 18:56:45 UTC

[GitHub] [bookkeeper] merlimat opened a new pull request, #3384: Switch back ordered executor to LinkedBlockingQueue

merlimat opened a new pull request, #3384:
URL: https://github.com/apache/bookkeeper/pull/3384

   ### Motivation
   
   In #3108, we have switched to use GrowableArrayBlockingQueue for the OrderedExecutor.
   
   I've been doing some testing recently, with respect with throughput and latencies when there are many small requests being passed on. This was on newer machines and using Java 17, so my conclusion is that many things have changed since when I did add that class back in the day :). 
   
   I've tested with `LinkedBlockingQueue`, `GrowableArrayBlockingQueue`, JCTools based queue and Cognizant disruptor based queue, in the context of the OrderedExecutor, running in a Pulsar broker and BK bookie.
   
   I've actually lost the document with all the results :/, though the summary was that: 
    1. `LinkedBlockingQueue` had the best throughput and latency. Behavior was very stable
    2. `GrowableArrayBlockingQueue` had decent throughput (slightly lower than LBQ) and worse latency, a bit jumpy. 
    3. JCTools and Cognizant disruptor based blocking MP-SC queues all had much worse performance overall, and causing lot of variance in the throughput and latency.
    4. I tried to perform some improvements on `GrowableArrayBlockingQueue` aimed at reducing contention and avoid locking in few cases to assume a single consumer, though I wasn't able to achieve any better result there.
   
   Result: I think we should stick the default LBQ.
   
   cc/ @lhotari 


-- 
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: issues-unsubscribe@bookkeeper.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [bookkeeper] dlg99 commented on pull request #3384: Switch back ordered executor to LinkedBlockingQueue

Posted by GitBox <gi...@apache.org>.
dlg99 commented on PR #3384:
URL: https://github.com/apache/bookkeeper/pull/3384#issuecomment-1175348751

   @merlimat it looks like OrderedExecutor is the only place where the GrowableArrayBlockingQueue was used. We can safely delete GrowableArrayBlockingQueue and related tests, as a follow up PR.


-- 
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: issues-unsubscribe@bookkeeper.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [bookkeeper] merlimat merged pull request #3384: Switch back ordered executor to LinkedBlockingQueue

Posted by GitBox <gi...@apache.org>.
merlimat merged PR #3384:
URL: https://github.com/apache/bookkeeper/pull/3384


-- 
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: issues-unsubscribe@bookkeeper.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [bookkeeper] hangc0276 commented on pull request #3384: Switch back ordered executor to LinkedBlockingQueue

Posted by GitBox <gi...@apache.org>.
hangc0276 commented on PR #3384:
URL: https://github.com/apache/bookkeeper/pull/3384#issuecomment-1177833637

   rerun failure checks


-- 
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: issues-unsubscribe@bookkeeper.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org