BBQ: A Block-based Bounded Queue for Exchanging Data and Profiling

Research output: Contribution to book/Conference proceedings/Anthology/ReportConference contributionContributedpeer-review

Contributors

  • Jiawei Wang - , Professor (rtd.) of Operating Systems, Chair of Computer Architecture, Dresden Research Lab Huawei Technologies, Huawei Technologies Co., Ltd. (Author)
  • Diogo Behrens - , Dresden Research Lab Huawei Technologies, Huawei Technologies Co., Ltd. (Author)
  • Ming Fu - , Dresden Research Lab Huawei Technologies, Huawei Technologies Co., Ltd. (Author)
  • Lilith Oberhauser - , Dresden Research Lab Huawei Technologies, Huawei Technologies Co., Ltd. (Author)
  • Jonas Oberhauser - , Dresden Research Lab Huawei Technologies, Huawei Technologies Co., Ltd. (Author)
  • Jitang Lei - , Dresden Research Lab Huawei Technologies, Huawei Technologies Co., Ltd. (Author)
  • Geng Chen - , Huawei Technologies Co., Ltd. (Author)
  • Hermann Härtig - , Professor (rtd.) of Operating Systems (Author)
  • Haibo Chen - , Huawei Technologies Co., Ltd., Shanghai Jiao Tong University (Author)

Abstract

Concurrent bounded queues have been widely used for exchanging data and profiling in operating systems, databases, and multithreaded applications. The performance of state-ofthe-art queues is limited by the interference between multiple enqueues (enq-enq), multiple dequeues (deq-deq), or enqueues and dequeues (enq-deq), negatively affecting their latency and scalability. Although some existing designs employ optimizations to reduce deq-deq and enq-enq interference, they often neglect the enq-deq case. In fact, such partial optimizations may inadvertently increase interference elsewhere and result in performance degradation. We present Block-based Bounded Queue (BBQ), a novel ringbuffer design that splits the entire buffer into multiple blocks. This eliminates enq-deq interference on concurrency control variables when producers and consumers operate on different blocks. Furthermore, the block-based design is amenable to existing optimizations, e.g., using the more scalable fetch-and-add instruction. Our evaluation shows that BBQ outperforms several industrial ringbuffers. For example, in single-producer/single-consumer micro-benchmarks, BBQ yields 11.3x to 42.4x higher throughput than the ringbuffers from Linux kernel, DPDK, Boost, and Folly libraries. In realworld scenarios, BBQ achieves up to 1.5x, 50.5x, and 11.1x performance improvements in benchmarks of DPDK, Linux io_uring, and Disruptor, respectively. We verified and optimized BBQ on weak memory models with a model-checkingbased framework.

Details

Original languageEnglish
Title of host publicationProceedings of the 2022 USENIX Annual Technical Conference, ATC 2022
PublisherUSENIX Association
Pages249-262
Number of pages14
ISBN (electronic)9781939133298
Publication statusPublished - 2022
Peer-reviewedYes

Publication series

SeriesUSENIX Annual Technical Conference (ATC)

Conference

Title2022 USENIX Annual Technical Conference, ATC 2022
Duration11 - 13 July 2022
CityCarlsbad
CountryUnited States of America

Keywords

ASJC Scopus subject areas