Abstract
Persistent memory (PMem) is increasingly being leveraged to build hash-based indexing structures featuring cheap persistence, high performance, and instant recovery. Especially with the release of Intel Optane DC Persistent Memory Modules, we have witnessed a flourish in (re)designing persistent hash indexes. However, most of them are focus on the evaluation of specific metrics with important properties sidestepped. Thus, it is essential to understand how the proposed hash indexes perform under a unified testing framework and how they differentiate from each other if a wider range of performance metrics are considered. To this end, this paper provides a comprehensive evaluation of persistent hash tables. In particular, we focus on the evaluation of several state-of-the-art hash tables including CCEH, Dash, PCLHT, Clevel, Viper, Halo, SOFT, and Plush, with the second-generation PMem hardware. Our evaluation was conducted using a unified benchmarking framework and representative workloads. Besides characterizing common performance properties, we also explore how hardware configurations (such as PMem bandwidth, CPU instructions, and NUMA) affect the performance of PMem-based hash tables. With our in-depth analysis, we identify design trade-offs and good paradigms in prior arts and suggest desirable optimizations and directions for the future development of PMem-based hash tables.
Similar content being viewed by others
References
Hosomi, M., Yamagishi, H., Yamamoto, T., Bessho, K., Higo, Y., Yamane, K., Yamada, H., Shoji, M., Hachino, H., Fukumoto, C., et al.: A novel nonvolatile memory with spin torque transfer magnetization switching: Spin-ram. In: IEEE International Electron Devices Meeting, 2005, pp. 459–462. IEEE (2005)
Strukov, D.B., Snider, G.S., Stewart, D.R., Williams, R.S.: The missing memristor found. Nature 453(7191), 80–83 (2008). https://doi.org/10.1038/nature06932
Wong, H.S.P., Raoux, S., Kim, S., Liang, J., Reifenberg, J.P., Rajendran, B., Asheghi, M., Goodson, K.E.: Phase change memory. Proc. IEEE 98(12), 2201–2227 (2010)
Micron: 3d-x-Point Technology (2015). https://www.micron.com/products/advanced-solutions/3d-xpoint-technology
Lersch, L., Hao, X., Oukid, I., Wang, T., Willhalm, T.: Evaluating persistent memory range indexes. Proc. VLDB Endowm. 13(4), 574–587 (2019). https://doi.org/10.14778/3372716.3372728
Weiland, M., Brunst, H., Quintino, T., Johnson, N., Iffrig, O., Smart, S., Herold, C., Bonanni, A., Jackson, A., Parsons, M.: An early evaluation of intel’s optane dc persistent memory module and its impact on high-performance scientific applications. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC’19. Association for Computing Machinery, Denver, Colorado (2019). https://doi.org/10.1145/3295500.3356159
Yang, J., Kim, J., Hoseinzadeh, M., Izraelevitz, J., Swanson, S.: An empirical guide to the behavior and use of scalable persistent memory. In: Proceedings of the 18th USENIX Conference on File and Storage Technologies, FAST’20 (2020)
Daase, B., Bollmeier, L.J., Benson, L., Rabl, T.: Maximizing persistent memory bandwidth utilization for olap workloads. In: Proceedings of the 2021 International Conference on Management of Data, SIGMOD’21. ACM, New York (2021). https://doi.org/10.1145/3448016.3457292
Xiang, L., Zhao, X., Rao, J., Jiang, S., Jiang, H.: Characterizing the performance of intel optane persistent memory: A close look at its on-dimm buffering. In: Proceedings of the 17th European Conference on Computer Systems, EuroSys ’22, pp. 488-505. ACM (2022). https://doi.org/10.1145/3492321.3519556
Benson, L., Papke, L., Rabl, T.: Perma-bench: Benchmarking persistent memory access. Proc. VLDB Endow. 15(11), 2463–2476 (2022). https://doi.org/10.14778/3551793.3551807
Wang, T., Johnson, R.: Scalable logging through emerging non-volatile memory. Proc. VLDB Endow. 7(10), 865–876 (2014). https://doi.org/10.14778/2732951.2732960
Nam, M., Cha, H., ri Choi, Y., Noh, S.H., Nam, B.: Write-optimized dynamic hashing for persistent memory. In: 17th USENIX Conference on File and Storage Technologies, pp. 31–44. USENIX, Boston (2019). https://www.usenix.org/conference/fast19/presentation/nam
Zuo, P., Hua, Y., Wu, J.: Write-optimized and high-performance hashing index scheme for persistent memory. In: Proceedings of the 13th USENIX Conference on Operating Systems Design and Implementation, OSDI’18, pp. 461–476. USENIX, Carlsbad (2018)
Fan, B., Andersen, D.G., Kaminsky, M.: Memc3: Compact and concurrent memcache with dumber caching and smarter hashing. In: Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation, NSDI’13, pp. 371–384. USENIX, Lombard (2013)
Lim, H., Han, D., Andersen, D.G., Kaminsky, M.: MICA: A holistic approach to fast in-memory key-value storage. In: Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation, NSDI’14, pp. 429–444. USENIX, Seattle (2014)
Ousterhout, J., Agrawal, P., Erickson, D., Kozyrakis, C., Leverich, J., Mazières, D., Mitra, S., Narayanan, A., Parulkar, G., Rosenblum, M., Rumble, S.M., Stratmann, E., Stutsman, R.: The case for ramclouds: scalable high-performance storage entirely in dram. ACM SIGOPS Oper. Syst. Rev. 43(4), 92–105 (2010). https://doi.org/10.1145/1713254.1713276
Pilman, M., Bocksrocker, K., Braun, L., Marroquin, R., Kossmann, D.: Fast scans on key-value stores. Proc. VLDB Endow. 10(11), 1526–1537 (2017). https://doi.org/10.14778/3137628.3137659
Lee, S.K., Mohan, J., Kashyap, S., Kim, T., Chidambaram, V.: Recipe: converting concurrent dram indexes to persistent-memory indexes. In: Proceedings of the 27th ACM Symposium on Operating Systems Principles, SOSP’19, pp. 462–477. ACM (2019). https://doi.org/10.1145/3341301.3359635
Lu, B., Hao, X., Wang, T., Lo, E.: Dash: scalable hashing on persistent memory. Proc. VLDB Endow. 13(8), 1147–1161 (2020). https://doi.org/10.14778/3389133.3389134
Zuriel, Y., Friedman, M., Sheffi, G., Cohen, N., Petrank, E.: Efficient lock-free durable sets. Proc. ACM Program. Lang. 3(OOPSLA), 1 (2019). https://doi.org/10.1145/3360554
Vogel, L., van Renen, A., Imamura, S., Giceva, J., Neumann, T., Kemper, A.: Plush: A write-optimized persistent log-structured hash-table. Proc. VLDB Endow. 15(11), 2895-2907 (2022). https://doi.org/10.14778/3551793.3551839
Chen, Z., Huang, Y., Ding, B., Zuo, P.: Lock-free concurrent level hashing for persistent memory. In: 2020 USENIX Annual Technical Conference (USENIX ATC 20), pp. 799–812. USENIX Association (2020). https://www.usenix.org/conference/atc20/presentation/chen
Hu, D., Chen, Z., Che, W., Sun, J., Chen, H.: Halo: A hybrid pmem-dram persistent hash index with fast recovery. In: Proceedings of the 2022 International Conference on Management of Data, SIGMOD’22, pp. 1049–1063. ACM (2022). https://doi.org/10.1145/3514221.3517884
Zou, X., Wang, F., Feng, D., Zhu, J., Xiao, R., Su, N.: A write-optimal and concurrent persistent dynamic hashing with radix tree assistance. J. Syst. Archit. 125(C) (2022). https://doi.org/10.1016/j.sysarc.2022.102462
Zhang, B., Zheng, S., Qi, Z., Huang, L.: Nbtree: A lock-free pm-friendly persistent b+-tree for eadr-enabled pm systems. Proc. VLDB Endow. 15(6), 1187–1200 (2022). https://doi.org/10.14778/3514061.3514066
Li, H., Berger, D.S., Hsu, L., Ernst, D., Zardoshti, P., Novakovic, S., Shah, M., Rajadnya, S., Lee, S., Agarwal, I., Hill, M.D., Fontoura, M., Bianchini, R.: Pond: Cxl-based memory pooling systems for cloud platforms. In: Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Vol. 2, ASPLOS 2023, pp. 574–587. ACM, New York (2023). https://doi.org/10.1145/3575693.3578835
Benson, L., Weisgut, M., Rabl, T.: What we can learn from persistent memory for cxl. In: B. König-Ries, S. Scherzinger, W. Lehner, G. Vossen (eds.) BTW 2023. Gesellschaft für Informatik e.V. (2023). https://doi.org/10.18420/BTW2023-48
Jung, M.: Hello bytes, bye blocks: Pcie storage meets compute express link for memory expansion (cxl-ssd). In: Proceedings of the 14th ACM Workshop on Hot Topics in Storage and File Systems, HotStorage ’22, pp. 45–51. Association for Computing Machinery, New York (2022). https://doi.org/10.1145/3538643.3539745
Benson, L., Makait, H., Rabl, T.: Viper: An efficient hybrid pmem-dram key-value store. Proc. VLDB Endow. 14(9), 1544–1556 (2021). https://doi.org/10.14778/3461535.3461543
Intel: Persistent memory development kit (2020). https://pmem.io/
Arafa, M., Fahim, B., Kottapalli, S., Kumar, A., Looi, L.P., Mandava, S., Rudoff, A., Steiner, I.M., Valentine, B., Vedaraman, G., et al.: Cascade lake: next generation intel xeon scalable processor. IEEE Micro 39(2), 29–36 (2019). https://doi.org/10.1109/MM.2019.2899330
Izraelevitz, J., Yang, J., Zhang, L., Kim, J., Liu, X., Memaripour, A., Soh, Y.J., Wang, Z., Xu, Y., Dulloor, S.R., Zhao, J., Swanson, S.: Basic performance measurements of the intel optane DC persistent memory module. arXiv:1903.05714 (2019)
Intel: Intel optane dc persistent memory operating modes explained (2018). https://itpeernetwork.intel.com/intel-optane-dc-persistent-memory-operating-modes/
Haria, S., Hill, M.D., Swift, M.M.: Mod: Minimally ordered durable datastructures for persistent memory. In: Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’20, pp. 775–788. ACM, Lausanne (2020). https://doi.org/10.1145/3373376.3378472
Intel: Intel Optane Persistent Memory 200 Series Brief (2022). https://www.intel.com/content/www/us/en/products/docs/memory-storage/optane-persistent-memory/optane-persistent-memory-200-series-brief.html
Scargall, S.: Programming Persistent Memory. Apress (2020)
Ren, J., Hu, Q., Khan, S., Moscibroda, T.: Programming for non-volatile main memory is hard. In: Proceedings of the 8th Asia-Pacific Workshop on Systems, APSys ’17. ACM, Mumbai (2017). https://doi.org/10.1145/3124680.3124729
Di, B., Liu, J., Chen, H., Li, D.: Fast, flexible, and comprehensive bug detection for persistent memory programs. In: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2021, pp. 503–516. ACM, New York (2021). https://doi.org/10.1145/3445814.3446744
Chakrabarti, D.R., Boehm, H.J., Bhandari, K.: Atlas: leveraging locks for non-volatile memory consistency. In: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’14, pp. 433–452. ACM, Portland (2014). https://doi.org/10.1145/2660193.2660224
Izraelevitz, J., Kelly, T., Kolli, A.: Failure-atomic persistent memory updates via justdo logging. In: Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’16, pp. 427–442. ACM, Atlanta (2016). https://doi.org/10.1145/2872362.2872410
Arulraj, J., Levandoski, J., Minhas, U.F., Larson, P.A.: Bztree: a high-performance latch-free range index for non-volatile memory. Proc. VLDB Endow. 11(5), 553–565 (2018). https://doi.org/10.1145/3164135.3164147
Memaripour, A., Badam, A., Phanishayee, A., Zhou, Y., Alagappan, R., Strauss, K., Swanson, S.: Atomic in-place updates for non-volatile main memories with kamino-tx. In: Proceedings of the 12th European Conference on Computer Systems, EuroSys ’17, pp. 499–512. ACM, Belgrade (2017). https://doi.org/10.1145/3064176.3064215
Xia, F., Jiang, D., Xiong, J., Sun, N.: Hikv: a hybrid index key-value store for dram-nvm memory systems. In: Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference, USENIX ATC ’17, pp. 349–362. USENIX, Santa Clara (2017)
Krishnan, R.M., Kim, J., Mathew, A., Fu, X., Demeri, A., Min, C., Kannan, S.: Durable transactional memory can scale with timestone. In: Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’20, pp. 335–349. ACM, Lausanne (2020). https://doi.org/10.1145/3373376.3378483
Memaripour, A., Izraelevitz, J., Swanson, S.: Pronto: easy and fast persistence for volatile data structures. In: Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’20, pp. 789–806. ACM, Lausanne (2020). https://doi.org/10.1145/3373376.3378456
Volos, H., Tack, A.J., Swift, M.M.: Mnemosyne: Lightweight persistent memory. In: Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, pp. 91–104. ACM, Newport Beach (2011). https://doi.org/10.1145/1950365.1950379
Debnath, B., Haghdoost, A., Kadav, A., Khatib, M.G., Ungureanu, C.: Revisiting hash table design for phase change memory. ACM SIGOPS Oper. Syst. Rev. 49(2), 18–26 (2016)
Pagh, R., Rodler, F.F.: Cuckoo hashing. J. Algorithms 51(2), 122–144 (2004). https://doi.org/10.1016/j.jalgor.2003.12.002
Fagin, R., Nievergelt, J., Pippenger, N., Strong, H.R.: Extendible hashing-a fast access method for dynamic files. ACM Trans. Database Syst. 4(3), 315–344 (1979). https://doi.org/10.1145/320083.320092
David, T., Guerraoui, R., Trigonakis, V.: Asynchronized concurrency: the secret to scaling concurrent search data structures. In: Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’15, pp. 631–644. ACM, Istanbul (2015). https://doi.org/10.1145/2694344.2694359
David, T., Dragojevic, A., Guerraoui, R., Zablotchi, I.: Log-free concurrent data structures. In: USENIX Annual Technical Conference, USENIX ATC ’18, pp. 373–385. USENIX (2018). https://doi.org/10.5555/3277355.3277392
Wang, T., Levandoski, J., Larson, P.A.: Easy lock-free indexing in non-volatile memory. In: 2018 IEEE 34th International Conference on Data Engineering (ICDE), pp. 461–472 (2018). https://doi.org/10.1109/ICDE.2018.00049
Intel: libvmem of persistent memory development kit (2020). https://pmem.io/vmem/libvmem/
Corporation, I.: Processor counter monitor (2019). https://github.com/opcm/pcm/
Cooper, B.F., Silberstein, A., Tam, E., Ramakrishnan, R., Sears, R.: Benchmarking cloud serving systems with ycsb. In: Proceedings of the 1st ACM Symposium on Cloud Computing, SoCC ’10, pp. 143–154. ACM (2010). https://doi.org/10.1145/1807128.1807152
Hao, X., Wang, T., Lersch, L., Oukid, I.: Interactive benchmarking of persistent memory indexes (2020). http://pibench.org/
Misra, P.A., Borge, M.F., Goiri, I.n., Lebeck, A.R., Zwaenepoel, W., Bianchini, R.: Managing tail latency in datacenter-scale file systems under production constraints. In: Proceedings of the 14th EuroSys Conference 2019, EuroSys ’19. ACM, Dresden, Germany (2019). https://doi.org/10.1145/3302424.3303973
Chen, Z., Che, W., Hu, D., He, X., Sun, J., Chen, H.: On the performance intricacies of persistent memory aware storage engines. IEEE Trans. Knowl. Data Eng. 1, 1–19 (2023). https://doi.org/10.1109/TKDE.2023.3248643
Chen, Y., Lu, Y., Yang, F., Wang, Q., Wang, Y., Shu, J.: Flatstore: an efficient log-structured key-value storage engine for persistent memory. In: Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’20, pp. 1077–1091. ACM, Lausanne (2020). https://doi.org/10.1145/3373376.3378515
Wang, Z., Liu, X., Yang, J., Michailidis, T., Swanson, S., Zhao, J.: Characterizing and modeling non-volatile memory systems. In: Proceedings of the 53rd IEEE/ACM International Symposium on Microarchitecture, MICRO’20 (2020)
Breslow, A.D., Zhang, D.P., Greathouse, J.L., Jayasena, N., Tullsen, D.M.: Horton tables: fast hash tables for in-memory data-intensive computing. In: Proceedings of the 2016 USENIX Conference on Usenix Annual Technical Conference, USENIX ATC ’16, pp. 281–294. USENIX, Denver (2016)
Chen, Z., He, X., Sun, J., Chen, H.: Have your cake and eat it (too): a concurrent hash table with hardware transactions. Int. J. Parallel Program. 46(4), 699–709 (2018). https://doi.org/10.1007/s10766-017-0529-7
Herlihy, M., Shavit, N., Tzafrir, M.: Hopscotch hashing. In: Proceedings of the 22nd International Symposium on Distributed Computing, DISC ’08, pp. 350–364. Springer, Arcachon (2008). https://doi.org/10.1007/978-3-540-87779-0_24
Li, D., Du, R., Liu, Z., Yang, T., Cui, B.: Multi-copy cuckoo hashing. In: Proceeding of IEEE 35th International Conference on Data Engineering, ICDE’19, pp. 1226–1237 (2019)
Li, X., Andersen, D.G., Kaminsky, M., Freedman, M.J.: Algorithmic improvements for fast concurrent cuckoo hashing. In: Proceedings of the Ninth European Conference on Computer Systems, EuroSys ’14, pp. 1–14. ACM, Amsterdam (2014). https://doi.org/10.1145/2592798.2592820
Metreveli, Z., Zeldovich, N., Kaashoek, M.F.: Cphash: a cache-partitioned hash table. SIGPLAN Not. 47(8), 319–320 (2012). https://doi.org/10.1145/2370036.2145874
Chen, Z., He, X., Sun, J., Chen, H., He, L.: Concurrent hash tables on multicore machines: comparison, evaluation and implications. Fut. Gen. Comput. Syst. 82, 127–141 (2018). https://doi.org/10.1016/j.future.2017.12.054
Zuo, P., Hua, Y.: A write-friendly and cache-optimized hashing scheme for non-volatile memory systems. IEEE Trans. Parall. Distrib. Syst. 29(5), 985–998 (2017). https://doi.org/10.1109/TPDS.2017.2782251
Schwalb, D., Dreseler, M., Uflacker, M., Plattner, H.: Nvc-hashmap: a persistent and concurrent hashmap for non-volatile memories. In: Proceedings of the 3rd VLDB Workshop on In-Memory Data Mangement and Analytics, IMDM’15. ACM, Kohala Coast (2015). https://doi.org/10.1145/2803140.2803144
Liu, Z., Chen, S.: Pea hash: a performant extendible adaptive hashing index. Proc. ACM Manag. Data 1(1), 1 (2023). https://doi.org/10.1145/3588962
Pandey, P., Bender, M.A., Conway, A., Farach-Colton, M., Kuszmaul, W., Tagliavini, G., Johnson, R.: Iceberght: High performance pmem hash tables through stability and low associativity (2022). https://doi.org/10.48550/arXiv.2210.04068
Zou, X., Wang, F., Feng, D., Zhu, J., Xiao, R., Su, N.: A write-optimal and concurrent persistent dynamic hashing with radix tree assistance. J. Syst. Archit. 125(C) (2022). https://doi.org/10.1016/j.sysarc.2022.102462
Li, Y., Zeng, L., Chen, G., Gu, C., Luo, F., Ding, W., Shi, Z., Fuentes, J.: A multi-hashing index for hybrid dram-nvm memory systems. J. Syst. Archit. 128(C) (2022). https://doi.org/10.1016/j.sysarc.2022.102547
Chen, S., Jin, Q.: Persistent b+-trees in non-volatile main memory. Proc. VLDB Endow. 8(7), 786–797 (2015). https://doi.org/10.14778/2752939.2752947
Oukid, I., Lasperas, J., Nica, A., Willhalm, T., Lehner, W.: Fptree: A hybrid SCM-DRAM persistent and concurrent b-tree for storage class memory. In: Proceedings of the 2016 International Conference on Management of Data, SIGMOD ’16, pp. 371–386. ACM, San Francisco (2016). https://doi.org/10.1145/2882903.2915251
Yang, J., Wei, Q., Chen, C., Wang, C., Yong, K.L., He, B.: 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, pp. 167–181. USENIX, Santa Clara (2015)
Zhou, X., Shou, L., Chen, K., Hu, W., Chen, G.: Dptree: Differential indexing for persistent memory. Proc. VLDB Endow. 13(4), 421–434 (2019). https://doi.org/10.14778/3372716.3372717
Kim, W.H., Krishnan, R.M., Fu, X., Kashyap, S., Min, C.: Pactree: A high performance persistent range index using pac guidelines. In: Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles, SOSP ’21, pp. 424–439. ACM (2021). https://doi.org/10.1145/3477132.3483589
Chen, Y., Lu, Y., Fang, K., Wang, Q., Shu, J.: Utree: A persistent b+-tree with low tail latency. Proc. VLDB Endow. 13(12), 2634–2648 (2020). https://doi.org/10.14778/3407790.3407850
Kim, W.H., Seo, J., Kim, J., Nam, B.: Clfb-tree: cacheline friendly persistent b-tree for NVRAM. ACM Trans. Storage 14(1), 1 (2018). https://doi.org/10.1145/3129263
Cha, H., Nam, M., Jin, K., Seo, J., Nam, B.: B3-tree: byte-addressable binary b-tree for persistent memory. ACM Trans. Storage 16(3), 1 (2020). https://doi.org/10.1145/3394025
Wang, Q., Lu, Y., Li, J., Xie, M., Shu, J.: Nap: persistent memory indexes for numa architectures. ACM Trans. Storage 18(1), 1 (2022). https://doi.org/10.1145/3507922
He, Y., Lu, D., Huang, K., Wang, T.: Evaluating persistent memory range indexes: Part two. Proc. VLDB Endow. 15(11), 2477–2490 (2022). https://doi.org/10.14778/3551793.3551808
Kolli, A., Pelley, S., Saidi, A., Chen, P.M., Wenisch, T.F.: High-performance transactions for persistent memories. In: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’16, pp. 399–411. ACM, Atlanta (2016). https://doi.org/10.1145/2872362.2872381
Shin, S., Tuck, J., Solihin, Y.: Hiding the long latency of persist barriers using speculative execution. In: Proceedings of the 44th Annual International Symposium on Computer Architecture, ISCA ’17, pp. 175–186. ACM, Toronto (2017). https://doi.org/10.1145/3079856.3080240
Wu, K., Ren, J., Peng, I., Li, D.: ArchTM: architecture-aware, high performance transaction for persistent memory. In: 19th USENIX Conference on File and Storage Technologies (FAST 21), pp. 141–153. USENIX Association (2021). https://www.usenix.org/conference/fast21/presentation/wu-kai
MongoDB: MongoDB (2020). https://www.mongodb.com
Oracle: MySQL (2020). https://www.mysql.com
Memcached: Memcached. (2019). https://memcached.org
Facebook: RocksDB (2020). https://rocksdb.org
Google: LevelDB (2022). https://leveldb.org
Kaiyrakhmet, O., Lee, S., Nam, B., Noh, S.H., Choi, Y.R.: Slm-db: Single-level key-value store with persistent memory. In: Proceedings of the 17th USENIX Conference on File and Storage Technologies, FAST’19, pp. 191–204. USENIX, Boston (2019)
Lepers, B., Balmau, O., Gupta, K., Zwaenepoel, W.: Kvell: The design and implementation of a fast persistent key-value store. In: Proceedings of the 27th ACM Symposium on Operating Systems Principles, SOSP ’19, pp. 447–461. ACM, Huntsville (2019). https://doi.org/10.1145/3341301.3359628
Patil, S., Gibson, G.: Scale and concurrency of giga+: File system directories with millions of files. In: Proceedings of the 9th USENIX Conference on File and Stroage Technologies, FAST’11, pp. 177–190. USENIX, San Jose (2011)
Xu, S., Lee, S., Jun, S.W., Liu, M., Hicks, J., Arvind: Bluecache: A scalable distributed flash-based key-value store. Proc. VLDB Endow. 10(4), 301–312 (2016). https://doi.org/10.14778/3025111.3025113
Oracle: Architectural overview of the oracle zfs storage appliance (2019). https://www.oracle.com/technetwork/server-storage/sun-unified-storage/documentation/o14-001-architecture-overview-zfsa-2099942.pdf
Schmuck, F., Haskin, R.: Gpfs: A shared-disk file system for large computing clusters. In: Proceedings of the 1st USENIX Conference on File and Storage Technologies, pp. 19–es. USENIX, Monterey (2002)
Goel, A., Chopra, B., Gerea, C., Mátáni, D., Metzler, J., Ul Haq, F., Wiener, J.: Fast database restarts at facebook. In: Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, SIGMOD’14, pp. 541–549. ACM, Snowbird (2014). https://doi.org/10.1145/2588555.2595642
Marathe, V.J., Seltzer, M., Byan, S., Harris, T.: Persistent memcached: Bringing legacy code to byte-addressable persistent memory. In: Proceedings of the 9th USENIX Conference on Hot Topics in Storage and File Systems, HotStorage’17, p. 4. USENIX, Santa Clara (2017)
Xu, J., Swanson, S.: 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, pp. 323–338. USENIX, Santa Clara (2016)
Zhang, W., Zhao, X., Jiang, S., Jiang, H.: Chameleondb: A key-value store for optane persistent memory. In: Proceedings of the Sixteenth European Conference on Computer Systems, EuroSys ’21, p. 194-209. ACM, New York (2021). https://doi.org/10.1145/3447786.3456237
Acknowledgements
This research was supported by the National Science Foundation of China under Grants 62302424, 61972137 and 61772183, Provincial Natural Science Foundation of Hunan under Grants 2022JJ40088, and Changsha Municipal Natural Science Foundation under Grants kq2202135. The authors would like to thank the anonymous reviewers for their valuable suggestions.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Chen, Z., Hu, D., Che, W. et al. A quantitative evaluation of persistent memory hash indexes. The VLDB Journal 33, 375–397 (2024). https://doi.org/10.1007/s00778-023-00812-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00778-023-00812-1