skip to main content
10.1145/3514221.3517884acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

Halo: A Hybrid PMem-DRAM Persistent Hash Index with Fast Recovery

Published:11 June 2022Publication History

ABSTRACT

Hash index, a fundamental component in many data management systems, can benefit from the emerging persistent memory (PMem) to achieve high performance and instant recovery. However, existing persistent hash indexes are suboptimal in at least three aspects. First, their performance suffers from the mismatch between small random write and access granularity of PMem hardware. Second, none of them are aware of the significance of write amplification caused by memory allocators and synchronization primitives. Third, hybrid designs (PMem+DRAM) focus on improving throughput at the cost of extremely long recovery time.

In this paper, we present the design and implementation of Halo, a hybrid hash index for PMem+DRAM environment, featuring a specifically designed volatile index and log-structured persistent storage layout. In order to suppress write amplification caused by memory allocators and to facilitate recovery, we propose Halloc, a highly-efficient memory manager for Halo. In addition, we propose mechanisms such as batched writes, prefetching for hybrid reads, and reactive snapshot to further optimize performance. We conduct extensive evaluations on a 32-core platform equipped with Intel Optane DC Persistent Memory Modules. The results show that Halo achieves up to 17.5x and 81.2x higher read and write throughput than state-of-the-art hash indexes under a wide range of workloads. Halo also outperforms current hybrid designs in recovery speed, which is 1 to 2 orders of magnitude faster.

References

  1. 2019. Intel Optane DIMM Pricing. Retrieved Nov 1, 2021 from https://www.tomshardware.com/news/intel-optane-dimm-pricing-performance,39007.htmlGoogle ScholarGoogle Scholar
  2. Ashok Anand, Chitra Muthukrishnan, Steven Kappes, Aditya Akella, and Suman Nath. 2010. Cheap and Large CAMs for High Performance Data-Intensive Networked Systems. In Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation (San Jose, California) (NSDI'10). USENIX Association, USA, 29.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. David G. Andersen, Jason Franklin, Michael Kaminsky, Amar Phanishayee, Lawrence Tan, and Vijay Vasudevan. 2009. FAWN: A Fast Array of Wimpy Nodes. In Proceedings of the ACM SIGOPS 22nd Symp. on Operating Systems Principles (SOSP '09). ACM, NY, USA, 1--14. https://doi.org/10.1145/1629575.1629577Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dmytro Apalkov, Alexey Khvalkovskiy, Steven Watts, Vladimir Nikitin, Xueti Tang, Daniel Lottis, Kiseok Moon, Xiao Luo, Eugene Chen, Adrian Ong, Alexander Driskill-Smith, and Mohamad Krounbi. 2013. Spin-Transfer Torque Magnetic Random Access Memory (STT-MRAM). J. Emerg. Technol. Comput. Syst. 9, 2, Article 13 (May 2013), 35 pages. https://doi.org/10.1145/2463585.2463589Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Mohamed Arafa, Bahaa Fahim, Sailesh Kottapalli, Akhilesh Kumar, Lily P. Looi, Sreenivas Mandava, Andy Rudoff, Ian M. Steiner, Bob Valentine, Geetha Vedaraman, and Sujal Vora. 2019. Cascade Lake: Next Generation Intel Xeon Scalable Processor. IEEE Micro 39, 2 (2019), 29--36. https://doi.org/10.1109/MM.2019.2899330Google ScholarGoogle ScholarCross RefCross Ref
  6. Joy Arulraj, Justin Levandoski, Umar Farooq Minhas, and Per-Ake Larson. 2018. Bztree: A High-Performance Latch-Free Range Index for Non-Volatile Memory. Proc. VLDB Endow. 11, 5 (Jan. 2018), 553--565. https://doi.org/10.1145/3164135.3164147Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Joy Arulraj, Andrew Pavlo, and Subramanya R. Dulloor. 2015. Let's Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems. In Proceedings of the 2015 ACM SIGMOD Int'l Conf. on Management of Data (Melbourne, VIC, AU) (SIGMOD '15). ACM, NY, USA, 707--722. https://doi.org/10.1145/2723372.2749441Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2012. Workload Analysis of a Large-Scale Key-Value Store. SIGMETRICS Perform. Eval. Rev. 40, 1 (June 2012), 53--64. https://doi.org/10.1145/2318857.2254766Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Lawrence Benson, Hendrik Makait, and Tilmann Rabl. 2021. Viper: An Efficient Hybrid PMem-DRAM Key-Value Store. Proceedings of the VLDB Endowment 14, 9 (2021), 1544--1556. https://doi.org/10.14778/3461535.3461543Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Kumud Bhandari, Dhruva R. Chakrabarti, and Hans-J. Boehm. 2016. Makalu: Fast Recoverable Allocation of Non-Volatile Memory. SIGPLAN Not. 51, 10 (Oct. 2016), 677--694. https://doi.org/10.1145/3022671.2984019Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Zhichao Cao, Siying Dong, Sagar Vemuri, and David H.C. Du. 2020. Characterizing, Modeling, and Benchmarking RocksDB Key-Value Workloads at Facebook. In 18th USENIX Conference on File and Storage Technologies (FAST 20). USENIX Association, Santa Clara, CA, 209--223. https://www.usenix.org/conference/fast20/presentation/cao-zhichaoGoogle ScholarGoogle Scholar
  12. Badrish Chandramouli, Guna Prasaad, Donald Kossmann, Justin Levandoski, James Hunter, and Mike Barnett. 2018. FASTER: A Concurrent Key-Value Store with In-Place Updates. In 2018 ACM SIGMOD Int'l Conf. on Management of Data (SIGMOD '18), Houston, TX, USA (2018 acm sigmod international conference on management of data (sigmod '18), houston, tx, usa ed.). https://www.microsoft.com/en-us/research/publication/faster-concurrent-key-value-store-place-updates/Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Shimin Chen and Qin Jin. 2015. Persistent B+-Trees in Non-Volatile Main Memory. Proceedings of the VLDB Endowment 8, 7 (2015), 786--797. https://doi.org/10.14778/2752939.2752947Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Youmin Chen, Youyou Lu, Fan Yang, Qing Wang, Yang Wang, and Jiwu Shu. 2020. FlatStore: An Efficient Log-Structured Key-Value Storage Engine for Persistent Memory. In Proceedings of the 25th Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (Lausanne, CH) (ASPLOS '20). ACM, NY, USA, 1077--1091. https://doi.org/10.1145/3373376.3378515Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Zhiwen Chen, Xin He, Jianhua Sun, and Hao Chen. 2018. Have Your Cake and Eat It (Too): A Concurrent Hash Table with Hardware Transactions. Int. J. Parallel Program. 46, 4 (2018), 699--709. https://doi.org/10.1007/s10766-017-0529--7Google ScholarGoogle ScholarCross RefCross Ref
  16. Zhiwen Chen, Xin He, Jianhua Sun, Hao Chen, and Ligang He. 2018. Concurrent hash tables on multicore machines: Comparison, evaluation and implications. Future Generation Computer Systems 82 (2018), 127 -- 141.Google ScholarGoogle ScholarCross RefCross Ref
  17. Zhangyu Chen, Yu Huang, Bo Ding, and Pengfei Zuo. 2020. Lock-free Concurrent Level Hashing for Persistent Memory. In 2020 USENIX Annual Technical Conf. (USENIX ATC 20). USENIX Association, 799--812. https://www.usenix.org/conference/atc20/presentation/chenGoogle ScholarGoogle Scholar
  18. 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 Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI). ACM, NY, USA, 105--118. https://doi.org/10.1145/1950365.1950380Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking Cloud Serving Systems with YCSB. In Proceedings of the 1st ACM Symp. on Cloud Computing (Indianapolis, IN, USA) (SoCC '10). ACM, NY, USA, 143--154. https://doi.org/10.1145/1807128.1807152Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Björn Daase, Lars Jonas Bollmeier, Lawrence Benson, and Tilmann Rabl. 2021. Maximizing Persistent Memory Bandwidth Utilization for OLAP Workloads. In Proceedings of the 2021 Int'l Conf. on Management of Data (SIGMOD'21). ACM, NY, USA, 13 pages. https://doi.org/10.1145/3448016.3457292Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. 2015. Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures. In Proceedings of the 20th Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS '15). ACM, Istanbul, Turkey, 631--644. https://doi.org/10.1145/2694344.2694359Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Biplob Debnath, Alireza Haghdoost, Asim Kadav, Mohammed G Khatib, and Cristian Ungureanu. 2016. Revisiting hash table design for phase change memory. ACM SIGOPS Operating Systems Review 49, 2 (2016), 18--26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Biplob Debnath, Sudipta Sengupta, and Jin Li. 2010. FlashStore: High Throughput Persistent Key-Value Store. Proc. VLDB Endow. 3, 1--2 (Sept. 2010), 1414--1425. https://doi.org/10.14778/1920841.1921015Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Biplob Debnath, Sudipta Sengupta, and Jin Li. 2011. SkimpyStash: RAM Space Skimpy Key-Value Store on Flash-Based Storage. In Proceedings of the 2011 ACM SIGMOD Int'l Conf. on Management of Data (Athens, Greece) (SIGMOD '11). ACM, NY, USA, 25--36. https://doi.org/10.1145/1989323.1989327Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Anthony Demeri, Wook-Hee Kim, R. Madhava Krishnan, Jaeho Kim, Mohannad Ismail, and Changwoo Min. 2020. Poseidon: Safe, Fast and Scalable Persistent Memory Allocator. In Proceedings of the 21st International Middleware Conference (Delft, NL) (Middleware '20). ACM, NY, USA, 207--220. https://doi.org/10.1145/3423211.3425671Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Bang Di, Jiawen Liu, Hao Chen, and Dong Li. 2021. Fast, Flexible, and Comprehensive Bug Detection for Persistent Memory Programs. In Proceedings of the 26th ACM Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (Virtual, USA) (ASPLOS 2021). ACM, NY, USA, 503--516. https://doi.org/10.1145/3445814.3446744Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Jason Evans. 2006. A Scalable Concurrent malloc(3) Implementation for FreeBSD.Google ScholarGoogle Scholar
  28. Ronald Fagin, Jurg Nievergelt, Nicholas Pippenger, and H. Raymond Strong. 1979. Extendible Hashing-a Fast Access Method for Dynamic Files. ACM Trans. Database Syst. 4, 3 (1979), 315--344. https://doi.org/10.1145/320083.320092Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. GNU. 2021. Allocating Aligned Memory Blocks. Retrieved January 14, 2021 from https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory- Blocks.htmlGoogle ScholarGoogle Scholar
  30. Shashank Gugnani, Arjun Kashyap, and Xiaoyi Lu. 2020. Understanding the Idiosyncrasies of Real Persistent Memory. Proc. VLDB Endow. 14, 4 (Dec. 2020), 626--639. https://doi.org/10.14778/3436905.3436921Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Maurice Herlihy, Nir Shavit, and Moran Tzafrir. 2008. Hopscotch Hashing. In Proceedings of the 22nd International Symp. on Distributed Computing (DISC '08). Springer-Verlag, Arcachon, France, 350--364. https://doi.org/10.1007/978--3--540--87779-0_24Google ScholarGoogle Scholar
  32. Daokun Hu, Zhiwen Chen, Jianbing Wu, Jianhua Sun, and Hao Chen. 2021. Persistent Memory Hash Indexes: An Experimental Evaluation. Proc. VLDB Endow. 14, 5 (Jan. 2021), 785--798. https://doi.org/10.14778/3446095.3446101Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Qingda Hu, Jinglei Ren, Anirudh Badam, Jiwu Shu, and Thomas Moscibroda. 2017. Log-Structured Non-Volatile Main Memory. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (Santa Clara, CA, USA) (USENIX ATC '17). USENIX Association, USA, 703--717.Google ScholarGoogle Scholar
  34. Gui Huang, Xuntao Cheng, Jianying Wang, Yujie Wang, Dengcheng He, Tieying Zhang, Feifei Li, Sheng Wang, Wei Cao, and Qiang Li. 2019. X-Engine: An Optimized Storage Engine for Large-Scale E-Commerce Transaction Processing. In Proceedings of the 2019 Int'l Conf. on Management of Data (Amsterdam, NL) (SIGMOD '19). ACM, NY, USA, 651--665. https://doi.org/10.1145/3299869.3314041Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 (Oakland, CA, USA) (FAST'18). USENIX Association, USA, 187--200.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Intel. 2018. Intel Optane DC Persistent Memory Operating Modes Explained. Retrieved May 12, 2021 from https://itpeernetwork.intel.com/intel-optane-dc-persistent-memory-operating-modes/Google ScholarGoogle Scholar
  37. Intel. 2019. Cascade Lake. Retrieved May 8, 2021 from https://www.intel.com/content/www/us/en/design/products-and-solutions/processors-and-chipsets/cascade-lake/2nd-gen-intel-xeon-scalable-processors.htmlGoogle ScholarGoogle Scholar
  38. Intel. 2021. libpmem of Persistent Memory Development Kit. Retrieved January 14, 2021 from https://pmem.io/pmdk/libpmem/Google ScholarGoogle Scholar
  39. Intel. 2021. libvmem of Persistent Memory Development Kit. Retrieved January 14, 2021 from https://pmem.io/vmem/libvmem/Google ScholarGoogle Scholar
  40. Intel. 2021. Persistent Memory Development Kit. Retrieved June 14, 2021 from https://pmem.io/Google ScholarGoogle Scholar
  41. Joseph Izraelevitz, Jian Yang, Lu Zhang, Juno Kim, Xiao Liu, Amirsaman Memaripour, Yun Joon Soh, Zixuan Wang, Yi Xu, Subramanya R. Dulloor, Jishen Zhao, and Steven Swanson. 2019. Basic Performance Measurements of the Intel Optane DC Persistent Memory Module. arXiv:1903.05714 [cs.DC]Google ScholarGoogle Scholar
  42. Olzhas Kaiyrakhmet, Songyi Lee, Beomseok Nam, Sam H. Noh, and Young ri Choi. 2019. SLM-DB: Single-Level Key-Value Store with Persistent Memory. In 17th USENIX Conf. on File and Storage Technologies (FAST 19). USENIX Association, Boston, MA, 191--205. https://www.usenix.org/conference/fast19/presentation/kaiyrakhmetGoogle ScholarGoogle Scholar
  43. Se Kwon Lee, Jayashree Mohan, Sanidhya Kashyap, Taesoo Kim, and Vijay Chidambaram. 2019. Recipe: Converting Concurrent DRAM Indexes to Persistent- Memory Indexes. In Proceedings of the 27th ACM Symp. on Operating Systems Principles (SOSP'19). ACM, NY, USA, 462--477. https://doi.org/10.1145/3341301.3359635Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Lucas Lersch, Xiangpeng Hao, Ismail Oukid, Tianzheng Wang, and Thomas Willhalm. 2019. Evaluating persistent memory range indexes. Proceedings of the VLDB Endowment 13 (12 2019), 574--587. https://doi.org/10.14778/3372716.3372728Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Xiaozhou Li, David G. Andersen, Michael Kaminsky, and Michael J. Freedman. 2014. Algorithmic Improvements for Fast Concurrent Cuckoo Hashing. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys '14). ACM, Amsterdam, The Netherlands, Article 27, 14 pages. https://doi.org/10.1145/2592798.2592820Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Hyeontaek Lim, Bin Fan, David G. Andersen, and Michael Kaminsky. 2011. SILT: A Memory-Efficient, High-Performance Key-Value Store. In Proceedings of the 23rd ACM Symp. on Operating Systems Principles (Cascais, PT) (SOSP '11). ACM, NY, USA, 1--13. https://doi.org/10.1145/2043556.2043558Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Sihang Liu, Yizhou Wei, Jishen Zhao, Aasheesh Kolli, and Samira Khan. 2019. PMTest: A Fast and Flexible Testing Framework for Persistent Memory Programs. In Proceedings of the 24th Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (Providence, RI, USA) (ASPLOS '19). ACM, NY, USA, 411--425. https://doi.org/10.1145/3297858.3304015Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Baotong Lu, Xiangpeng Hao, Tianzheng Wang, and Eric Lo. 2020. Dash: Scalable Hashing on Persistent Memory. Proceedings of the VLDB Endowment 13, 8 (2020), 1147--1161. https://doi.org/10.14778/3389133.3389134Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Zviad Metreveli, Nickolai Zeldovich, and M. Frans Kaashoek. 2012. CPHASH: A Cache-Partitioned Hash Table. SIGPLAN Not. 47, 8 (2012), 319--320. https://doi.org/10.1145/2370036.2145874Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Micron. 2015. 3D-X-Point Technology. Retrieved May 8, 2021 from https://www.micron.com/products/advanced-solutions/3d-xpoint-technologyGoogle ScholarGoogle Scholar
  51. Moohyeon Nam, Hokeun Cha, Young ri Choi, Sam H. Noh, and Beomseok Nam. 2019. Write-Optimized Dynamic Hashing for Persistent Memory. In 17th USENIX Conference on File and Storage Technologies (FAST'19). USENIX, Boston, MA, 31--44. https://www.usenix.org/conference/fast19/presentation/namGoogle ScholarGoogle Scholar
  52. Suman Nath and Aman Kansal. 2007. FlashDB: Dynamic Self-Tuning Database for NAND Flash. In Proceedings of the 6th Int'l Conf. on Information Processing in Sensor Networks (Cambridge, Massachusetts, USA) (IPSN '07). ACM, NY, USA, 410--419. https://doi.org/10.1145/1236360.1236412Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Ismail Oukid, Daniel Booss, Adrien Lespinasse, Wolfgang Lehner, Thomas Willhalm, and Grégoire Gomes. 2017. Memory Management Techniques for Large- Scale Persistent-Main-Memory Systems. Proc. VLDB Endow. 10, 11 (Aug. 2017), 1166--1177. https://doi.org/10.14778/3137628.3137629Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. 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 2016 Int'l Conf. on Management of Data (San Francisco, California, USA) (SIGMOD '16). ACM, NY, USA, 371--386. https://doi.org/10.1145/2882903.2915251Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Rasmus Pagh and Flemming Friche Rodler. 2004. Cuckoo Hashing. J. Algorithms 51, 2 (2004), 122--144. https://doi.org/10.1016/j.jalgor.2003.12.002Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Soyeon Park, Sangho Lee, Wen Xu, Hyungon Moon, and Taesoo Kim. 2019. Libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK). In Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference (Renton, WA, USA) (USENIX ATC '19). USENIX Association, USA, 241--254.Google ScholarGoogle Scholar
  57. S. Raoux, G. W. Burr, M. J. Breitwisch, C. T. Rettner, Y.-C. Chen, R. M. Shelby, M. Salinga, D. Krebs, S.-H. Chen, H.-L. Lung, and C. H. Lam. 2008. Phase-change random access memory: A scalable technology. IBM Journal of Research and Development 52, 4.5 (2008), 465--479. https://doi.org/10.1147/rd.524.0465Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. 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 Int'l Symp. on Microarchitecture (Waikiki, HI, USA) (MICRO-48). ACM, NY, USA, 672--685. https://doi.org/10.1145/2830772.2830802Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Mendel Rosenblum and John K. Ousterhout. 1991. The Design and Implementation of a Log-Structured File System. In Proceedings of the 13th ACM Symp. on Operating Systems Principles (Pacific Grove, CA, USA) (SOSP '91). ACM, NY, USA, 1--15. https://doi.org/10.1145/121132.121137Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. David Schwalb, Tim Berning, Martin Faust, Markus Dreseler, and Hasso Plattner. 2015. nvm_malloc: Memory Allocation for NVRAM. In International Workshop on Accelerating Data Management Systems Using Modern Processor and Storage Architectures - ADMS 2015, Kohala Coast, Hawaii, USA, August 31, 2015, Rajesh Bordawekar, Tirthankar Lahiri, Bugra Gedik, and Christian A. Lang (Eds.). 61--72. http://www.adms-conf.org/2015/adms15_schwalb.pdfGoogle ScholarGoogle Scholar
  61. V. Srinivasan, Brian Bulkowski, Wei-Ling Chu, Sunil Sayyaparaju, Andrew Gooding, Rajkumar Iyer, Ashish Shinde, and Thomas Lopatic. 2016. Aerospike: Architecture of a Real-Time Operational DBMS. Proc. VLDB Endow. 9, 13 (Sept. 2016), 1389--1400. https://doi.org/10.14778/3007263.3007276Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Stephen Tu, Wenting Zheng, Eddie Kohler, Barbara Liskov, and Samuel Madden. 2013. Speedy Transactions in Multicore In-Memory Databases. In Proceedings of the 24th ACM Symp. on Operating Systems Principles (Farminton, PA, USA) (SOSP '13). ACM, NY, USA, 18--32. https://doi.org/10.1145/2517349.2522713Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Alexander van Renen, Lukas Vogel, Viktor Leis, Thomas Neumann, and A. Kemper. 2020. Building blocks for persistent memory. VLDB J. 29 (2020), 1223--1241.Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight Persistent Memory. In Proceedings of the 16th Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (Newport Beach, CA, USA) (ASPLOS XVI). ACM, NY, USA, 91--104. https://doi.org/10.1145/1950365.1950379Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Tianzheng Wang and Ryan Johnson. 2014. Scalable logging through emerging non-volatile memory. Proceedings of the VLDB Endowment 7, 10 (2014), 865--876. https://doi.org/10.14778/2732951.2732960Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. H.-S. Philip Wong, Heng-Yuan Lee, Shimeng Yu, Yu-Sheng Chen, Yi Wu, Pang-Shiu Chen, Byoungil Lee, Frederick T. Chen, and Ming-Jinn Tsai. 2012. Metal--Oxide RRAM. Proc. IEEE 100, 6 (2012), 1951--1970. https://doi.org/10.1109/JPROC.2012.2190369Google ScholarGoogle ScholarCross RefCross Ref
  67. 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 (Santa Clara, CA) (FAST'16). USENIX Association, USA, 323--338.Google ScholarGoogle Scholar
  68. Jian Yang, Juno Kim, Morteza Hoseinzadeh, Joseph Izraelevitz, and Steve Swanson. 2020. An Empirical Guide to the Behavior and Use of Scalable Persistent Memory. In 18th USENIX Conference on File and Storage Technologies (FAST 20). USENIX Association, Santa Clara, CA, 169--182. https://www.usenix.org/conference/fast20/presentation/yangGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  69. 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 13th USENIX Conf. on File and Storage Technologies (FAST 15). USENIX Association, SC, CA, 167--181. https://www.usenix.org/conference/fast15/technical-sessions/presentation/yangGoogle ScholarGoogle Scholar
  70. J. Joshua Yang and R. Stanley Williams. 2013. Memristive Devices in Computing System: Promises and Challenges. J. Emerg. Technol. Comput. Syst. 9, 2, Article 11 (May 2013), 20 pages. https://doi.org/10.1145/2463585.2463587Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Ting Yao, Yiwen Zhang, Jiguang Wan, Qiu Cui, Liu Tang, Hong Jiang, Changsheng Xie, and Xubin He. 2020. MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based KV Stores with Matrix Container in NVM. In 2020 USENIX Annual Technical Conference (USENIX ATC 20). USENIX Association, 17--31. https://www.usenix.org/conference/atc20/presentation/yaoGoogle ScholarGoogle Scholar
  72. Demetrios Zeinalipour-Yazti, Song Lin, Vana Kalogeraki, Dimitrios Gunopulos, and Walid A. Najjar. 2005. Microhash: An Efficient Index Structure for Fash-Based Sensor Devices. In Proceedings of the 4th Conference on USENIX Conference on File and Storage Technologies - Volume 4 (San Francisco, CA) (FAST'05). USENIX Association, USA, 3.Google ScholarGoogle Scholar
  73. Wenhui Zhang, Xingsheng Zhao, Song Jiang, and Hong Jiang. 2021. ChameleonDB: A Key-Value Store for Optane Persistent Memory. In Proceedings of the Sixteenth European Conference on Computer Systems (Online Event, United Kingdom) (EuroSys '21). ACM, NY, USA, 194--209. https://doi.org/10.1145/3447786.3456237Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Xinjing Zhou, Lidan Shou, Ke Chen, Wei Hu, and Gang Chen. 2019. DPTree: Differential Indexing for Persistent Memory. Proceedings of the VLDB Endowment 13, 4 (2019), 421--434. https://doi.org/10.14778/3372716.3372717Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Tao Zhu, Zhuoyue Zhao, Feifei Li, Weining Qian, Aoying Zhou, Dong Xie, Ryan Stutsman, Haining Li, and Huiqi Hu. 2019. SolarDB: Toward a Shared-Everything Database on Distributed Log-Structured Storage. ACM Trans. Storage 15, 2, Article 11 (June 2019), 26 pages. https://doi.org/10.1145/3318158Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Pengfei Zuo and Yu Hua. 2017. A write-friendly and cache-optimized hashing scheme for non-volatile memory systems. IEEE Transactions on Parallel and Distributed Systems 29, 5 (2017), 985--998.Google ScholarGoogle ScholarCross RefCross Ref
  77. Pengfei Zuo, Yu Hua, and Jie Wu. 2018. Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory. In 13th USENIX Symp. on Operating Systems Design and Implementation (OSDI 18). USENIX Association, Carlsbad, CA, 461--476. https://www.usenix.org/conference/osdi18/presentation/zuoGoogle ScholarGoogle Scholar
  78. Yoav Zuriel, Michal Friedman, Gali Sheffi, Nachshon Cohen, and Erez Petrank. 2019. Efficient Lock-Free Durable Sets. Proceedings of the ACM on Programming Languages 3, OOPSLA, Article 128 (2019), 26 pages. https://doi.org/10.1145/3360554Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Halo: A Hybrid PMem-DRAM Persistent Hash Index with Fast Recovery

        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
        • Published in

          cover image ACM Conferences
          SIGMOD '22: Proceedings of the 2022 International Conference on Management of Data
          June 2022
          2597 pages
          ISBN:9781450392495
          DOI:10.1145/3514221

          Copyright © 2022 ACM

          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 ACM 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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 11 June 2022

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate785of4,003submissions,20%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader