Skip to main content
Log in

A quantitative evaluation of persistent memory hash indexes

  • Regular Paper
  • Published:
The VLDB Journal Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

Similar content being viewed by others

References

  1. 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)

  2. 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

    Article  ADS  CAS  PubMed  Google Scholar 

  3. 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)

    Article  Google Scholar 

  4. Micron: 3d-x-Point Technology (2015). https://www.micron.com/products/advanced-solutions/3d-xpoint-technology

  5. 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

  6. 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

  7. 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)

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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)

  14. 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)

  15. 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)

  16. 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

    Article  Google Scholar 

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. Intel: Persistent memory development kit (2020). https://pmem.io/

  31. 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

    Article  Google Scholar 

  32. 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)

  33. Intel: Intel optane dc persistent memory operating modes explained (2018). https://itpeernetwork.intel.com/intel-optane-dc-persistent-memory-operating-modes/

  34. 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

  35. 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

  36. Scargall, S.: Programming Persistent Memory. Apress (2020)

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

    Article  Google Scholar 

  42. 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

  43. 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)

  44. 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

  45. 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

  46. 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

  47. 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)

    Article  Google Scholar 

  48. Pagh, R., Rodler, F.F.: Cuckoo hashing. J. Algorithms 51(2), 122–144 (2004). https://doi.org/10.1016/j.jalgor.2003.12.002

    Article  MathSciNet  Google Scholar 

  49. 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

    Article  Google Scholar 

  50. 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

  51. 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

  52. 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

  53. Intel: libvmem of persistent memory development kit (2020). https://pmem.io/vmem/libvmem/

  54. Corporation, I.: Processor counter monitor (2019). https://github.com/opcm/pcm/

  55. 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

  56. Hao, X., Wang, T., Lersch, L., Oukid, I.: Interactive benchmarking of persistent memory indexes (2020). http://pibench.org/

  57. 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

  58. 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

    Article  Google Scholar 

  59. 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

  60. 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)

  61. 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)

  62. 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

    Article  Google Scholar 

  63. 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

  64. 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)

  65. 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

  66. 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

    Article  Google Scholar 

  67. 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

    Article  Google Scholar 

  68. 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

    Article  Google Scholar 

  69. 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

  70. 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

    Article  Google Scholar 

  71. 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

  72. 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

  73. 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

  74. 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

  75. 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

  76. 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)

  77. 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

  78. 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

  79. 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

  80. 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

    Article  CAS  Google Scholar 

  81. 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

    Article  Google Scholar 

  82. 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

    Article  Google Scholar 

  83. 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

  84. 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

  85. 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

  86. 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

  87. MongoDB: MongoDB (2020). https://www.mongodb.com

  88. Oracle: MySQL (2020). https://www.mysql.com

  89. Memcached: Memcached. (2019). https://memcached.org

  90. Facebook: RocksDB (2020). https://rocksdb.org

  91. Google: LevelDB (2022). https://leveldb.org

  92. 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)

  93. 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

  94. 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)

  95. 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

  96. 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

  97. 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)

  98. 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

  99. 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)

  100. 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)

  101. 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

Download references

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

Authors

Corresponding author

Correspondence to Jianhua Sun.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00778-023-00812-1

Keywords

Navigation