Queues are fundamental concurrent data structures, but despite years of research, even the state-of-the-art queues scale poorly. This poor scalability occurs because of contended atomic read-modify-write (RMW) operations. This paper makes a first step towards designing a scalable linearizable queue. We leverage hardware transactional memory (HTM) to design TxCAS, a scalable compare-and-set (CAS) primitive—despite HTM being targeted mainly at uncontended scenarios. Leveraging TxCAS’s scalability requires a queue design that does not blindly retry failed CASs. We thus apply TxCAS to the baskets queue, which steers enqueuers whose CAS fails into dedicated basket data structures. Coupled with a new, scalable basket algorithm, we obtain SBQ, the scalable baskets queue. At high concurrency levels, SBQ outperforms the fastest queue today by 1.6× on a producer-only workload.
CITATION STYLE
Ostrovsky, O., & Morrison, A. (2020). Scaling concurrent queues by using HTM to profit from failed atomic operations. In Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP (pp. 89–101). Association for Computing Machinery. https://doi.org/10.1145/3332466.3374511
Mendeley helps you to discover research relevant for your work.