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

Kiln: closing the performance gap between systems with and without persistence support

Published: 07 December 2013 Publication History

Abstract

Persistent memory is an emerging technology which allows in-memory persistent data objects to be updated at much higher throughput than when using disks as persistent storage. Previous persistent memory designs use logging or copy-on-write mechanisms to update persistent data, which unfortunately reduces the system performance to roughly half that of a native system with no persistence support. One of the great challenges in this application class is therefore how to efficiently enable atomic, consistent, and durable updates to ensure data persistence that survives application and/or system failures. Our goal is to design a persistent memory system with performance very close to that of a native system. We propose Kiln, a persistent memory design that adopts a nonvolatile cache and a nonvolatile main memory to enable atomic in-place updates without logging or copy-on-write. Our evaluation shows that Kiln can achieve 2× performance improvement compared with NVRAM-based persistent memory with write-ahead logging. In addition, our design has numerous practical advantages: a simple and intuitive abstract interface, microarchitecture-level optimizations, fast recovery from failures, and eliminating redundant writes to nonvolatile storage media.

References

[1]
Intel Core i7, http://www.intel.com/content/www/us/en/processors/core/core-i7-processor.html.
[2]
Java persistence API, http://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html.
[3]
J. H. Ahn, S. Li, S. O, and N. P. Jouppi. McSimA+: a manycore simulator with application-level+ simulation and detailed microarchitecture modeling. In ISPASS, 2013.
[4]
T. Andrews and C. Harris. Combining language and database advances in an object-oriented development environment. In OOPSLA, 1987.
[5]
B. Atikoglu et al. Workload analysis of a large-scale key-value store. In SIGMETRICS, 2012.
[6]
D. A. Bader et al. Design and implementation of the HPCS graph analysis benchmark on symmetric multiprocessors. In HiPC, 2005.
[7]
T. Bingmann. STX B+ Tree, Sept. 2008, http://idlebox.net/2007/stx-btree/.
[8]
T. C. Bressoud, T. Clark, and T. Kan. The design and use of persistent memory on the dncp hardware fault-tolerant platform. In DSN, 2001.
[9]
P. Butterworth, A. Otis, and J. Stein. The gemstone object database management system. ACM Commun, 1991.
[10]
A. M. Caulfield et al. Providing safe, user space access to fast, solid state disks. In ASPLOS, 2012.
[11]
P. M. Chen et al. The rio file cache: surviving operating system crashes. In ASPLOS, 1996.
[12]
J. Coburn et al. NV-heaps: making persistent objects fast and safe with next-generation, non-volatile memories. In ASPLOS, 2011.
[13]
J. Condit et al. Better I/O through byte-addressable, persistent memory. In SOSP, 2009.
[14]
G. Copeland, T. Keller, R. Krishnamurthy, and M. Smith. The case for safe RAM. In VLDB, 1989.
[15]
X. Dong, C. Xu, Y. Xie, and N. P. Jouppi. NVSim: A circuit-level performance, energy, and area model for emerging nonvolatile memory. TCAD, 2012.
[16]
X. Dong et al. Simple but effective heterogeneous main memory with on-chip memory controller support. In SC, 2010.
[17]
P. Dorsey. Xilinx stacked silicon interconnect technology delivers breakthrough fpga capacity, bandwidth, and power efficiency. In Xilinx White Papers, 2010.
[18]
F. Eskesen et al. Software exploitation of a fault-tolerant computer with a large memory. In FTCS, 1998.
[19]
R. G. Gattell. Object data management: object-oriented and extended. 1994.
[20]
R. Hagmann. Reimplementing the Cedar file system using logging and group commit. In SOSP, 1987.
[21]
L. Hammond et al. Transactional memory coherence and consistency. In ISCA, 2004.
[22]
M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In ISCA, 1993.
[23]
D. Hitz, J. Lau, and M. Malcolm. File system design for an NFS file server appliance. In USENIX Technical Conference, 1994.
[24]
Intel Corporation. Intel architecture instruction set extensions programming reference, 319433-012 edition. 2012.
[25]
C. Jacobi et al. Transactional memory architecture and implementation for IBM System Z. In MICRO, 2012.
[26]
J. Janesky. Device performance in a fully functional 800MHz DDR3 Spin Torque Magnetic Random Access Memory. In IMW, 2013.
[27]
J.-S. Kim et al. A 1.2 V 12.8 GB/s 2 Gb mobile wide-I/O DRAM with 4x 128 I/Os using TSV based stacking. JSSC, 2012.
[28]
C. Lamb, G. Landis, J. Orenstein, and D. Weinreb. The objectstore database system. ACM Commun, 1991.
[29]
E. Lee et al. Unioning of the buffer cache and journaling layers with non-volatile memory. In FAST, 2013.
[30]
S. Li et al. McPAT: an integrated power, area, and timing modeling framework for multicore and manycore architectures. In MICRO, 2009.
[31]
D. E. Lowell and P. M. Chen. Free transactions with Rio Vista. In SOSP, 1997.
[32]
C.-K. Luk et al. Pin: building customized program analysis tools with dynamic instrumentation. In PLDI, 2005.
[33]
A. Marquez et al. Fast portable orthogonally persistent Java. Softw. Pract. Exper., 2000.
[34]
K. E. Moore et al. LogTM: log-based transactional memory. In HPCA, 2006.
[35]
D. Narayanan and O. Hodson. Whole-system persistence. In ASPLOS, 2012.
[36]
S. Park, T. Kelly, and K. Shen. Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data. In EuroSys, 2013.
[37]
J. Pawlowski. Hybrid memory cube. In Hot Chips, 2011.
[38]
R. Ramakrishnan and J. Gehrke. Database management systems, third edition. 2007.
[39]
M. Satyanarayanan et al. Lightweight recoverable virtual memory. In SOSP, 1993.
[40]
R. Sears and E. Brewer. Stasis: flexible transactional storage. In OSDI, 2006.
[41]
J. Siek et al. Boost: adjacency list, ver. 1.52.0, http://www.boost.org/doc/libs/.
[42]
V. Singhal, V. Kakkad, and P. R. Wilson. Texas: an efficient, portable persistent store. In POS, 1992.
[43]
S. C. Tweedie. Journaling the Linux ext2fs sile system. In Linux Expo, 1987.
[44]
S. Venkataraman et al. Consistent and durable data structures for non-volatile byte-addressable memory. In FAST, 2011.
[45]
H. Volos, A. J. Tack, and M. M. Swift. Mnemosyne: lightweight persistent memory. In ASPLOS, 2011.
[46]
A. Wang et al. Evaluation of Blue Gene/Q hardware support for transactional memories. In PACT, 2012.
[47]
S. J. White and D. J. DeWitt. Quickstore: a high performance mapped object store. In SIGMOD, 1994.
[48]
M. Wu and W. Zwaenepoel. eNVy: a non-volatile, main memory storage system. In ASPLOS, 1994.
[49]
X. Wu et al. Hybrid cache architecture with disparate memory technologies. In ISCA, 2009.

Cited By

View all
  • (2024)A Midsummer Night’s Tree: Efficient and High Performance Secure SCMProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651354(22-37)Online publication date: 27-Apr-2024
  • (2024)Hercules: Enabling Atomic Durability for Persistent Memory with Transient Persistence DomainACM Transactions on Embedded Computing Systems10.1145/360747323:6(1-34)Online publication date: 11-Sep-2024
  • (2024)LightWSP: Whole-System Persistence on the Cheap2024 57th IEEE/ACM International Symposium on Microarchitecture (MICRO)10.1109/MICRO61859.2024.00025(215-230)Online publication date: 2-Nov-2024
  • Show More Cited By

Index Terms

  1. Kiln: closing the performance gap between systems with and without persistence support

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    MICRO-46: Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture
    December 2013
    498 pages
    ISBN:9781450326384
    DOI:10.1145/2540708
    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: 07 December 2013

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. non-volatile memory
    2. persistent memory

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    MICRO-46
    Sponsor:

    Acceptance Rates

    MICRO-46 Paper Acceptance Rate 39 of 239 submissions, 16%;
    Overall Acceptance Rate 484 of 2,242 submissions, 22%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)60
    • Downloads (Last 6 weeks)28
    Reflects downloads up to 31 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)A Midsummer Night’s Tree: Efficient and High Performance Secure SCMProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651354(22-37)Online publication date: 27-Apr-2024
    • (2024)Hercules: Enabling Atomic Durability for Persistent Memory with Transient Persistence DomainACM Transactions on Embedded Computing Systems10.1145/360747323:6(1-34)Online publication date: 11-Sep-2024
    • (2024)LightWSP: Whole-System Persistence on the Cheap2024 57th IEEE/ACM International Symposium on Microarchitecture (MICRO)10.1109/MICRO61859.2024.00025(215-230)Online publication date: 2-Nov-2024
    • (2024)HADES: Hardware-Assisted Distributed Transactions in the Age of Fast Networks and SmartNICs2024 ACM/IEEE 51st Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA59077.2024.00062(785-800)Online publication date: 29-Jun-2024
    • (2024)Exploiting Persistent CPU Cache for Scalable Persistent Hash Index2024 IEEE 40th International Conference on Data Engineering (ICDE)10.1109/ICDE60146.2024.00295(3851-3864)Online publication date: 13-May-2024
    • (2023)ENTS: Flush-and-Fence-Free Failure Atomic TransactionsProceedings of the International Symposium on Memory Systems10.1145/3631882.3631907(1-16)Online publication date: 2-Oct-2023
    • (2023)Persistent Processor ArchitectureProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3623772(1075-1091)Online publication date: 28-Oct-2023
    • (2023)Silo: Speculative Hardware Logging for Atomic Durability in Persistent Memory2023 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA56546.2023.10071034(651-663)Online publication date: Feb-2023
    • (2023)DONUTS: An efficient method for checkpointing in non‐volatile memoriesConcurrency and Computation: Practice and Experience10.1002/cpe.757435:18Online publication date: 24-Jan-2023
    • (2022)Achieving crash consistency by employing persistent L1 cacheProceedings of the 2022 Conference & Exhibition on Design, Automation & Test in Europe10.5555/3539845.3540172(1407-1412)Online publication date: 14-Mar-2022
    • 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