skip to main content
research-article

Crab-tree: A Crash Recoverable B+-tree Variant for Persistent Memory with ARMv8 Architecture

Published:26 September 2020Publication History
Skip Abstract Section

Abstract

In recent years, the next-generation non-volatile memory (NVM) technologies have emerged with DRAM-like byte addressability and disk-like durability. Computer architects have proposed to use them to build persistent memory that blurs the conventional boundary between volatile memory and non-volatile storage. However, ARM processors, ones that are widely used in embedded computing systems, start providing architectural supports to utilize NVM since ARMv8. In this article, we consider tailoring B+-tree for NVM operated by a 64-bit ARMv8 processor. We first conduct an empirical study of performance overhead in writing and reading data for a B+-tree with an ARMv8 processor, including the time cost of cache line flushes and memory fences for crash consistency as well as the execution time of binary search compared to that of linear search. We hence identify the key weaknesses in the design of B+-tree with ARMv8 architecture. Accordingly, we develop a new B+-tree variant, namely, <underline>c</underline>rash <underline>r</underline>ecoverable <underline>A</underline>RMv8-oriented <underline>B</underline>+-tree (Crab-tree). To insert and delete data at runtime, Crab-tree selectively chooses one of two strategies, i.e., copy on write and shifting in place, depending on which one causes less consistency cost. Crab-tree regulates a strict execution order in both strategies and recovers the tree structure in case of crashes. To further improve the performance of Crab-tree, we employ three methods to reduce software overhead, cache misses, and consistency cost, respectively. We have implemented and evaluated Crab-tree in Raspberry Pi 3 Model B+ with emulated NVM. Experiments show that Crab-tree significantly outperforms state-of-the-art B+-trees designed for persistent memory by up to 2.2× and 3.7× in write and read performances, respectively, with both consistency and scalability achieved.

References

  1. Everspin. 2018. MRAM Technology Attributes. Retrieved from https://www.everspin.com/mram-technology-attributes.Google ScholarGoogle Scholar
  2. Shimin Chen, Phillip B. Gibbons, and Suman Nath. 2011. Rethinking database algorithms for phase change memory. In Proceedings of the 5th Biennial Conference on Innovative Data Systems Research (CIDR’11).1--11. Retrieved from https://www.microsoft.com/en-us/research/publication/rethinking-database-algorithms-for-phase-change-memory/.Google ScholarGoogle Scholar
  3. Linghao Song, Youwei Zhuo, Xuehai Qian, Hai Li, and Yiran Chen. 2018. GraphR: Accelerating graph processing using ReRAM. In Proceedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA’18). 531--543. DOI:http://dx.doi.org/10.1109/HPCA.2018.00052Google ScholarGoogle ScholarCross RefCross Ref
  4. Micron and Intel. 2015. 3D XPoint Technology. Retrieved from http://www.micron.com/about/innovations/3d-xpoint-technology.Google ScholarGoogle Scholar
  5. Xiangyu Dong, Naveen Muralimanohar, Norm Jouppi, Richard Kaufmann, and Yuan Xie. 2009. Leveraging 3D PCRAM technologies to reduce checkpoint overhead for future exascale systems. In Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis (SC’09). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/1654059.1654117Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Mingzhe Zhang, Lunkai Zhang, Lei Jiang, Zhiyong Liu, and Frederic T. Chong. 2017. Balancing performance and lifetime of MLC PCM by using a region retention monitor. In Proceedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA’17). 385--396. DOI:http://dx.doi.org/10.1109/HPCA.2017.45Google ScholarGoogle Scholar
  7. Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (SOSP’09). ACM, New York, NY, 133--146. DOI:http://dx.doi.org/10.1145/1629575.1629589Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Eunji Lee, Hyokyung Bahn, and Sam H. Noh. 2013. Unioning of the buffer cache and journaling layers with non-volatile memory. In Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST’13). USENIX, San Jose, CA, 73--80.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the 9th European Conference on Computer Systems (EuroSys’14). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/2592798.2592814Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Youyou Lu, Jiwu Shu, and Long Sun. 2015. Blurred persistence in transactional persistent memory. In Proceedings of the 31st Symposium on Mass Storage Systems and Technologies (MSST’15). 1--13. DOI:http://dx.doi.org/10.1109/MSST.2015.7208274Google ScholarGoogle ScholarCross RefCross Ref
  11. Jian Xu and Steven Swanson. 2016. NOVA: A log-structured file system for hybrid volatile/non-volatile main memories. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST’16). USENIX Association, Santa Clara, CA, 323--338. Retrieved from https://www.usenix.org/conference/fast16/technical-sessions/presentation/xu.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Qingsong Wei, Chundong Wang, Cheng Chen, Yechao Yang, Jun Yang, and Mingdi Xue. 2017. Transactional NVM cache with high performance and crash consistency. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC’17). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/3126908.3126940Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Tseng-Yi Chen, Yuan-Hao Chang, Shuo-Han Chen, Chih-Ching Kuo, Ming-Chang Yang, Hsin-Wen Wei, and Wei-Kuan Shih. 2017. Enabling write-reduction strategy for journaling file systems over byte-addressable NVRAM. In Proceedings of the 54th Design Automation Conference (DAC’17). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/3061639.3062236Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Jiaxin Ou, Jiwu Shu, and Youyou Lu. 2016. A high performance file system for non-volatile main memory. In Proceedings of the 11th European Conference on Computer Systems (EuroSys’16). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/2901318.2901324Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). ACM, New York, NY, 105--118. DOI:http://dx.doi.org/10.1145/1950365.1950380Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Deshan Zhang, Lei Ju, Mengying Zhao, Xiang Gao, and Zhiping Jia. 2016. Write-back aware shared last-level cache management for hybrid main memory. In Proceedings of the 53rd Design Automation Conference (DAC’16). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/2897937.2898110Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Intel. 2014. Persistent Memory Development Kit. Retrieved from http://pmem.io/pmdk/.Google ScholarGoogle Scholar
  18. Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). ACM, New York, NY, 91--104. DOI:http://dx.doi.org/10.1145/1950365.1950379Google ScholarGoogle Scholar
  19. Haris Volos, Sanketh Nalli, Sankarlingam Panneerselvam, Venkatanathan Varadarajan, Prashant Saxena, and Michael M. Swift. 2014. Aerie: Flexible file-system interfaces to storage-class memory. In Proceedings of the 9th European Conference on Computer Systems (EuroSys’14). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/2592798.2592810Google ScholarGoogle Scholar
  20. Chundong Wang and Sudipta Chattopadhyay. 2018. LAWN: Boosting the performance of NVMM file system through reducing write amplification. In Proceedings of the 55th Design Automation Conference (DAC’18). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/3195970.3196066Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Fang Wang, Zhaoyan Shen, Lei Han, and Zili Shao. 2019. ReRAM-based processing-in-memory architecture for blockchain platforms. In Proceedings of the 24th Asia and South Pacific Design Automation Conference (ASPDAC’19). ACM, New York, NY, 615--620. DOI:http://dx.doi.org/10.1145/3287624.3287656Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. ARM. 2017. ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile. Retrieved from https://static.docs.arm.com/ddi0487/ca/DDI0487C_a_armv8_arm.pdf.Google ScholarGoogle Scholar
  23. ARM. 2016. ARMv8-A architecture evolution. Retrieved from https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-evolution.Google ScholarGoogle Scholar
  24. Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2011. Consistent and durable data structures for non-volatile byte-addressable memory. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies (FAST’11). USENIX Association, Berkeley, CA, 1--15. Retrieved from http://dl.acm.org/citation.cfm?id=1960475.1960480.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, Khai Leong Yong, and Bingsheng He. 2015. NV-Tree: Reducing consistency cost for NVM-based single level systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST’15). USENIX Association, Santa Clara, CA, 167--181.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Shimin Chen and Qin Jin. 2015. Persistent B+-trees in non-volatile main memory. Proc. VLDB Endow. 8, 7 (Feb. 2015), 786--797. DOI:http://dx.doi.org/10.14778/2752939.2752947Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Ismail Oukid, Johan Lasperas, Anisoara Nica, Thomas Willhalm, and Wolfgang Lehner. 2016. FPTree: A hybrid SCM-DRAM persistent and concurrent B-tree for storage class memory. In Proceedings of the International Conference on Management of Data (SIGMOD’16). ACM, New York, NY, 371--386. DOI:http://dx.doi.org/10.1145/2882903.2915251Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Deukyeon Hwang, Wook-Hee Kim, Youjip Won, and Beomseok Nam. 2018. Endurable transient inconsistency in byte-addressable persistent B+-tree. In Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST’18). USENIX Association, Oakland, CA, 187--200. Retrieved from https://www.usenix.org/conference/fast18/presentation/hwang.Google ScholarGoogle Scholar
  29. Ren-Shuo Liu, De-Yu Shen, Chia-Lin Yang, Shun-Chih Yu, and Cheng-Yuan Michael Wang. 2014. NVM duet: Unified working memory and persistent store architecture. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). ACM, New York, NY, 455--470. DOI:http://dx.doi.org/10.1145/2541940.2541957Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. 2014. Loose-ordering consistency for persistent memory. In Proceedings of the 32nd IEEE International Conference on Computer Design (ICCD’14). 216--223. DOI:http://dx.doi.org/10.1109/ICCD.2014.6974684Google ScholarGoogle ScholarCross RefCross Ref
  31. Arpit Joshi, Vijay Nagarajan, Stratis Viglas, and Marcelo Cintra. 2017. ATOM: Atomic durability in non-volatile memory through hardware logging. In Proceedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA’17). 361--372. DOI:http://dx.doi.org/10.1109/HPCA.2017.50Google ScholarGoogle ScholarCross RefCross Ref
  32. Seunghee Shin, Satish Kumar Tirukkovalluri, James Tuck, and Yan Solihin. 2017. Proteus: A flexible and fast software supported hardware logging approach for NVM. In Proceedings of the 50th IEEE/ACM International Symposium on Microarchitecture (MICRO’17). ACM, New York, NY, 178--190. DOI:http://dx.doi.org/10.1145/3123939.3124539Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. M. A. Ogleari, E. L. Miller, and J. Zhao. 2018. Steal but no force: Efficient hardware undo+redo logging for persistent memory systems. In Proceedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA’18). 336--349. DOI:http://dx.doi.org/10.1109/HPCA.2018.00037Google ScholarGoogle Scholar
  34. Scott Rixner, William J. Dally, Ujval J. Kapasi, Peter Mattson, and John D. Owens. 2000. Memory access scheduling. In Proceedings of the 27th International Symposium on Computer Architecture (ISCA’00). ACM, New York, NY, 128--138. DOI:http://dx.doi.org/10.1145/339647.339668Google ScholarGoogle Scholar
  35. Chundong Wang, Qingsong Wei, Jun Yang, Cheng Chen, and Mingdi Xue. 2015. How to be consistent with persistent memory? An evaluation approach. In Proceedings of the IEEE International Conference on Networking, Architecture and Storage (NAS’15). 186--194. DOI:http://dx.doi.org/10.1109/NAS.2015.7255223Google ScholarGoogle ScholarCross RefCross Ref
  36. Peter Sewell, Susmit Sarkar, Scott Owens, Francesco Zappa Nardelli, and Magnus O. Myreen. 2010. X86-TSO: A rigorous and usable programmer’s model for x86 multiprocessors. Commun. ACM 53, 7 (July 2010), 89--97. DOI:http://dx.doi.org/10.1145/1785414.1785443Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. The Raspberry Pi Foundation. 2018. Raspberry Pi 3 Model B+. Retrieved from https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/.Google ScholarGoogle Scholar
  38. Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th International Symposium on Computer Architecture (ISCA’09). ACM, New York, NY, 24--33. DOI:http://dx.doi.org/10.1145/1555754.1555760Google ScholarGoogle Scholar
  39. Zhenyu Sun, Xiuyuan Bi, Hai (Helen) Li, Weng-Fai Wong, Zhong-Liang Ong, Xiaochun Zhu, and Wenqing Wu. 2011. Multi retention level STT-RAM cache designs with a dynamic refresh scheme. In Proceedings of the 44th IEEE/ACM International Symposium on Microarchitecture (MICRO’11). ACM, New York, NY, 329--338. DOI:http://dx.doi.org/10.1145/2155620.2155659Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Dushyanth Narayanan and Orion Hodson. 2012. Whole-system persistence. SIGPLAN Not. 47, 4 (Mar. 2012), 401--410. DOI:http://dx.doi.org/10.1145/2248487.2151018Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Jishen Zhao, Sheng Li, Doe Hyun Yoon, Yuan Xie, and Norman P. Jouppi. 2013. Kiln: Closing the performance gap between systems with and without persistence support. In Proceedings of the 46th IEEE/ACM International Symposium on Microarchitecture (MICRO’13). ACM, New York, NY, 421--432. DOI:http://dx.doi.org/10.1145/2540708.2540744Google ScholarGoogle Scholar
  42. Hyojun Kim, Sangeetha Seshadri, Clement L. Dickey, and Lawrence Chiu. 2014. Evaluating phase change memory for enterprise storage systems: A study of caching and tiering approaches. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST’14). USENIX, Santa Clara, CA, 33--45. Retrieved from https://www.usenix.org/conference/fast14/technical-sessions/presentation/kim.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Rujia Wang, Lei Jiang, Youtao Zhang, Linzhang Wang, and Jun Yang. 2015. Selective restore: An energy efficient read disturbance mitigation scheme for future STT-MRAM. In Proceedings of the 52nd Design Automation Conference (DAC’15). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/2744769.2744908Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Mingkai Dong and Haibo Chen. 2017. Soft updates made simple and fast on non-volatile memory. In Proceedings of the USENIX Technical Conference (USENIX ATC’17). USENIX Association, Santa Clara, CA, 719--731. Retrieved from https://www.usenix.org/conference/atc17/technical-sessions/presentation/dong.Google ScholarGoogle Scholar
  45. Clinton W. Smullen, Vidyabhushan Mohan, Anurag Nigam, Sudhanva Gurumurthi, and Mircea R. Stan. 2011. Relaxing non-volatility for fast and energy-efficient STT-RAM caches. In Proceedings of the IEEE 17th International Symposium on High Performance Computer Architecture (HPCA’11). IEEE Computer Society, Washington, DC, 50--61. Retrieved from http://dl.acm.org/citation.cfm?id=2014698.2014895.Google ScholarGoogle Scholar
  46. Jinglei Ren, Jishen Zhao, Samira Khan, Jongmoo Choi, Yongwei Wu, and Onur Mutlu. 2015. ThyNVM: Enabling software-transparent crash consistency in persistent memory systems. In Proceedings of the 48th IEEE/ACM International Symposium on Microarchitecture (MICRO’15). 672--685. DOI:http://dx.doi.org/10.1145/2830772.2830802Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Chen Liu and Chengmo Yang. 2015. Secure and durable (SEDURA): An integrated encryption and wear-leveling framework for PCM-based main memory. In Proceedings of the 16th ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems (LCTES’15). ACM, New York, NY. DOI:http://dx.doi.org/10.1145/2670529.2754969Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Yiying Zhang, Jian Yang, Amirsaman Memaripour, and Steven Swanson. 2015. Mojim: A reliable and highly-available non-volatile memory system. In Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’15). ACM, New York, NY, 3--18. DOI:http://dx.doi.org/10.1145/2694344.2694370Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Duo Liu, Kan Zhong, Tianzheng Wang, Yi Wang, Zili Shao, Edwin Hsing-Mean Sha, and Jingling Xue. 2017. Durable address translation in PCM-Based flash storage systems. IEEE Trans. Parallel Distrib. Syst. 28, 2 (Feb. 2017), 475--490. DOI:http://dx.doi.org/10.1109/TPDS.2016.2586059Google ScholarGoogle Scholar
  50. Tianzheng Wang, Duo Liu, Yi Wang, and Zili Shao. 2015. Towards write-activity-aware page table management for non-volatile main memories. ACM Trans. Embed. Comput. Syst. 14, 2 (Feb. 2015). DOI:http://dx.doi.org/10.1145/2697394Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Daeyoung Lee and Hyunok Oh. 2013. A lifetime aware buffer assignment method for streaming applications on DRAM/PRAM hybrid memory. ACM Trans. Embed. Comput. Syst. 12, 1s (Mar. 2013). DOI:http://dx.doi.org/10.1145/2435227.2435232Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory persistency. In Proceeding of the 41st International Symposium on Computer Architecuture (ISCA’14). IEEE Press, Piscataway, NJ, 265--276. Retrieved from http://dl.acm.org/citation.cfm?id=2665671.2665712.Google ScholarGoogle Scholar
  53. Chen Pan, Mimi Xie, Chengmo Yang, Yiran Chen, and Jingtong Hu. 2017. Exploiting multiple write modes of nonvolatile main memory in embedded systems. ACM Trans. Embed. Comput. Syst. 16, 4 (May 2017). DOI:http://dx.doi.org/10.1145/3063130Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Cheng Chen, Qingsong Wei, Weng-Fai Wong, and Chundong Wang. 2019. NV-Journaling: Locality-aware journaling using byte-addressable non-volatile memory. IEEE Trans. Comput. 69, 2 (2019), 288--299. DOI:http://dx.doi.org/10.1109/TC.2019.2948004Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Lei Han, Zhaoyan Shen, Zili Shao, and Tao Li. 2018. Optimizing RAID/SSD controllers with lifetime extension for flash-based SSD array. In Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’18). ACM, New York, NY, 44--54. DOI:http://dx.doi.org/10.1145/3211332.3211338Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Vijay Chidambaram, Tushar Sharma, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2012. Consistency without ordering. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). USENIX Association, Berkeley, CA, 101--116. Retrieved from http://dl.acm.org/citation.cfm?id=2208461.2208470.Google ScholarGoogle Scholar
  57. Chundong Wang, Sudipta Chattopadhyay, and Gunavaran Brihadiswarn. 2019. Crash recoverable ARMv8-oriented B+-tree for byte-addressable persistent memory. In Proceedings of the 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’19). ACM, New York, NY, 33--44. DOI:http://dx.doi.org/10.1145/3316482.3326358Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Adrian M. Caulfield, Arup De, Joel Coburn, Todor I. Mollow, Rajesh K. Gupta, and Steven Swanson. 2010. Moneta: A high-performance storage array architecture for next-generation, non-volatile memories. In Proceedings of the 43rd IEEE/ACM International Symposium on Microarchitecture (MICRO’43). IEEE Computer Society, Washington, DC, 385--395. DOI:http://dx.doi.org/10.1109/MICRO.2010.33Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Wikipedia. 2019. Compare-and-swap. Retrieved from https://en.wikipedia.org/wiki/Compare-and-swap.Google ScholarGoogle Scholar
  60. ARM Holdings. 2018. Release notes for Arm Compiler 6.10. Retrieved from https://en.wikipedia.org/wiki/Compare-and-swap. (March 2018).Google ScholarGoogle Scholar
  61. Phil Yang. 2019. Add 128-bit atomic compare exchange. Retrieved from http://patchwork.dpdk.org/patch/61468/.Google ScholarGoogle Scholar
  62. WikiChip. 2017. ARMv8.1. Retrieved from https://en.wikichip.org/wiki/arm/armv8.1.Google ScholarGoogle Scholar
  63. David A. Patterson and John L. Hennessy. 2016. Computer Organization and Design ARM Edition: The Hardware Software Interface. Morgan Kaufmann.Google ScholarGoogle Scholar
  64. openSUSE. 2018. openSUSE:AArch64. Retrieved from https://en.opensuse.org/openSUSE:AArch64.Google ScholarGoogle Scholar
  65. Everspin. 2018. Spin-transfer Torque MRAM Technology. Retrieved from https://www.everspin.com/spin-transfer-torque-mram-technology.Google ScholarGoogle Scholar
  66. Everspin. 2020. Everspin Technologies Announces Development of STT-MRAM for Industrial and IoT Applications. Retrieved from https://www.everspin.com/sites/default/files/pressdocs/Everspin__industrial_IoT_STTMRAM.pdf.Google ScholarGoogle Scholar
  67. Jimmy J. Kan, Chando Park, Chi Ching, Jaesoo Ahn, Yuan Xie, Mahendra Pakala, and Seung H. Kang. 2017. A study on practically unlimited endurance of STT-MRAM. IEEE Trans. Electron Dev. 64, 9 (2017), 3639--3646.Google ScholarGoogle ScholarCross RefCross Ref
  68. Ping Chi, Wang-Chien Lee, and Yuan Xie. 2014. Making B+-tree efficient in PCM-based main memory. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED’14). ACM, New York, NY, 69--74. DOI:http://dx.doi.org/10.1145/2627369.2627630Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Mazen Alwadi, Aziz Mohaisen, and Amro Awad. 2019. Phoenix: Towards Persistently Secure, Recoverable, and NVM Friendly Tree of Counters. arxiv:cs.CR/1911.01922.Google ScholarGoogle Scholar
  70. Adrian M. Caulfield, Todor I. Mollov, Louis Alex Eisner, Arup De, Joel Coburn, and Steven Swanson. 2012. Providing safe, user space access to fast, solid state disks. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’12). ACM, New York, NY, 387--400. DOI:http://dx.doi.org/10.1145/2150976.2151017Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Crab-tree: A Crash Recoverable B+-tree Variant for Persistent Memory with ARMv8 Architecture

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!