TY - GEN
T1 - Scaling concurrent queues by using HTM to profit from failed atomic operations
AU - Ostrovsky, Or
AU - Morrison, Adam
N1 - Publisher Copyright:
© 2020 Copyright held by the owner/author(s).
PY - 2020/2/19
Y1 - 2020/2/19
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=85082391015&partnerID=8YFLogxK
U2 - 10.1145/3332466.3374511
DO - 10.1145/3332466.3374511
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:85082391015
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 89
EP - 101
BT - PPoPP 2020 - Proceedings of the 2020 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
PB - Association for Computing Machinery
T2 - 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2020
Y2 - 22 February 2020 through 26 February 2020
ER -