Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/3358807.3358885guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Pisces: a scalable and efficient persistent transactional memory

Published: 10 July 2019 Publication History

Abstract

Persistent transactional memory (PTM) programming model has recently been exploited to provide crash-consistent transactional interfaces to ease programming atop NVM. However, existing PTM designs either incur high reader-side overhead due to blocking or long delay in the writer side (efficiency), or place excessive constraints on persistent ordering (scalability).
This paper presents Pisces, a read-friendly PTM that exploits snapshot isolation (SI) on NVM. The key design of Pisces is based on two observations: the redo logs of transactions can be reused as newer versions for the data, and an intuitive MVCC-based design has read deficiency. Based on the observations, we propose a dual-version concurrency control (DVCC) protocol that maintains up to two versions in NVM-backed storage hierarchy. Together with a three-stage commit protocol, Pisces ensures SI and allows more transactions to commit and persist simultaneously. Most importantly, it promises a desired feature: hiding NVM persistence overhead from reads and allowing nearly non-blocking reads.
Experimental evaluation on an Intel 40-thread (20-core) machine with real NVM equipped shows that Pisces outperforms the state-of-the-art design (i.e., DUDETM) by up to 6.3× for micro-benchmarks and 4.6× for TPC-C new order transaction, and also scales much better. The persistency cost is from 19% to 50% for 40 threads.

References

[1]
The formal proof on the snapshot isolation guarantee. https://ipads.se.sjtu.edu.cn/_media/publications/guatc19_proof.pdf.
[2]
Intel 3dxpoint technology. https://www.intel.com/content/www/us/en/architecture-and-technology/intel-optane-technology.html.
[3]
Intel 64 and ia-32 architectures software developer's manual. https://software.intel.com.
[4]
Micron 3dxpoint technology. https://www.micron.com/products/advanced-solutions/3d-xpoint-technology.
[5]
Persistent memory development kit, nvml. http://pmem.io/pmdk/.
[6]
Redis. https://redis.io/.
[7]
The stanford transactional applications for multiprocessing; a benchmark suite for transactional memory research. https://github.com/kozyraki/stamp.
[8]
Atul Adya. Weak consistency: a generalized theory and optimistic implementations for distributed transactions. 1999.
[9]
Hiroyuki Akinaga and Hisashi Shima. Resistive random access memory (reram) based on metal oxides. Proceedings of the IEEE, 98(12):2237-2251, 2010.
[10]
Mohammad Ansari, Mikel Luján, Christos Kotselidis, Kim Jarvis, Chris Kirkham, and Ian Watson. Steal-on-abort: Improving transactional memory performance through dynamic transaction reordering. In International Conference on High-Performance Embedded Architectures and Compilers, pages 4-18. Springer, 2009.
[11]
Peter Bailis, Alan Fekete, Michael J Franklin, Ali Ghodsi, Joseph M Hellerstein, and Ion Stoica. Feral concurrency control: An empirical investigation of modern application integrity. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pages 1327-1342. ACM, 2015.
[12]
Hal Berenson, Phil Bernstein, Jim Gray, Jim Melton, Elizabeth O'Neil, and Patrick O'Neil. A critique of ansi sql isolation levels. In ACM SIGMOD Record, volume 24, pages 1-10. ACM, 1995.
[13]
Philip A Bernstein and Nathan Goodman. Multiversion concurrency control--theory and algorithms. ACM Transactions on Database Systems (TODS), 8(4):465-483, 1983.
[14]
Jayaram Bobba, Neelam Goyal, Mark D Hill, Michael M Swift, and David A Wood. Tokentm: Efficient execution of large transactions with hardware transactional memory. In ACM SIGARCH Computer Architecture News, volume 36, pages 127-138. IEEE Computer Society, 2008.
[15]
Nathan Bronson, Zach Amsden, George Cabrera, Prasad Chakka, Peter Dimov, Hui Ding, Jack Ferris, Anthony Giardullo, Sachin Kulkarni, Harry C Li, et al. Tao: Facebook's distributed data store for the social graph. In USENIX Annual Technical Conference, pages 49-60, 2013.
[16]
Michael J Cahill, Uwe Röhm, and Alan D Fekete. Serializable isolation for snapshot databases. ACM Transactions on Database Systems (TODS), 34(4):20, 2009.
[17]
Andreas Chatzistergiou, Marcelo Cintra, and Stratis D Viglas. Rewind: Recovery write-ahead system for inmemory non-volatile data-structures. Proceedings of the VLDB Endowment, 8(5):497-508, 2015.
[18]
Haibo Chen, Heng Zhang, Ran Liu, Binyu Zang, and Haibing Guan. Fast consensus using bounded staleness for scalable read-mostly synchronization. IEEE Transactions on Parallel & Distributed Systems, (12):3485-3500, 2016.
[19]
Shimin Chen, Anastasia Ailamaki, Manos Athanassoulis, Phillip B Gibbons, Ryan Johnson, Ippokratis Pandis, and Radu Stoica. Tpc-e vs. tpc-c: characterizing the new tpc-e benchmark via an i/o comparison study. ACM SIGMOD Record, 39(3):5-10, 2011.
[20]
Vijay Chidambaram, Thanumalayan Sankaranarayana Pillai, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. Optimistic crash consistency. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, pages 228-243. ACM, 2013.
[21]
Joel Coburn, Adrian M Caulfield, Ameen Akel, Laura M Grupp, Rajesh K Gupta, Ranjit Jhala, and Steven Swanson. Nv-heaps: making persistent objects fast and safe with next-generation, non-volatile memories. ACM Sigplan Notices, 46(3):105-118, 2011.
[22]
James C Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, Jeffrey John Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, et al. Spanner: Google's globally distributed database. ACM Transactions on Computer Systems (TOCS), 31(3):8, 2013.
[23]
Andreia Correia, Pascal Felber, and Pedro Ramalhete. Romulus: Efficient algorithms for persistent transactional memory. In Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, pages 271-282. ACM, 2018.
[24]
Transaction Processing Performance Council. http://www.tpc.org/tpcc/. TPC Benchmark C.
[25]
Transaction Processing Performance Council. http://www.tpc.org/tpce. TPC Benchmark E.
[26]
Khuzaima Daudjee and Kenneth Salem. Lazy database replication with snapshot isolation. In Proceedings of the 32nd international conference on Very large data bases, pages 715-726. VLDB Endowment, 2006.
[27]
Justin DeBrabant, Joy Arulraj, Andrew Pavlo, Michael Stonebraker, Stan Zdonik, and Subramanya Dulloor. A prolegomenon on oltp database systems for nonvolatile memory. ADMS@ VLDB, 2014.
[28]
Cristian Diaconu, Craig Freedman, Erik Ismert, Per-Ake Larson, Pravin Mittal, Ryan Stonecipher, Nitin Verma, and Mike Zwilling. Hekaton: Sql server's memory-optimized oltp engine. In Proceedings of the 2013 ACMSIGMOD International Conference onManagement of Data, pages 1243-1254. ACM, 2013.
[29]
Dave Dice, Ori Shalev, and Nir Shavit. Transactional locking ii. In International Symposium on Distributed Computing, pages 194-208. Springer, 2006.
[30]
Djellel Eddine Difallah, Andrew Pavlo, Carlo Curino, and Philippe Cudre-Mauroux. Oltp-bench: An extensible testbed for benchmarking relational databases. Proceedings of the VLDB Endowment, 7(4):277-288, 2013.
[31]
Mingkai Dong and Haibo Chen. Soft updatesmade simple and fast on non-volatile memory. In 2017 USENIX Annual Technical Conference (ATC 17), pages 719-731. USENIX Association, 2017.
[32]
Subramanya R Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. System software for persistent memory. In Proceedings of the Ninth European Conference on Computer Systems, page 15. ACM, 2014.
[33]
Alan Fekete, Dimitrios Liarokapis, Elizabeth O'Neil, Patrick O'Neil, and Dennis Shasha. Making snapshot isolation serializable. ACM Transactions on Database Systems (TODS), 30(2):492-528, 2005.
[34]
Pascal Felber, Christof Fetzer, Patrick Marlier, and Torvald Riegel. Time-based software transactional memory. IEEE Transactions on Parallel and Distributed Systems, 21(12):1793-1807, 2010.
[35]
Pascal Felber, Christof Fetzer, and Torvald Riegel. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming, pages 237-246. ACM, 2008.
[36]
Keir Fraser and Tim Harris. Concurrent programming without locks. ACM Transactions on Computer Systems (TOCS), 25(2):5, 2007.
[37]
Ellis R Giles, Kshitij Doshi, and Peter Varman. Softwrap: A lightweight framework for transactional support of storage class memory. In Mass Storage Systems and Technologies (MSST), 2015 31st Symposium on, pages 1-14. IEEE, 2015.
[38]
Maurice Herlihy and J Eliot B Moss. Transactional memory: Architectural support for lock-free data structures, volume 21. ACM, 1993.
[39]
Nathaniel Herman, Jeevana Priya Inala, Yihe Huang, Lillian Tsai, Eddie Kohler, Barbara Liskov, and Liuba Shrira. Type-aware transactions for faster concurrent code. In Proceedings of the Eleventh European Conference on Computer Systems, page 31. ACM, 2016.
[40]
Terry Ching-Hsiang Hsu, Helge Brügner, Indrajit Roy, Kimberly Keeton, and Patrick Eugster. Nvthreads: Practical persistence formulti-threaded applications. In Proceedings of the Twelfth European Conference on Computer Systems, pages 468-482. ACM, 2017.
[41]
Qingda Hu, Jinglei Ren, Anirudh Badam, and Thomas Moscibroda. Log-structured non-volatile main memory. In Proceedings of 2017 USENIX Annual Technical Conference (USENIX ATC'17). Santa Clara, CA. http://jinglei.ren.systems/files/lsnvmm_slides_atc17.pptx, 2017.
[42]
Arpit Joshi, Vijay Nagarajan, Marcelo Cintra, and Stratis Viglas. Dhtm: Durable hardware transactional memory. In Proceedings of the International Symposium on Computer Architecture, 2018.
[43]
Hideaki Kimura. Foedus: Oltp engine for a thousand cores and nvram. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pages 691-706. ACM, 2015.
[44]
Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M Chen, and Thomas F Wenisch. High-performance transactions for persistent memories. ACM SIGPLAN Notices, 51(4):399-411, 2016.
[45]
Emre Kültürsay, Mahmut Kandemir, Anand Sivasubramaniam, and Onur Mutlu. Evaluating stt-ram as an energy-efficient main memory alternative. In Performance Analysis of Systems and Software (ISPASS), 2013 IEEE International Symposium on, pages 256-267. IEEE, 2013.
[46]
Benjamin C Lee, Ping Zhou, Jun Yang, Youtao Zhang, Bo Zhao, Engin Ipek, Onur Mutlu, and Doug Burger. Phase-change technology and the future of main memory. IEEE micro, 30(1), 2010.
[47]
Herwig Lejsek, Fri∂rik Hei∂ar ásmundsson, Jónsson, and Laurent Amsaleg. Nv-tree: An efficient disk-based index for approximate search in very large high-dimensional collections. IEEE Transactions on Pattern Analysis and Machine Intelligence, 31(5):869-883, 2009.
[48]
Heiner Litz, David Cheriton, Amin Firoozshahian, Omid Azizi, and John P Stevenson. Si-tm: reducing transactional memory abort rates through snapshot isolation. ACM SIGARCH Computer Architecture News, 42(1):383-398, 2014.
[49]
Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, and Jinglei Ren. Dudetm: Building durable transactions with decoupling for persistent memory. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, pages 329-343. ACM, 2017.
[50]
Ran Liu and Haibo Chen. Ssmalloc: a low-latency, locality-conscious memory allocator with stable performance scalability. In Proceedings of the Asia-Pacific Workshop on Systems, page 15. ACM, 2012.
[51]
Ran Liu, Heng Zhang, and Haibo Chen. Scalable read-mostly synchronization using passive reader-writer locks. In USENIX Annual Technical Conference, pages 219-230, 2014.
[52]
Haonan Lu, Christopher Hodsdon, Khiem Ngo, Shuai Mu, and Wyatt Lloyd. The snow theorem and latencyoptimal read-only transactions. In OSDI, pages 135-150, 2016.
[53]
Shiyong Lu, Arthur Bernstein, and Philip Lewis. Correct execution of transactions at different isolation levels. IEEE Transactions on Knowledge and Data Engineering, 16(9):1070-1081, 2004.
[54]
Alexander Matveev, Nir Shavit, Pascal Felber, and Patrick Marlier. Read-log-update: A lightweight synchronization mechanism for concurrent programming. In Proceedings of the 25th Symposium on Operating Systems Principles, pages 168-183. ACM, 2015.
[55]
Paul E McKenney and John D Slingwine. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems, pages 509-518, 1998.
[56]
Amirsaman Memaripour, Anirudh Badam, Amar Phanishayee, Yanqi Zhou, Ramnatthan Alagappan, Karin Strauss, and Steven Swanson. Atomic in-place updates for non-volatile main memories with kamino-tx. In EuroSys, pages 499-512, 2017.
[57]
Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. Stamp: Stanford transactional applications for multi-processing. In 2008 IEEE International Symposium on Workload Characterization, pages 35-46. IEEE, 2008.
[58]
Sanketh Nalli, Swapnil Haria, Mark D Hill, Michael M Swift, Haris Volos, and Kimberly Keeton. An analysis of persistent memory use with whisper. In ACM SIGARCH Computer Architecture News, volume 45, pages 135-148. ACM, 2017.
[59]
Thomas Neumann, Tobias Mühlbauer, and Alfons Kemper. Fast serializable multi-version concurrency control for main-memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pages 677-689. ACM, 2015.
[60]
Matheus Almeida Ogleari, Ethan L Miller, and Jishen Zhao. Steal but no force: Efficient hardware undo+ redo logging for persistent memory systems. In High Performance Computer Architecture (HPCA), 2018 IEEE International Symposium on, pages 336-349. IEEE, 2018.
[61]
Lois Orosa and Rodolfo Azevedo. Logsi-htm: Log based snapshot isolation in hardware transactional memory.
[62]
Steven Pelley, Peter M Chen, and Thomas F Wenisch. Memory persistency. In ACM SIGARCH Computer Architecture News, volume 42, pages 265-276. IEEE Press, 2014.
[63]
Hasso Plattner. The impact of columnar in-memory databases on enterprise systems: implications of eliminating transaction-maintained aggregates. Proceedings of the VLDB Endowment, 7(13):1722-1729, 2014.
[64]
Dan RK Ports and Kevin Grittner. Serializable snapshot isolation in postgresql. Proceedings of the VLDB Endowment, 5(12):1850-1861, 2012.
[65]
Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Iron file systems. In Proceedings of the Twentieth ACM Symposium on Operating Systems Principles, SOSP '05, pages 206-220, New York, NY, USA, 2005. ACM.
[66]
Hany E Ramadan, Christopher J Rossbach, and Emmett Witchel. Dependence-aware transactional memory for increased concurrency. In Proceedings of the 41st annual IEEE/ACM International Symposium on Microarchitecture, pages 246-257. IEEE Computer Society, 2008.
[67]
Simone Raoux, Geoffrey W Burr, Matthew J Breitwisch, Charles T Rettner, Y-C Chen, Robert M Shelby, Martin Salinga, Daniel Krebs, S-H Chen, H-L Lung, et al. Phase-change random access memory: A scalable technology. IBM Journal of Research and Development, 52(4.5):465-479, 2008.
[68]
Torvald Riegel, Christof Fetzer, and Pascal Felber. Snapshot isolation for software transactional memory. In First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT'06), pages 1-10. Association for Computing Machinery (ACM), 2006.
[69]
Ankur Sharma, FelixMartin Schuhknecht, and Jens Dittrich. Accelerating analytical processing in mvcc using fine-granular high-frequency virtual snapshotting. In Proceedings of the 2018 International Conference on Management of Data, pages 245-258. ACM, 2018.
[70]
Nir Shavit and Dan Touitou. Software transactional memory. Distributed Computing, 10(2):99-116, 1997.
[71]
Seunghee Shin, Satish Kumar Tirukkovalluri, James Tuck, and Yan Solihin. Proteus: a flexible and fast software supported hardware logging approach for nvm. In Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture, pages 178-190. ACM, 2017.
[72]
Neuvonen Simo, Wolski Antoni, manner Markku, and Raatikka Vilho. http://tatpbenchmark.sourceforge.net/. Telecom Application Transaction Processing Benchmark.
[73]
Fuad Tabba, Mark Moir, James R Goodman, Andrew W Hay, and Cong Wang. Nztm: Nonblocking zeroindirection transactional memory. In Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, pages 204-213. ACM, 2009.
[74]
Haris Volos, Andres Jaan Tack, and Michael M Swift. Mnemosyne: Lightweight persistent memory. In ACM SIGARCH Computer Architecture News, volume 39, pages 91-104. ACM, 2011.
[75]
Tianzheng Wang, Ryan Johnson, Alan Fekete, and Ippokratis Pandis. Efficiently making (almost) any concurrency control mechanism serializable. The VLDB Journal, 26(4):537-562, 2017.
[76]
Zhaoguo Wang, Han Yi, Ran Liu, Mingkai Dong, and Haibo Chen. Persistent transactional memory. IEEE Computer Architecture Letters, 14(1):58-61, 2015.
[77]
Wikipedia. https://en.wikipedia.org/wiki/Snapshot_isolation. Snapshot isolation, 2017.
[78]
H-S PhilipWong, Simone Raoux, SangBum Kim, Jiale Liang, John P Reifenberg, Bipin Rajendran, Mehdi Asheghi, and Kenneth E Goodson. Phase change memory. Proceedings of the IEEE, 98(12):2201-2227, 2010.
[79]
Fei Xia, Dejun Jiang, Jin Xiong, and Ninghui Sun. Hikv: A hybrid index key-value store for dram-nvm memory systems. In 2017 USENIX Annual Technical Conference (ATC 17), pages 349-362. USENIX Association, 2017.
[80]
Jian Xu and Steven Swanson. Nova: A log-structured file system for hybrid volatile/non-volatile main memories. In FAST, pages 323-338, 2016.
[81]
Yiying Zhang and Steven Swanson. A study of application performance with non-volatile main memory. In 2015 31st Symposium on Mass Storage Systems and Technologies (MSST), pages 1-10. IEEE, 2015.

Cited By

View all
  • (2022)Nap: Persistent Memory Indexes for NUMA ArchitecturesACM Transactions on Storage10.1145/350792218:1(1-35)Online publication date: 29-Jan-2022
  • (2021)NVOverlayProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00046(498-511)Online publication date: 14-Jun-2021

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
USENIX ATC '19: Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference
July 2019
1076 pages
ISBN:9781939133038

Sponsors

  • VMware
  • Nutanix: Nutanix
  • NSF
  • Facebook: Facebook
  • ORACLE: ORACLE

Publisher

USENIX Association

United States

Publication History

Published: 10 July 2019

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Nap: Persistent Memory Indexes for NUMA ArchitecturesACM Transactions on Storage10.1145/350792218:1(1-35)Online publication date: 29-Jan-2022
  • (2021)NVOverlayProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00046(498-511)Online publication date: 14-Jun-2021

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media