Empirical study of redo and undo logging in persistent memory

Atomic and durable transactions are widely used to ensure the crash consistency in persistent memory (PM). However, whether to use redo or undo logging is still a hotly debated topic in persistent memory systems. In this paper, we empirically study the performance of both redo and undo logging using NVML, a persistent memory transactional object store framework. Our results on an NVDIMM server show that redo logging significantly outperforms undo logging for workloads in which a transaction updates large number of different objects, while it underperforms undo logging for workloads with intensive read operations. Furthermore, undo logging is more sensitive to the read-to-write ratios, compared to redo logging. Finally, our experiments also demonstrate that asynchronous log truncation is much helpful in redo logging for log-heavy transactions.

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

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

[3]  X. Ou,et al.  Molecular dynamics simulations of fcc-to-bcc transformation in pure iron: a review , 2017 .

[4]  Jiwu Shu,et al.  Fast and failure-consistent updates of application data in non-volatile main memory file system , 2016, 2016 32nd Symposium on Mass Storage Systems and Technologies (MSST).

[5]  Youyou Lu,et al.  Loose-Ordering Consistency for persistent memory , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).

[6]  Andy Rudoff Programming Models for Emerging Non-Volatile Memory Technologies , 2013, login Usenix Mag..

[7]  Hans-Juergen Boehm,et al.  Persistence programming models for non-volatile memory , 2016, ISMM.

[8]  Haibo Chen,et al.  Persistent Transactional Memory , 2015, IEEE Computer Architecture Letters.

[9]  Thomas F. Wenisch,et al.  Memory persistency , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[10]  Sanjay Kumar,et al.  System software for persistent memory , 2014, EuroSys '14.

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

[12]  Youjip Won,et al.  NVWAL: Exploiting NVRAM in Write-Ahead Logging , 2016, ASPLOS.

[13]  Andrea C. Arpaci-Dusseau,et al.  Crash consistency , 2015, Commun. ACM.

[14]  Orion Hodson,et al.  Whole-system persistence , 2012, ASPLOS XVII.

[15]  Dhruva R. Chakrabarti,et al.  Implications of CPU Caching on Byte-addressable Non-Volatile Memory Programming , 2012 .

[16]  Ada Gavrilovska,et al.  Energy Aware Persistence: Reducing the Energy Overheads of Persistent Memory , 2016, IEEE Computer Architecture Letters.

[17]  Youyou Lu,et al.  A high performance file system for non-volatile main memory , 2016, EuroSys.

[18]  Thomas F. Wenisch,et al.  High-Performance Transactions for Persistent Memories , 2016, ASPLOS.

[19]  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).

[20]  Christopher Frost,et al.  Better I/O through byte-addressable, persistent memory , 2009, SOSP '09.

[21]  Youyou Lu,et al.  Blurred persistence in transactional persistent memory , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).