skip to main content
10.1145/2236584.2236589acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

Hathi: durable transactions for memory using flash

Published: 21 May 2012 Publication History

Abstract

Recent architectural trends---cheap, fast solid-state storage, inexpensive DRAM, and multi-core CPUs---provide an opportunity to rethink the interface between applications and persistent storage. To leverage these advances, we propose a new system architecture called Hathi that provides an in-memory transactional heap made persistent using high-speed flash drives. With Hathi, programmers can make consistent concurrent updates to in-memory data structures that survive system failures.
Hathi focuses on three major design goals: ACID semantics, a simple programming interface, and fine-grained programmer control. Hathi relies on software transactional memory to provide a simple concurrent interface to in-memory data structures, and extends it with persistent logs and checkpoints to add durability.
To reduce the cost of durability, Hathi uses two main techniques. First, it provides split-phase and partitioned commit interfaces, that allow programmers to overlap commit I/O with computation and to avoid unnecessary synchronization. Second, it uses partitioned logging, which reduces contention on in-memory log buffers and exploits internal SSD parallelism. We find that our implementation of Hathi can achieve 1.25 million txns/s with a single SSD.

References

[1]
Fusion-IO PCI-e ioDrive. www.fusionio.com/products/iodrive.
[2]
FusionIO Auto-Commit Memory. http://www.fusionio.com/blog/auto-commit-memory\\-cutting-latency-by-eliminating-block-i/o.
[3]
GemStone Object Server. www.gemstone.com/products/gemstone.
[4]
memcached: High-performance Main-Memory Key-Value Store. www.memcached.org.
[5]
Oracle TimesTen In-Memory Database. www.oracle.com/timesten.
[6]
VoltDB: SQL DBMS with ACID. www.voltdb.com.
[7]
N. Agrawal, V. Prabhakaran, T. Wobber, J. Davis, M. Manasse, and R. Panigrahy. Design tradeoffs for ssd performance. In USENIX, 2008.
[8]
M. K. Aguilera, A. Merchant, M. A. Shah, A. C. Veitch, and C. T. Karamanolis. Sinfonia: a new paradigm for building scalable distributed systems. In SOSP, 2007.
[9]
A. Badam and V. S. Pai. SSDAlloc: Hybrid ssd/ram memory management made easy. In NSDI, 2011.
[10]
T. Cao, M. Vaz Salles, B. Sowell, Y. Yue, A. Demers, J. Gehrke, and W. White. Fast checkpoint recovery algorithms for frequently consistent applications. In SIGMOD, 2011.
[11]
F. Chen, R. Lee, and X. Zhang. Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing. In HPCA, 2011.
[12]
J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. Nv-heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In ASPLOS, 2011.
[13]
A. Dearle, R. di Bona, J. Farrow, F. Henskens, A. Lindström, J. Rosenberg, and F. Vaughan. Grasshopper: an orthogonally persistent operating system. In Journal of Computer Systems, volume 7, pages 289--312, 1994.
[14]
G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels. Dynamo: amazon's highly available key-value store. In SOSP, 2007.
[15]
P. Felber, C. Fetzer, and T. Riegel. Dynamic performance tuning of word-based software transactional memory. In PPoPP, 2008.
[16]
J. Gray. The transaction concept: Virtues and limitations. In VLDB, 1981.
[17]
P. Helland, H. Sammer, J. Lyon, R. Carr, and P. Garrett. Group commit timers and high-volume transaction systems. In Tandem TR 88.1, 1988.
[18]
Intel. X-25 mainstream ssd datasheet. http://www.intel.com/design/flash/nand/mainstream/index.htm.
[19]
R. Kallman, H. Kimura, J. Natkins, A. Pavlo, A. Rasin, S. Zdonik, E. P. C. Jones, S. Madden, M. Stonebraker, Y. Zhang, J. Hugg, and D. J. Abadi. H-store: a high-performance, distributed main memory transaction processing system. Proc. VLDB Endow., 1(2): 1496--1499, 2008.
[20]
J. R. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool Publishers, 2006.
[21]
D. Lowell and P. Chen. Free transactions with rio vista. In SOSP, 1997.
[22]
C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.
[23]
J. Ousterhout, P. Agrawal, D. Erickson, C. Kozyrakis, J. Leverich, D. Mazières, S. Mitra, A. Narayanan, G. Parulkar, M. Rosenblum, S. M. Rumble, E. Stratmann, and R. Stutsman. The case for ramclouds: scalable high-performance storage entirely in dram. SIGOPS Oper. Syst. Rev., 43: 92--105, January 2010.
[24]
M. Satyanarayanan, H. Mashburn, P. Kumar, D. Steere, and J. Kistler. Lightweight recoverable virtual memory. In ACM Transactions on Computer Systems, 1994.
[25]
M. Saxena and M. M. Swift Flash VM: Virtual Memory Management on Flash. In Usenix Annual Technical Conference, 2010.
[26]
E. Shekita and M. Zwilling. Cricket: A mapped, persistent object store. In Workshop on Persistent Object Systems, 1990.
[27]
V. Singhal, S. V. Kakkad, and P. R. Wilson. Texas: good, fast, cheap persistence for c++. In SIGPLAN OOPS Mess, 1993.
[28]
M. Vaz Salles, T. Cao, B. Sowell, A. Demers, J. Gehrke, C. Koch, and W. White. An evaluation of checkpoint recovery for massively multiplayer online games. In VLDB, 2009.
[29]
H. Volos, A. J. Tack, and M. M. Swift. Mnemosyne: Lightweight persistent memory. In ASPLOS, 2011.
[30]
S. J. White and D. J. Dewitt. Quickstore: A high performance mapped object store. In VLDB Journal, pages 629--673, 1995.
[31]
M. Wu and W. Zwaenepoel. eNVy: A non-volatile, main memory storage system. In ASPLOS-VI, 1994.

Cited By

View all
  • (2023)Accelerating Cloud-Native Databases with Distributed PMem Stores2023 IEEE 39th International Conference on Data Engineering (ICDE)10.1109/ICDE55515.2023.00233(3043-3057)Online publication date: Apr-2023
  • (2021)DStoreProceedings of the 30th International Symposium on High-Performance Parallel and Distributed Computing10.1145/3431379.3460649(31-43)Online publication date: 21-Jun-2021
  • (2018)MV-FTL: An FTL That Provides Page-Level Multi-Version ManagementIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2017.275701630:1(87-100)Online publication date: 1-Jan-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
DaMoN '12: Proceedings of the Eighth International Workshop on Data Management on New Hardware
May 2012
72 pages
ISBN:9781450314459
DOI:10.1145/2236584
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 ACM 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: 21 May 2012

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

SIGMOD/PODS '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 82 of 109 submissions, 75%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Accelerating Cloud-Native Databases with Distributed PMem Stores2023 IEEE 39th International Conference on Data Engineering (ICDE)10.1109/ICDE55515.2023.00233(3043-3057)Online publication date: Apr-2023
  • (2021)DStoreProceedings of the 30th International Symposium on High-Performance Parallel and Distributed Computing10.1145/3431379.3460649(31-43)Online publication date: 21-Jun-2021
  • (2018)MV-FTL: An FTL That Provides Page-Level Multi-Version ManagementIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2017.275701630:1(87-100)Online publication date: 1-Jan-2018
  • (2017)IsotopeACM Transactions on Storage10.1145/303296713:1(1-25)Online publication date: 16-Feb-2017
  • (2016)IsotopeProceedings of the 14th Usenix Conference on File and Storage Technologies10.5555/2930583.2930586(23-37)Online publication date: 22-Feb-2016
  • (2016)Persistence programming models for non-volatile memoryACM SIGPLAN Notices10.1145/3241624.292670451:11(55-67)Online publication date: 14-Jun-2016
  • (2016)Persistence programming models for non-volatile memoryProceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management10.1145/2926697.2926704(55-67)Online publication date: 14-Jun-2016
  • (2015)Failure-atomic updates of application data in a linux file systemProceedings of the 13th USENIX Conference on File and Storage Technologies10.5555/2750482.2750498(203-211)Online publication date: 16-Feb-2015
  • (2014)AtlasACM SIGPLAN Notices10.1145/2714064.266022449:10(433-452)Online publication date: 15-Oct-2014
  • (2014)AtlasProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660224(433-452)Online publication date: 15-Oct-2014
  • 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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media