Silo: Speculative Hardware Logging for Atomic Durability in Persistent Memory

Persistent memory (PM) provides data persistency. Due to this property, guaranteeing atomic durability becomes important for applications running on PM in order to ensure the crash consistency for a group of updates. To this end, hardware logging has received many attentions by overlapping the log operations and transaction execution. Unfortunately, existing approaches regard logs as backups, which inevitably increases the log writes to PM, thus exacerbating the limited endurance of PM and imposing constraints on the write ordering.This paper proposes Silo, a speculative hardware logging design to ensure atomic durability with ultra-low overheads. Unlike existing studies, Silo exploits a speculative methodology and regards logs as data to make the common case fast. In practice, system crashes or power failures rarely occur for a machine. Hence, we do not need to write logs to back up data in most of the running time. Based on this observation, Silo temporarily maintains the undo+redo logs on chip during transaction execution. After the transaction commits, Silo leverages the new data in these on-chip logs to in-place update the PM data region, instead of conservatively writing logs as useless backups in common cases where no crash occurs. In this way, Silo significantly reduces the write overheads. If a crash occurs, Silo still efficiently flushes these on-chip logs to PM for recovery without any loss of correctness. Experimental results demonstrate that Silo significantly improves the transaction throughput by 4.3×, and reduces the memory writes by 76.5% compared with state-of-the-art designs.

[1]  Izzat El Hajj,et al.  ASAP: architecture support for asynchronous persistence , 2022, ISCA.

[2]  Nisarg Shah,et al.  ASAP: A Speculative Approach to Persistence , 2022, 2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA).

[3]  J. Rao,et al.  Characterizing the performance of intel optane persistent memory: a close look at its on-DIMM buffering , 2022, EuroSys.

[4]  Peiyi Hong,et al.  NVAlloc: rethinking heap metadata management in persistent memory allocators , 2022, ASPLOS.

[5]  Yu Hua,et al.  Efficiently detecting concurrency bugs in persistent memory programs , 2022, ASPLOS.

[6]  T. Rabl,et al.  PerMA-Bench: Benchmarking Persistent Memory Access , 2022, Proc. VLDB Endow..

[7]  Steven Swanson,et al.  Clobber-NVM: log less, re-execute more , 2021, ASPLOS.

[8]  Yan Solihin,et al.  BBB: Simplifying Persistent Programming using Battery-Backed Buffers , 2021, 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA).

[9]  Jian Yang,et al.  Characterizing and Modeling Non-Volatile Memory Systems , 2020, 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[10]  Chengning Wang,et al.  CCHL: Compression-Consolidation Hardware Logging for Efficient Failure-Atomic Persistent Memory Updates , 2020, ICPP.

[11]  Dan Feng,et al.  MorLog: Morphable Hardware Logging for Atomic Persistence in Non-Volatile Main Memory , 2020, 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA).

[12]  Jian Huang,et al.  HOOP: Efficient Hardware-Assisted Out-of-Place Update for Non-Volatile Memory , 2020, 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA).

[13]  Michael M. Swift,et al.  MOD: Minimally Ordered Durable Datastructures for Persistent Memory , 2019, ASPLOS.

[14]  Steven Swanson,et al.  An Empirical Guide to the Behavior and Use of Scalable Persistent Memory , 2019, FAST.

[15]  Babak Falsafi,et al.  Distributed Logless Atomic Durability with Persistent Memory , 2019, MICRO.

[16]  Taesoo Kim,et al.  Recipe: converting concurrent DRAM indexes to persistent-memory indexes , 2019, SOSP.

[17]  Jie Wu,et al.  Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory , 2018, OSDI.

[18]  Seung Ryoul Maeng,et al.  Efficient Hardware-Assisted Logging with Asynchronous and Direct-Update for Persistent Memory , 2018, 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[19]  Stratis Viglas,et al.  DHTM: Durable Hardware Transactional Memory , 2018, 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA).

[20]  Yan Solihin,et al.  Lazy Persistency: A High-Performing and Write-Efficient Software Persistency Technique , 2018, 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA).

[21]  Jishen Zhao,et al.  Steal but No Force: Efficient Hardware Undo+Redo Logging for Persistent Memory Systems , 2018, 2018 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[22]  Youjip Won,et al.  Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree , 2018, FAST.

[23]  Yan Solihin,et al.  Proteus: A Flexible and Fast Software Supported Hardware Logging approach for NVM , 2017, 2017 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[24]  Anirudh Badam,et al.  Viyojit: Decoupling battery and DRAM capacities for battery-backed DRAM , 2017, 2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA).

[25]  Stratis Viglas,et al.  ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging , 2017, 2017 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[26]  Amar Phanishayee,et al.  Atomic In-place Updates for Non-volatile Main Memories with Kamino-Tx , 2017, EuroSys.

[27]  Weimin Zheng,et al.  DudeTM: Building Durable Transactions with Decoupling for Persistent Memory , 2017, ASPLOS.

[28]  Michael M. Swift,et al.  An Analysis of Persistent Memory Use with WHISPER , 2017, ASPLOS.

[29]  Lin Ma,et al.  Reducing the Storage Overhead of Main-Memory OLTP Databases with Hybrid Indexes , 2016, SIGMOD Conference.

[30]  Ellis Giles,et al.  Atomic persistence for SCM with a non-intrusive backend controller , 2016, 2016 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[31]  Stratis Viglas,et al.  Efficient persist barriers for multicores , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[32]  Tao Zhang,et al.  NVMain 2.0: A User-Friendly Memory Simulator to Model (Non-)Volatile Memory Systems , 2015, IEEE Computer Architecture Letters.

[33]  Hideaki Kimura,et al.  FOEDUS: OLTP Engine for a Thousand Cores and NVRAM , 2015, SIGMOD Conference.

[34]  Peter J. Varman,et al.  SoftWrAP: A lightweight framework for transactional support of storage class memory , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[35]  Bingsheng He,et al.  NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems , 2015, FAST.

[36]  Iva,et al.  Scalable Digital CMOS Comparator using a Parallel Prefix Tree , 2015 .

[37]  Stratis Viglas,et al.  REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures , 2015, Proc. VLDB Endow..

[38]  Carole-Jean Wu,et al.  Quantifying the energy cost of data movement for emerging smart phone workloads on mobile platforms , 2014, 2014 IEEE International Symposium on Workload Characterization (IISWC).

[39]  Hans-Juergen Boehm,et al.  Atlas: leveraging locks for non-volatile memory consistency , 2014, OOPSLA.

[40]  Samira Manabi Khan,et al.  Last-level cache deduplication , 2014, ICS '14.

[41]  Ryan Johnson,et al.  Scalable Logging through Emerging Non-Volatile Memory , 2014, Proc. VLDB Endow..

[42]  Yuan Xie,et al.  Kiln: Closing the performance gap between systems with and without persistence support , 2013, 2013 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[43]  Ann Gordon-Ross,et al.  Scalable Digital CMOS Comparator Using a Parallel Prefix Tree , 2013, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[44]  Klaus Müllen,et al.  Graphene-based in-plane micro-supercapacitors with high power and energy densities , 2013, Nature Communications.

[45]  Xueti Tang,et al.  Spin-transfer torque magnetic random access memory (STT-MRAM) , 2013, JETC.

[46]  Soontae Kim,et al.  Skinflint DRAM system: Minimizing DRAM chip writes for low power , 2013, 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA).

[47]  R. Ruoff,et al.  Carbon-Based Supercapacitors Produced by Activation of Graphene , 2011, Science.

[48]  Bradford M. Beckmann,et al.  The gem5 simulator , 2011, CARN.

[49]  Rajesh K. Gupta,et al.  NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories , 2011, ASPLOS XVI.

[50]  Michael M. Swift,et al.  Mnemosyne: lightweight persistent memory , 2011, ASPLOS XVI.

[51]  Hisashi Shima,et al.  Resistive Random Access Memory (ReRAM) Based on Metal Oxides , 2010, Proceedings of the IEEE.

[52]  Peihua Huang,et al.  Ultrahigh-power micrometre-sized supercapacitors based on onion-like carbon. , 2010, Nature nanotechnology.

[53]  Mor Harchol-Balter,et al.  ATLAS : A Scalable and High-Performance Scheduling Algorithm for Multiple Memory Controllers , 2010 .

[54]  Jun Yang,et al.  A durable and energy efficient main memory using phase change memory technology , 2009, ISCA '09.

[55]  M. Breitwisch Phase Change Memory , 2008, 2008 International Interconnect Technology Conference.

[56]  Alan Fekete,et al.  The Cost of Serializability on Platforms That Use Snapshot Isolation , 2008, 2008 IEEE 24th International Conference on Data Engineering.

[57]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .