Two-tier garbage collection for persistent object

An object allocated in NVM is persisted permanently even when the power is turned off. When the persistent object becomes garbage, it causes fatal space overhead in the system, and previous studies on NVM management schemes did not address an effective solution to this problem. In this paper, we propose a Two-Tier Garbage Collection (TTGC) scheme for fast and stable garbage collection in C language based persistent heap system, and validate the algorithm by implementing the technique in HEAPO, a persistent heap library for NVMs. We also verify that this scheme works more effectively than the other garbage collection techniques using other persistent heaps. Proposed technique shows about 4 to 11 times better performance in garbage collection complete time than the techniques.

[1]  Benjamin G. Zorn,et al.  Comparing mark-and sweep and stop-and-copy garbage collection , 1990, LISP and Functional Programming.

[2]  David Detlefs,et al.  Garbage-first garbage collection , 2004, ISMM '04.

[3]  Jongsung Lee,et al.  OrcFS: Orchestrated File System for Flash Storage , 2018, ACM Trans. Storage.

[4]  J. Scott,et al.  Ferroelectric memories , 1997, Science.

[5]  Javier González,et al.  LightNVM: The Linux Open-Channel SSD Subsystem , 2017, FAST.

[6]  Yiming Huai,et al.  Spin-Transfer Torque MRAM (STT-MRAM): Challenges and Prospects , 2008 .

[7]  Anastasia Ailamaki,et al.  Scaling the Memory Power Wall With DRAM-Aware Data Management , 2015, DaMoN.

[8]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[9]  Mark Horowitz,et al.  1.1 Computing's energy problem (and what we can do about it) , 2014, 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC).

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

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

[12]  V. T. Rajan,et al.  A real-time garbage collector with low overhead and consistent utilization , 2003, POPL '03.

[13]  Tomoharu Ugawa,et al.  Reference object processing in on-the-fly garbage collection , 2014, ISMM '14.

[14]  Daniel R. Edelson Smart Pointers: They're Smart, But They're Not Pointers , 1992, C++ Conference.

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

[16]  Zili Shao,et al.  DIDACache: A Deep Integration of Device and Application for Flash Based Key-Value Caching , 2017, FAST.

[17]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[18]  Jaemin Jung,et al.  HEAPO: Heap-Based Persistent Object Store , 2015, TOS.

[19]  Jinpeng Wei,et al.  Software Persistent Memory , 2012, USENIX Annual Technical Conference.

[20]  Sharon L. Wolchik 1989 , 2009 .

[21]  Troy Downing,et al.  Java Virtual Machine , 1997 .

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

[23]  Chen Yang,et al.  A Fully Parallel LISP2 Compactor with Preservation of the Sliding Properties , 2008, LCPC.

[24]  Youyou Lu,et al.  ParaFS: A Log-Structured File System to Exploit the Internal Parallelism of Flash Devices , 2016, USENIX Annual Technical Conference.

[25]  Onur Mutlu,et al.  Architecting phase change memory as a scalable dram alternative , 2009, ISCA '09.

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

[27]  Daniel G. Bobrow,et al.  Combining generational and conservative garbage collection: framework and implementations , 1989, POPL '90.

[28]  T. J. Kowalski,et al.  Fsck—the UNIX file system check program , 1990 .

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

[30]  Jaemin Jung,et al.  FRASH: Exploiting storage class memory in hybrid file system for hierarchical storage , 2010, TOS.