Integrating Lock-Free and Combining Techniques for a Practical and Scalable FIFO Queue

Research output: Contribution to journalArticlepeer-review

Abstract

Concurrent FIFO queues can be generally classified into lock-free queues and combining-based queues. Lock-free queues require manual parameter tuning to control the contention level of parallel execution, while combining-based queues encounter a bottleneck of single-threaded sequential combiner executions at a high concurrency level. In this paper, we introduce a different approach using both lock-free techniques and combining techniques synergistically to design a practical and scalable concurrent queue algorithm. As a result, we have achieved high scalability without any parameter tuning: on an 80-thread average throughput in our experimental results, our queue algorithm outperforms the most widely used Michael and Scott queue by 14.3 times, the best-performing combining-based queue by 1.6 times, and the best performing ×86-dependent lock-free queue by 1.7 percent. In addition, we designed our algorithm in such a way that the life cycle of a node is the same as that of its element. This has huge advantages over prior work: efficient implementation is possible without dedicated memory management schemes, which are supported only in some languages, may cause a performance bottleneck, or are patented. Moreover, the synchronized life cycle between an element and its node enables application developers to further optimize memory management.

Original languageEnglish
Article number6844158
Pages (from-to)1910-1922
Number of pages13
JournalIEEE Transactions on Parallel and Distributed Systems
Volume26
Issue number7
DOIs
StatePublished - 1 Jul 2015

Keywords

  • combining-based queue
  • compare-and-swap
  • Concurrent queue
  • lock-free queue
  • memory reclamation
  • swap

Fingerprint

Dive into the research topics of 'Integrating Lock-Free and Combining Techniques for a Practical and Scalable FIFO Queue'. Together they form a unique fingerprint.

Cite this