Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3210377.3210392acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
research-article

Romulus: Efficient Algorithms for Persistent Transactional Memory

Published: 11 July 2018 Publication History

Abstract

Byte addressable persistent memory eliminates the need for serialization and deserialization of data, to and from persistent storage, allowing applications to interact with it through common store and load instructions. In the event of a process or system failure, applications rely on persistent techniques to provide consistent storage of data in non-volatile memory (NVM). For most of these techniques, consistency is ensured through logging of updates, with consequent intensive cache line flushing and persistent fences necessary to guarantee correctness. Undo log based approaches require store interposition and persistence fences before each in-place modification. Redo log based techniques can execute transactions using just two persistence fences, although they require store and load interposition which may incur a performance penalty for large transactions. So far, these techniques have been difficult to integrate with known memory allocators, requiring allocators or garbage collectors specifically designed for NVM. We present Romulus, a user-level library persistent transactional memory (PTM) which provides durable transactions through the usage of twin copies of the data. A transaction in Romulus requires at most four persistence fences, regardless of the transaction size. Romulus uses only store interposition. Any sequential implementation of a memory allocator can be adapted to work with Romulus. Thanks to its lightweight design and low synchronization overhead, Romulus achieves twice the throughput of current state of the art PTMs in update-only workloads, and more than one order of magnitude in read-mostly scenarios.

References

[1]
Joy Arulraj, Andrew Pavlo, and Subramanya R Dulloor. 2015. Let's talk about storage & recovery methods for non-volatile memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. ACM, 707--722.
[2]
Kumud Bhandari, Dhruva R Chakrabarti, and Hans-J Boehm. 2016. Makalu: Fast recoverable allocation of non-volatile memory. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, 677--694.
[3]
Irina Calciu, Dave Dice, Yossi Lev, Victor Luchangco, Virendra J Marathe, and Nir Shavit. 2013. NUMA-aware reader-writer locks. In ACM SIGPLAN Notices, Vol. 48. ACM, 157--166.
[4]
Dhruva R Chakrabarti, Hans-J Boehm, and Kumud Bhandari. 2014. Atlas: Leveraging locks for non-volatile memory consistency. ACM SIGPLAN Notices 49, 10 (2014), 433--452.
[5]
Himanshu Chauhan, Irina Calciu, Vijay Chidambaram, Eric Schkufza, Onur Mutlu, and Pratap Subrahmanyam. 2016. NVMOVE: Helping Programmers Move to Byte-Based Persistence. In INFLOW@ OSDI.
[6]
Jungsik Choi, Jiwon Kim, and Hwansoo Han. 2017. Efficient Memory Mapped File I/O for In-Memory File Systems. In 9th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 17). USENIX Association.
[7]
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. ACM Sigplan Notices 46, 3 (2011), 105--118.
[8]
Nachshon Cohen, Michal Friedman, and James R Larus. 2017. Efficient logging in non-volatile memory by exploiting coherency protocols. Proceedings of the ACM on Programming Languages 1, OOPSLA (2017), 67.
[9]
Jeremy Condit, Edmund B Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles. ACM, 133--146.
[10]
Andreia Correia, Pascal Felber, and Pedro Ramalhete. 2018. Romulus github. https://github.com/pramalhe/Romulus. (2018).
[11]
CPP-ISO-committee. 2013. C++ Memory Order. http://en.cppreference.com/w/c/ atomic/memory_order. (2013).
[12]
Dave Dice, Virendra J Marathe, and Nir Shavit. 2011. Flat-combining NUMA locks. In Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures. ACM, 65--74.
[13]
Sanjay Ghemawat and Jeff Dean. 2011. LevelDB. URL: https://github. com/- google/leveldb,% 20http://leveldb. org (2011).
[14]
Danny Hendler, Itai Incze, Nir Shavit, and Moran Tzafrir. 2010. Flat combining and the synchronization-parallelism tradeoff. In Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures. ACM, 355--364.
[15]
Maurice Herlihy and Nir Shavit. 2011. The art of multiprocessor programming. Morgan Kaufmann.
[16]
Joseph Izraelevitz, Terence Kelly, and Aasheesh Kolli. 2016. Failure-atomic persistent memory updates via JUSTDO logging. In ACM SIGPLAN Notices, Vol. 51. ACM, 427--442.
[17]
Joseph Izraelevitz, Hammurabi Mendes, and Michael L Scott. 2016. Brief Announcement: Preserving Happens-before in Persistent Memory. In Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures. ACM, 157--159.
[18]
Joseph Izraelevitz, Hammurabi Mendes, and Michael L Scott. 2016. Linearizability of persistent memory objects under a full-system-crash failure model. In International Symposium on Distributed Computing. Springer, 313--327.
[19]
Doug Lea and Wolfram Gloger. 1996. A memory allocator. (1996).
[20]
David E Lowell and Peter M Chen. 1997. Free transactions with rio vista. In ACM SIGOPS Operating Systems Review, Vol. 31. ACM, 92--101.
[21]
Youyou Lu, Jiwu Shu, and Long Sun. 2015. Blurred persistence in transactional persistent memory. In Mass Storage Systems and Technologies (MSST), 2015 31st Symposium on. IEEE, 1--13.
[22]
Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. 2014. Loose-ordering consistency for persistent memory. In Computer Design (ICCD), 2014 32nd IEEE International Conference on. IEEE, 216--223.
[23]
Sanketh Nalli, Swapnil Haria, Mark D Hill, Michael M Swift, Haris Volos, and Kimberly Keeton. 2017. An Analysis of Persistent Memory Use with WHISPER. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, 135--148.
[24]
Pedro Ramalhete and Andreia Correia. 2015. Brief Announcement: Left-Right-A Concurrency Control Technique with Wait-Free Population Oblivious Reads. Distributed (2015), 663.
[25]
T Riegel, P Felber, and C Fetzer. 2010. TinySTM. (2010).
[26]
David Schwalb, Markus Dreseler, Matthias Uflacker, and Hasso Plattner. 2015. NVC-hashmap: A persistent and concurrent hashmap for non-volatile memories. In Proceedings of the 3rd VLDB Workshop on In-Memory Data Mangement and Analytics. ACM, 4.
[27]
Pmem team. 2017. Persistent Memory Programming. http://pmem.io. (2017).
[28]
Viking Technology. 2017. Persistent Memory Technologies. http://www. vikingtechnology.com/products/nvdimm/. (2017).
[29]
Viking Technology. 2017. Persistent Memory Technologies. http://www. vikingtechnology.com/products/nvdimm/. (2017).
[30]
Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, Roy H Campbell, et al. 2011. Consistent and Durable Data Structures for Non-Volatile ByteAddressable Memory. In FAST, Vol. 11. 61--75.
[31]
Haris Volos, Andres Jaan Tack, and Michael M Swift. 2011. Mnemosyne: Lightweight persistent memory. In ACM SIGARCH Computer Architecture News, Vol. 39. ACM, 91--104.

Cited By

View all
  • (2024)MangosteenProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3692041(799-815)Online publication date: 10-Jul-2024
  • (2024)Userland Page Table - A Key for Transparent Persistent MemoryProceedings of the 25th International Middleware Conference: Demos, Posters and Doctoral Symposium10.1145/3704440.3704774(7-8)Online publication date: 2-Dec-2024
  • (2024)PMAlloc: A Holistic Approach to Improving Persistent Memory AllocationACM Transactions on Computer Systems10.1145/364388642:3-4(1-52)Online publication date: 20-Sep-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '18: Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures
July 2018
437 pages
ISBN:9781450357999
DOI:10.1145/3210377
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: 11 July 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. crash resilience
  3. failure atomicity
  4. persistent memory
  5. transactions

Qualifiers

  • Research-article

Funding Sources

  • Swiss National Science Foundation

Conference

SPAA '18
Sponsor:

Acceptance Rates

SPAA '18 Paper Acceptance Rate 36 of 120 submissions, 30%;
Overall Acceptance Rate 447 of 1,461 submissions, 31%

Upcoming Conference

SPAA '25
37th ACM Symposium on Parallelism in Algorithms and Architectures
July 28 - August 1, 2025
Portland , OR , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)58
  • Downloads (Last 6 weeks)8
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)MangosteenProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3692041(799-815)Online publication date: 10-Jul-2024
  • (2024)Userland Page Table - A Key for Transparent Persistent MemoryProceedings of the 25th International Middleware Conference: Demos, Posters and Doctoral Symposium10.1145/3704440.3704774(7-8)Online publication date: 2-Dec-2024
  • (2024)PMAlloc: A Holistic Approach to Improving Persistent Memory AllocationACM Transactions on Computer Systems10.1145/364388642:3-4(1-52)Online publication date: 20-Sep-2024
  • (2024)Puddles: Application-Independent Recovery and Location-Independent Data for Persistent MemoryProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629555(575-589)Online publication date: 22-Apr-2024
  • (2024)POSTER: RELAX: Durable Data Structures with Swift RecoveryProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638469(475-476)Online publication date: 20-Feb-2024
  • (2024)Brief Announcement: A Fast Scalable Detectable Unrolled Lock-Based Linked ListProceedings of the 36th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3626183.3660272(73-75)Online publication date: 17-Jun-2024
  • (2024)Skip It: Take Control of Your Cache!Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640407(1077-1094)Online publication date: 27-Apr-2024
  • (2024)Compiler-Directed Whole-System Persistence2024 ACM/IEEE 51st Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA59077.2024.00074(961-977)Online publication date: 29-Jun-2024
  • (2024)Prosper: Program Stack Persistence in Hybrid Memory Systems2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00091(1168-1183)Online publication date: 2-Mar-2024
  • (2024)A verified durable transactional mutex lock for persistent x86-TSOFormal Methods in System Design10.1007/s10703-024-00462-164:1-3(237-282)Online publication date: 31-Jul-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media