skip to main content
10.1145/3558481.3591079acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
research-article
Public Access

Transactional Composition of Nonblocking Data Structures

Published: 17 June 2023 Publication History

Abstract

This paper introduces nonblocking transaction composition (NBTC), a new methodology for atomic composition of nonblocking operations on concurrent data structures. Unlike previous software transactional memory (STM) approaches, NBTC leverages the linearizability of existing nonblocking structures, reducing the number of memory accesses that must be executed together, atomically, to only one per operation in most cases (these are typically the linearizing instructions of the constituent operations).
Our obstruction-free implementation of NBTC, which we call Medley, makes it easy to transform most nonblocking data structures into transactional counterparts while preserving their liveness and high concurrency. In our experiments, Medley outperforms Lock-Free Transactional Transform (LFTT), the fastest prior competing methodology, by 40--170%. The marginal overhead of Medley's transactional composition, relative to separate operations performed in succession, is roughly 2.2x.
For persistent data structures, we observe that failure atomicity for transactions can be achieved "almost for free'' with epoch-based periodic persistence. Toward that end, we integrate Medley with nbMontage, a general system for periodically persistent data structures. The resulting txMontage provides ACID transactions and achieves throughput up to two orders of magnitude higher than that of the OneFile persistent STM system.

Supplemental Material

MP4 File
Presentation video, covering the motivation of nonblocking data structures, transactions, and persistent memory, prior work on transaction composition, our contributions, experimental results, and potential future directions. The total length is about 17 minutes.

References

[1]
H. Alan Beadle, Wentao Cai, Haosen Wen, and Michael L. Scott. 2020. Nonblocking Persistent Software Transactional Memory. In 27th Intl. Conf. on High Performance Computing, Data, and Analytics (HiPC). virtual conference, 283--293.
[2]
Wentao Cai, Haosen Wen, Vladimir Maksimovski, Mingzhe Du, Rafaello Sanna, Shreif Abdallah, and Michael L. Scott. 2021. Fast Nonblocking Persistence for Concurrent Data Structures. In 35th Intl. Symp. on Distributed Computing (DISC). Freiburg, Germany, 14:1--14:20.
[3]
Zhangyu Chen, Yu Huang, Bo Ding, and Pengfei Zuo. 2020. Lock-free Concurrent Level Hashing for Persistent Memory. In Usenix Annual Technical Conf. (ATC). virtual conference, 799--812.
[4]
Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making Persistent Objects Fast and Safe with Next-generation, Non-volatile Memories. In 16th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Newport Beach, CA, 105--118.
[5]
Andreia Correia, Pascal Felber, and Pedro Ramalhete. 2018. Romulus: Efficient Algorithms for Persistent Transactional Memory. In 30th ACM Symp. on Parallel Algorithms and Architectures (SPAA). Vienna, Austria, 271--282.
[6]
The Transaction Processing Council. 2010. TPC-C Benchmark (Revision 5.11.0). http://www.tpc.org/tpcc/.
[7]
Ian Dick, Alan Fekete, and Vincent Gramoli. 2016. A Skip List for Multicore. Concurrency and Computation: Practice and Experience, Vol. 29, 4 (May 2016), 20 pages.
[8]
Avner Elizarov, Guy Golan-Gueta, and Erez Petrank. 2019. LOFT: Lock-Free Transactional Data Structures. In 24th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Washington, DC, 425--426. Extended version available as the Technion M.Sc. technical report MSC-2019-01, November 2018. www.cs.technion.ac.il/users/wwwb/cgi-bin/tr-info.cgi/2019/MSC/MSC-2019-01.
[9]
Panagiota Fatourou, Elias Papavasileiou, and Eric Ruppert. 2019. Persistent Non-Blocking Binary Search Trees Supporting Wait-Free Range Queries. In 31st ACM Symp. on Parallelism in Algorithms and Architectures (SPAA). Phoenix, AZ, 275--286.
[10]
Keir Fraser. 2003. Practical Lock-Freedom. Ph.,D. Dissertation. King's College, Univ. of Cambridge. Published as Univ. of Cambridge Computer Laboratory technical report #579, February 2004. www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf.
[11]
Michal Friedman, Naama Ben-David, Yuanhao Wei, Guy E. Blelloch, and Erez Petrank. 2020. NVTraverse: In NVRAM Data Structures, the Destination is More Important than the Journey. In 41st ACM Conf. on Programming Language Design and Implementation (PLDI). virtual conference, 377--392.
[12]
Michal Friedman, Maurice Herlihy, Virendra Marathe, and Erez Petrank. 2018. A Persistent Lock-free Queue for Non-volatile Memory. In 23rd ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Vienna, Austria, 28--40.
[13]
Michal Friedman, Erez Petrank, and Pedro Ramalhete. 2021. Mirror: Making Lock-Free Data Structures Persistent. In 42nd ACM Conf. on Programming Language Design and Implementation (PLDI). virtual conference, 1218--1232.
[14]
Rachid Guerraoui and Michal Kapalka. 2008. On the Correctness of Transactional Memory. In 13th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Salt Lake City, UT, 175--184.
[15]
Theo Haerder and Andreas Reuter. 1983. Principles of Transaction-Oriented Database Recovery. Comput. Surveys, Vol. 15, 4 (Dec. 1983), 287--317.
[16]
Timothy L. Harris, Keir Fraser, and Ian A. Pratt. 2002. A Practical Multi-word Compare-and-Swap Operation. In 16th Intl. Symp. on Distributed Computing (DISC). Toulouse, France, 265--279.
[17]
Thomas E. Hart, Paul E. McKenney, Angela Demke Brown, and Jonathan Walpole. 2007. Performance of Memory Reclamation for Lockless Synchronization. Journal of Parallel Distributed Computing (JPDC), Vol. 67, 12 (Dec. 2007), 1270--1285.
[18]
Maurice Herlihy and Eric Koskinen. 2008. Transactional Boosting: A Methodology for Highly-Concurrent Transactional Objects. In 13th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Salt Lake City, UT, 207--216.
[19]
Maurice Herlihy, Victor Luchangco, Mark Moir, and William N. Scherer III. 2003. Software Transactional Memory for Dynamic-sized Data Structures. In 22nd ACM Symp. on Principles of Distributed Computing (PODC). Boston, MA, 92--101.
[20]
Daokun Hu, Zhiwen Chen, Wenkui Che, Jianhua Sun, and Hao Chen. 2022. Halo: A Hybrid PMem-DRAM Persistent Hash Index with Fast Recovery. In Intl Conf on Management of Data (SIGMOD). Philadelphia, PA, 1049--1063.
[21]
Joseph Izraelevitz, Hammurabi Mendes, and Michael L. Scott. 2016. Linearizability of Persistent Memory Objects Under a Full-System-Crash Failure Model. In 30th Intl. Symp. on Distributed Computing (DISC). Paris, France, 313--327.
[22]
Joseph Izraelevitz, Jian Yang, Lu Zhang, Juno Kim, Xiao Liu, Amirsaman Memaripour, Yun Joon Soh, Zixuan Wang, Yi Xu, Subramanya R. Dulloor, Jishen Zhao, and Steven Swanson. 2019. Basic Performance Measurements of the Intel Optane DC Persistent Memory Module. arXiv preprint arXiv:1903.05714v3.
[23]
Pierre LaBorde, Lance Lebanoff, Christina Peterson, Deli Zhang, and Damian Dechev. 2019. Wait-Free Dynamic Transactions for Linked Data Structures. In 10th Intl. Workshop on Programming Models and Applications for Multicores and Manycores (PMAM). Washington, DC, 41--50.
[24]
Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, and Jinglei Ren. 2017. Dude™: Building Durable Transactions with Decoupling for Persistent Memory. In 22nd Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Xi'an, China, 329--343.
[25]
Virendra Jayant Marathe and Mark Moir. 2008. Toward High Performance Nonblocking Software Transactional Memory. In 13th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Salt Lake City, UT, 227--236.
[26]
Virendra J. Marathe, Michael F. Spear, Christopher Heriot, Athul Acharya, David Eisenstat, William N. Scherer III, and Michael L. Scott. 2006. Lowering the Overhead of Software Transactional Memory. In 1st ACM SIGPLAN Workshop on Transactional Computing (TRANSACT). Ottawa, ON, Canada, 11 pages.
[27]
Paul E. McKenney, Dipankar Sarma, Andrea Arcangeli, Andi Kleen, Orran Krieger, and Rusty Russell. 2001. Read Copy Update. In Ottawa Linux Symp. Ottawa, ON, Canada, 338--367.
[28]
Maged M. Michael. 2002. High Performance Dynamic Lock-Free Hash Tables and List-Based Sets. In 14th ACM Symp. on Parallelism in Algorithms and Architectures (SPAA). Winnipeg, MB, Canada, 73--82.
[29]
Maged M. Michael and Michael L. Scott. 1996. Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In 15th ACM Symp. on Principles of Distributed Computing (PODC). Philadelphia, PA, 267--275.
[30]
Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. 2008. STAMP: Stanford Transactional Applications for Multi-Processing. In IEEE Intl. Symp. on Workload Characterization (IISWC). Seattle, WA, 35--46.
[31]
Aravind Natarajan and Neeraj Mittal. 2014. Fast Concurrent Lock-free Binary Search Trees. In 19th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Orlando, FL, 317--328.
[32]
Faisal Nawab, Joseph Izraelevitz, Terence Kelly, Charles B. Morrey III, Dhruva R. Chakrabarti, and Michael L. Scott. 2017. Dal�: A Periodically Persistent Hash Map. In 31st Intl. Symp. on Distributed Computing (DISC). Vienna, Austria, 37:1--37:16.
[33]
Pedro Ramalhete, Andreia Correia, Pascal Felber, and Nachshon Cohen. 2019. OneFile: A Wait-Free Persistent Transactional Memory. In 49th IEEE/IFIP Intl. Conf. on Dependable Systems and Networks (DSN). Portland, OR, 151--163.
[34]
Michael L. Scott. 2013. Shared-Memory Synchronization. Morgan & Claypool Publishers, San Rafael, CA.
[35]
Michael F. Spear, Luke Dalessandro, Virendra J. Marathe, and Michael L. Scott. 2009. A Comprehensive Contention Management Strategy for Software Transactional Memory. In 14th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Raleigh, NC, 141--150.
[36]
Alexander Spiegelman, Guy Golan-Gueta, and Idit Keidar. 2016. Transactional Data Structure Libraries. In 37th ACM Conf. on Programming Language Design and Implementation (PLDI). Santa Barbara, CA, 682--696.
[37]
Fuad Tabba, Mark Moir, James R. Goodman, Andrew W. Hay, and Cong Wang. 2009. NZ™: Nonblocking Zero-indirection Transactional Memory. In 21st ACM Symp. on Parallelism in Algorithms and Architectures (SPAA). Calgary, AB, Canada, 204--213.
[38]
Shahar Timnat and Erez Petrank. 2014. A Practical Wait-Free Simulation for Lock-Free Data Structures. In 19th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP). Orlando, FL, 357--368.
[39]
Stephen Tu, Wenting Zheng, Eddie Kohler, Barbara Liskov, and Samuel Madden. 2013. Speedy Transactions in Multicore In-Memory Databases. In 24th ACM Symp. on Operating Systems Principles (SOSP). Farminton, PA, 18--32.
[40]
Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight Persistent Memory. In 16th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Newport Beach, CA, 91--104.
[41]
Zixuan Wang, Xiao Liu, Jian Yang, Theodore Michailidis, Steven Swanson, and Jishen Zhao. 2020. Characterizing and Modeling Non-Volatile Memory Systems. In 53rd Intl. Symp. on Microarchitecture (MICRO). virtual conference, 496--508.
[42]
Xiangyao Yu, George Bezerra, Andrew Pavlo, Srinivas Devadas, and Michael Stonebraker. 2014. Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores. Proc. of the VLDB Endowment, Vol. 8, 3 (Nov. 2014), 209--220.
[43]
Deli Zhang and Damian Dechev. 2016. Lock-Free Transactions without Rollbacks for Linked Data Structures. In 28th ACM Symp. on Parallelism in Algorithms and Architectures (SPAA). Pacific Grove, CA, 325--336.
[44]
Yoav Zuriel, Michal Friedman, Gali Sheffi, Nachshon Cohen, and Erez Petrank. 2019. Efficient Lock-free Durable Sets. Proc. of the ACM on Programming Languages, Vol. 3, OOPSLA (Oct. 2019), 128:1--128:26.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '23: Proceedings of the 35th ACM Symposium on Parallelism in Algorithms and Architectures
June 2023
504 pages
ISBN:9781450395458
DOI:10.1145/3558481
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 June 2023

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. nonblocking data structures
  2. persistent memory
  3. transactions

Qualifiers

  • Research-article

Data Availability

Presentation video, covering the motivation of nonblocking data structures, transactions, and persistent memory, prior work on transaction composition, our contributions, experimental results, and potential future directions. The total length is about 17 minutes. https://dl.acm.org/doi/10.1145/3558481.3591079#SPAA23-fp058.mp4

Funding Sources

Conference

SPAA '23
Sponsor:

Acceptance Rates

Overall Acceptance Rate 447 of 1,461 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 121
    Total Downloads
  • Downloads (Last 12 months)80
  • Downloads (Last 6 weeks)21
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media