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.
- 2019. Intel Optane DIMM Pricing. Retrieved Nov 1, 2021 from https://www.tomshardware.com/news/intel-optane-dimm-pricing-performance,39007.htmlGoogle Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Jason Evans. 2006. A Scalable Concurrent malloc(3) Implementation for FreeBSD.Google Scholar
- 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 ScholarDigital Library
- GNU. 2021. Allocating Aligned Memory Blocks. Retrieved January 14, 2021 from https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory- Blocks.htmlGoogle Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Intel. 2021. libpmem of Persistent Memory Development Kit. Retrieved January 14, 2021 from https://pmem.io/pmdk/libpmem/Google Scholar
- Intel. 2021. libvmem of Persistent Memory Development Kit. Retrieved January 14, 2021 from https://pmem.io/vmem/libvmem/Google Scholar
- Intel. 2021. Persistent Memory Development Kit. Retrieved June 14, 2021 from https://pmem.io/Google Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Micron. 2015. 3D-X-Point Technology. Retrieved May 8, 2021 from https://www.micron.com/products/advanced-solutions/3d-xpoint-technologyGoogle Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
Index Terms
- Halo: A Hybrid PMem-DRAM Persistent Hash Index with Fast Recovery
Recommendations
Pea Hash: A Performant Extendible Adaptive Hashing Index
PACMMODHashing index is widely used to support efficient point operations. We observe that there is a conflict between performance and memory utilization goals. Existing hashing indices often have to trade off hash table access latency for better memory ...
Hybrid hash index for NAND flash memory-based storage systems
ICUIMC '12: Proceedings of the 6th International Conference on Ubiquitous Information Management and CommunicationRecently, NAND flash memory has become an alternative storage system for a storage device because of its rapid access speed, shock-resistant, small size, and lower power consumption. However, compared to the disk-based storage device, NAND flash memory ...
Using DRAM Buffer to Reduce Persistence and Consistence Overheads of Persistent Memory
Persistent memory has the potential to become universal storage for memory and storage uses. Unfortunately, our system architecture is good fit for two-level storage model with DRAM and storage. It incurs two of important performance overheads. First is ...
Comments