skip to main content
research-article

Nap: Persistent Memory Indexes for NUMA Architectures

Authors Info & Claims
Published:29 January 2022Publication History
Skip Abstract Section

Abstract

We present Nap, a black-box approach that converts concurrent persistent memory (PM) indexes into non-uniform memory access (NUMA)-aware counterparts. Based on the observation that real-world workloads always feature skewed access patterns, Nap introduces a NUMA-aware layer (NAL) on the top of existing concurrent PM indexes, and steers accesses to hot items to this layer. The NAL maintains (1) per-node partial views in PM for serving insert/update/delete operations with failure atomicity and (2) a global view in DRAM for serving lookup operations. The NAL eliminates remote PM accesses to hot items without inducing extra local PM accesses. Moreover, to handle dynamic workloads, Nap adopts a fast NAL switch mechanism. We convert five state-of-the-art PM indexes using Nap. Evaluation on a four-node machine with Optane DC Persistent Memory shows that Nap can improve the throughput by up to 2.3× and 1.56× under write-intensive and read-intensive workloads, respectively.

REFERENCES

  1. [1] 2020. AutoNUMA: The Other Approach to NUMA Scheduling. Retrieved 01 Dec., 2020 from https://lwn.net/Articles/488709/.Google ScholarGoogle Scholar
  2. [2] 2020. Distributed Reader-Writer Mutex. Retrieved 01 Dec., 2020 from http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem/distributed-reader-writer-mutex.Google ScholarGoogle Scholar
  3. [3] 2020. Implementation of P-Masstree and FAST_FAIR. Retrieved 01 Dec., 2020 from https://github.com/utsaslab/RECIPE/.Google ScholarGoogle Scholar
  4. [4] 2020. Persistent Memory Development Kit. Retrieved 01 Dec., 2020 from https://pmem.io/pmdk/.Google ScholarGoogle Scholar
  5. [5] 2020. PMDK Implementation of Clevel, CCEH and P-CLHT. Retrieved 01 Dec., 2020 from https://github.com/chenzhangyu/Clevel-Hashing/.Google ScholarGoogle Scholar
  6. [6] 2020. Processor Counter Monitor (PCM). Retrieved 01 Dec., 2020 from https://github.com/opcm/pcm.Google ScholarGoogle Scholar
  7. [7] 2020. Sequential Locks. Retrieved 01 Dec., 2020 from https://www.kernel.org/doc/html/latest/locking/seqlock.html.Google ScholarGoogle Scholar
  8. [8] 2021. Intel 64 and IA-32 Architectures Optimization Reference Manual. Retrieved 15 Oct., 2021 from https://software.intel.com/sites/default/files/managed/9e/bc/64-ia-32-architectures-optimization-manual.pdf.Google ScholarGoogle Scholar
  9. [9] 2021. Intel Optane Persistent Memory 200 Series Brief. Retrieved 15 Oct., 2021 from https://www.intel.com/content/www/us/en/products/docs/memory-storage/optane-persistent-memory/optane-persistent-memory-200-series-brief.html.Google ScholarGoogle Scholar
  10. [10] 2021. Intel Xeon Processor Scalable Family Technical Overview. Retrieved 15 Oct., 2021 from https://software.intel.com/content/www/us/en/develop/articles/intel-xeon-processor-scalable-family-technical-overview.html.Google ScholarGoogle Scholar
  11. [11] Achermann Reto, Panwar Ashish, Bhattacharjee Abhishek, Roscoe Timothy, and Gandhi Jayneel. 2020. Mitosis: Transparently self-replicating page-tables for large-memory machines. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 283300. DOI: https://doi.org/10.1145/3373376.3378468 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. [12] Anderson Thomas E., Canini Marco, Kim Jongyul, Kostić Dejan, Kwon Youngjin, Peter Simon, Reda Waleed, Schuh Henry N., and Witchel Emmett. 2020. Assise: Performance and availability via client-local NVM in a distributed file system. In Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation. USENIX Association, 10111027. Retrieved from https://www.usenix.org/conference/osdi20/presentation/anderson.Google ScholarGoogle Scholar
  13. [13] Atikoglu Berk, Xu Yuehai, Frachtenberg Eitan, Jiang Song, and Paleczny Mike. 2012. Workload analysis of a large-scale key-value store. In Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems. Association for Computing Machinery, New York, NY, 5364. DOI: https://doi.org/10.1145/2254756.2254766 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Bhardwaj Ankit, Kulkarni Chinmay, Achermann Reto, Calciu Irina, Kashyap Sanidhya, Stutsman Ryan, Tai Amy, and Zellweger Gerd. 2021. NrOS: Effective replication and sharing in an operating system. In Proceedings of the 15th USENIX Symposium on Operating Systems Design and Implementation. USENIX Association.Google ScholarGoogle Scholar
  15. [15] Calciu Irina, Sen Siddhartha, Balakrishnan Mahesh, and Aguilera Marcos K.. 2017. Black-box concurrent data structures for NUMA architectures. In Proceedings of the 22nd International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 207221. DOI: https://doi.org/10.1145/3037697.3037721 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Cao Zhichao, Dong Siying, Vemuri Sagar, and Du David H.C.. 2020. Characterizing, modeling, and benchmarking RocksDB key-value workloads at Facebook. In Proceedings of the 18th USENIX Conference on File and Storage Technologies. USENIX Association, Santa Clara, CA, 209223. Retrieved from https://www.usenix.org/conference/fast20/presentation/cao-zhichao. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Chabbi Milind, Fagan Michael, and Mellor-Crummey John. 2015. High performance locks for multi-level NUMA systems. In Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. Association for Computing Machinery, New York, NY, 215226. DOI: https://doi.org/10.1145/2688500.2688503 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Chen Jiqiang, Chen Liang, Wang Sheng, Zhu Guoyun, Sun Yuanyuan, Liu Huan, and Li Feifei. 2020. HotRing: A hotspot-aware in-memory key-value store. In Proceedings of the 18th USENIX Conference on File and Storage Technologies. USENIX Association, Santa Clara, CA, 239252. Retrieved from https://www.usenix.org/conference/fast20/presentation/chen-jiqiang. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. [19] Chen Shimin and Jin Qin. 2015. Persistent B\(^+\)-trees in non-volatile main memory. Proceedings of the VLDB Endowment 8, 7 (Feb. 2015), 786797. DOI: https://doi.org/10.14778/2752939.2752947 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [20] Chen Youmin, Lu Youyou, Fang Kedong, Wang Qing, and Shu Jiwu. 2020. uTree: A persistent B+-Tree with low tail latency. Proceedings of the VLDB Endowment 13, 12 (July 2020), 26342648. DOI: https://doi.org/10.14778/3407790.3407850 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. [21] Chen Youmin, Lu Youyou, Yang Fan, Wang Qing, Wang Yang, and Shu Jiwu. 2020. 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. Association for Computing Machinery, New York, NY, 10771091. DOI: https://doi.org/10.1145/3373376.3378515 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. [22] Chen Youmin, Lu Youyou, Zhu Bohong, Arpaci-Dusseau Andrea C., Arpaci-Dusseau Remzi H., and Shu Jiwu. 2021. Scalable persistent memory file system with kernel-userspace collaboration. In Proceedings of the 19th USENIX Conference on File and Storage Technologies. USENIX Association, 8195. Retrieved from https://www.usenix.org/conference/fast21/presentation/chen-youmin.Google ScholarGoogle Scholar
  23. [23] Chen Zhangyu, Hua Yu, Ding Bo, and Zuo Pengfei. 2020. Lock-free concurrent level hashing for persistent memory. In Proceedings of the 2020 USENIX Annual Technical Conference. USENIX Association, 799812. Retrieved from https://www.usenix.org/conference/atc20/presentation/chen. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. [24] Cohen Nachshon, Aksun David T., Avni Hillel, and Larus James R.. 2019. Fine-grain checkpointing with in-cache-line logging. In Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 441454. DOI: https://doi.org/10.1145/3297858.3304046 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Cooper Brian F., Silberstein Adam, Tam Erwin, Ramakrishnan Raghu, and Sears Russell. 2010. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing. Association for Computing Machinery, New York, NY, 143154. DOI: https://doi.org/10.1145/1807128.1807152 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Cormode Graham and Muthukrishnan S.. 2005. An improved data stream summary: The count-min sketch and its applications. Journal of Algorithms 55, 1 (April 2005), 5875. DOI: https://doi.org/10.1016/j.jalgor.2003.12.001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Daase Björn, Bollmeier Lars Jonas, Benson Lawrence, and Rabl Tilmann. 2021. Maximizing persistent memory bandwidth utilization for OLAP workloads. In Proceedings of the 2021 International Conference on Management of Data (SIGMOD’21). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Daly Henry, Hassan A., Spear M., and Palmieri R.. 2018. NUMASK: High performance scalable skip list for NUMA. In Proceedings of the 32nd International Symposium on Distributed Computing.Google ScholarGoogle Scholar
  29. [29] Dashti Mohammad, Fedorova Alexandra, Funston Justin, Gaud Fabien, Lachaize Renaud, Lepers Baptiste, Quema Vivien, and Roth Mark. 2013. Traffic management: A holistic approach to memory placement on NUMA systems. In Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 381394. DOI: https://doi.org/10.1145/2451116.2451157 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. [30] David Tudor, Guerraoui Rachid, and Trigonakis Vasileios. 2015. 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. Association for Computing Machinery, New York, NY, 631644. DOI: https://doi.org/10.1145/2694344.2694359 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. [31] Dice Dave, Marathe Virendra J., and Shavit Nir. 2011. Flat-combining NUMA locks. In Proceedings of the 23rd Annual ACM Symposium on Parallelism in Algorithms and Architectures. Association for Computing Machinery, New York, NY, 6574. DOI: https://doi.org/10.1145/1989493.1989502 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. [32] Dice David, Marathe Virendra J., and Shavit Nir. 2015. Lock cohorting: A general technique for designing NUMA locks. ACM Transactions on Parallel Computing 1, 2, (Feb. 2015), 42 pages. DOI: https://doi.org/10.1145/2686884 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. [33] Didona Diego and Zwaenepoel Willy. 2019. Size-aware sharding for improving tail latencies in in-memory key-value stores. In Proceedings of the 16th USENIX Conference on Networked Systems Design and Implementation. USENIX Association, 7993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. [34] Dong Mingkai, Bu Heng, Yi Jifei, Dong Benchao, and Chen Haibo. 2019. Performance and protection in the ZoFS user-space NVM file system. In Proceedings of the 27th ACM Symposium on Operating Systems Principles. Association for Computing Machinery, New York, NY, 478493. DOI: https://doi.org/10.1145/3341301.3359637 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. [35] Fan Bin, Lim Hyeontaek, Andersen David G., and Kaminsky Michael. 2011. Small cache, big effect: Provable load balancing for randomly partitioned cluster services. In Proceedings of the 2nd ACM Symposium on Cloud Computing. Association for Computing Machinery, New York, NY, Article 23, 12 pages. DOI: https://doi.org/10.1145/2038916.2038939 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. [36] Fraser Keir. 2004. Practical Lock-Freedom. Ph. D. Dissertation. University of Cambridge, UK. Retrieved from http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.599193.Google ScholarGoogle Scholar
  37. [37] Friedman Michal, Ben-David Naama, Wei Yuanhao, Blelloch Guy E., and Petrank Erez. 2020. NVTraverse: In NVRAM data structures, the destination is more important than the journey. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. Association for Computing Machinery, New York, NY, 377392. DOI: https://doi.org/10.1145/3385412.3386031 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. [38] Friedman Michal, Petrank Erez, and Ramalhete Pedro. 2021. Mirror: making lock-free data structures persistent. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation Association for Computing Machinery, New York, NY, 12181232. DOI: https://doi.org/10.1145/3453483.3454105 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. [39] Gu Jinyu, Yu Qianqian, Wang Xiayang, Wang Zhaoguo, Zang Binyu, Guan Haibing, and Chen Haibo. 2019. Pisces: A scalable and efficient persistent transactional memory. In Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference. USENIX Association, 913928. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. [40] Haria Swapnil, Hill Mark D., and Swift Michael M.. 2020. MOD: Minimally ordered durable datastructures for persistent memory. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 775788. DOI: https://doi.org/10.1145/3373376.3378472 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. [41] Hendler Danny, Incze Itai, Shavit Nir, and Tzafrir Moran. 2010. Flat combining and the synchronization-parallelism tradeoff. In Proceedings of the 22nd Annual ACM Symposium on Parallelism in Algorithms and Architectures. Association for Computing Machinery, New York, NY, 355364. DOI: https://doi.org/10.1145/1810479.1810540 Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. [42] Huang Qi, Gudmundsdottir Helga, Vigfusson Ymir, Freedman Daniel A., Birman Ken, and Renesse Robbert van. 2014. Characterizing load imbalance in real-world networked caches. In Proceedings of the 13th ACM Workshop on Hot Topics in Networks. Association for Computing Machinery, New York, NY, 17. DOI: https://doi.org/10.1145/2670518.2673882 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. [43] Hwang Deukyeon, Kim Wook-Hee, Won Youjip, and Nam Beomseok. 2018. Endurable transient inconsistency in byte-addressable persistent B+-Tree. In Proceedings of the 16th USENIX Conference on File and Storage Technologies. USENIX Association, Oakland, CA, 187200. Retrieved from https://www.usenix.org/conference/fast18/presentation/hwang. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. [44] Jin Xin, Li Xiaozhou, Zhang Haoyu, Soulé Robert, Lee Jeongkeun, Foster Nate, Kim Changhoon, and Stoica Ion. 2017. NetCache: Balancing key-value stores with fast in-network caching. In Proceedings of the 26th Symposium on Operating Systems Principles. Association for Computing Machinery, New York, NY, 121136. DOI: https://doi.org/10.1145/3132747.3132764 Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. [45] Kadekodi Rohan, Lee Se Kwon, Kashyap Sanidhya, Kim Taesoo, Kolli Aasheesh, and Chidambaram Vijay. 2019. SplitFS: Reducing software overhead in file systems for persistent memory. In Proceedings of the 27th ACM Symposium on Operating Systems Principles. Association for Computing Machinery, New York, NY, 494508. DOI: https://doi.org/10.1145/3341301.3359631 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] Kalia Anuj, Andersen David, and Kaminsky Michael. 2020. Challenges and solutions for fast remote persistent memory access. In Proceedings of the 11th ACM Symposium on Cloud Computing. Association for Computing Machinery, New York, NY, 105119. DOI: https://doi.org/10.1145/3419111.3421294 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. [47] Kalia Anuj, Kaminsky Michael, and Andersen David G.. 2019. Datacenter RPCs can be general and fast. In Proceedings of the 16th USENIX Conference on Networked Systems Design and Implementation. USENIX Association, 116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] Kashyap Sanidhya, Min Changwoo, Kim Kangnyeon, and Kim Taesoo. 2018. A scalable ordering primitive for multicore machines. In Proceedings of the 13th EuroSys Conference. Association for Computing Machinery, New York, NY, Article 34, 15 pages. DOI: https://doi.org/10.1145/3190508.3190510 Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. [49] Kashyap Sanidhya, Min Changwoo, and Kim Taesoo. 2017. Scalable NUMA-aware blocking synchronization primitives. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference. USENIX Association, 603615. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. [50] Kim Jonghyeon, Choe Wonkyo, and Ahn Jeongseob. 2021. Exploring the design space of page management for multi-tiered memory systems. In Proceedings of the 2021 USENIX Annual Technical Conference. USENIX Association, 715728. Retrieved from https://www.usenix.org/conference/atc21/presentation/kim-jonghyeon.Google ScholarGoogle Scholar
  51. [51] Kim Wook-Hee, Krishnan R. Madhava, Fu Xinwei, Kashyap Sanidhya, and Min Changwoo. 2021. PACTree: A high performance persistent range index using PAC guidelines. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles. Association for Computing Machinery, New York, NY, 424439. DOI: https://doi.org/10.1145/3477132.3483589 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. [52] Krishnan R. Madhava, Kim Jaeho, Mathew Ajit, Fu Xinwei, Demeri Anthony, Min Changwoo, and Kannan Sudarsun. 2020. Durable transactional memory can scale with timestone. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 335349. DOI: https://doi.org/10.1145/3373376.3378483 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. [53] Krishnan R. Madhava, Kim Wook-Hee, Fu Xinwei, Monga Sumit Kumar, Lee Hee Won, Jang Minsung, Mathew Ajit, and Min Changwoo. 2021. TIPS: Making volatile index structures persistent with DRAM-NVMM tiering. In Proceedings of the 2021 USENIX Conference on Usenix Annual Technical Conference. USENIX Association.Google ScholarGoogle Scholar
  54. [54] Lee Se Kwon, Lim K. Hyun, Song Hyunsub, Nam Beomseok, and Noh Sam H.. 2017. WORT: Write optimal radix tree for persistent memory storage systems. In Proceedings of the 15th Usenix Conference on File and Storage Technologies. USENIX Association, 257270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. [55] Lee Se Kwon, Mohan Jayashree, Kashyap Sanidhya, Kim Taesoo, and Chidambaram Vijay. 2019. Recipe: Converting concurrent DRAM indexes to persistent-memory indexes. In Proceedings of the 27th ACM Symposium on Operating Systems Principles. Association for Computing Machinery, New York, NY, 462477. DOI: https://doi.org/10.1145/3341301.3359635 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Li Xiaozhou, Sethi Raghav, Kaminsky Michael, Andersen David G., and Freedman Michael J.. 2016. Be fast, cheap and in control with SwitchKV. In Proceedings of the 13th Usenix Conference on Networked Systems Design and Implementation. USENIX Association, 3144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Lim Hyeontaek, Kaminsky Michael, and Andersen David G.. 2017. Cicada: Dependably fast multi-core in-memory transactions. In Proceedings of the 2017 ACM International Conference on Management of Data. Association for Computing Machinery, New York, NY, 2135. DOI: https://doi.org/10.1145/3035918.3064015 Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Liu Jihang, Chen Shimin, and Wang Lujun. 2020. LB+Trees: Optimizing persistent index performance on 3DXPoint memory. Proceedings of the VLDB Endowment 13, 7 (March 2020), 10781090. DOI: https://doi.org/10.14778/3384345.3384355 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Liu Zaoxing, Bai Zhihao, Liu Zhenming, Li Xiaozhou, Kim Changhoon, Braverman Vladimir, Jin Xin, and Stoica Ion. 2019. DistCache: Provable load balancing for large-scale storage systems with distributed caching. In Proceedings of the 17th USENIX Conference on File and Storage Technologies. USENIX Association, 143157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Lu Baotong, Hao Xiangpeng, Wang Tianzheng, and Lo Eric. 2020. Dash: Scalable hashing on persistent memory. Proceedings of the VLDB Endowment 13, 10 (April 2020), 11471161. DOI: https://doi.org/10.14778/3389133.3389134 Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Ma Shaonan, Chen Kang, Chen Shimin, Liu Mengxing, Zhu Jianglang, Kang Hongbo, and Wu Yongwei. 2021. ROART: Range-query optimized persistent ART. In Proceedings of the 19th USENIX Conference on File and Storage Technologies. USENIX Association, 116. Retrieved from https://www.usenix.org/conference/fast21/presentation/ma.Google ScholarGoogle Scholar
  62. [62] Mao Yandong, Kohler Eddie, and Morris Robert Tappan. 2012. Cache craftiness for fast multicore key-value storage. In Proceedings of the 7th ACM European Conference on Computer Systems. Association for Computing Machinery, New York, NY, 183196. DOI: https://doi.org/10.1145/2168836.2168855 Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. [63] Mathew Ajit and Min Changwoo. 2020. HydraList: A scalable in-memory index using asynchronous updates and partial replication. Proceedings of the VLDB Endowment 13, 9 (May 2020), 13321345. DOI: https://doi.org/10.14778/3397230.3397232 Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. [64] Memaripour Amirsaman, Izraelevitz Joseph, and Swanson Steven. 2020. 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. Association for Computing Machinery, New York, NY, 789806. DOI: https://doi.org/10.1145/3373376.3378456 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Nam Moohyeon, Cha Hokeun, Choi Young ri, Noh Sam H., and Nam Beomseok. 2019. Write-optimized dynamic hashing for persistent memory. In Proceedings of the 17th USENIX Conference on File and Storage Technologies. USENIX Association, Boston, MA, 3144. Retrieved from https://www.usenix.org/conference/fast19/presentation/nam. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. [66] Nawab Faisal, Izraelevitz J., Kelly T., Morrey C. B., Chakrabarti Dhruva R., and Scott M.. 2017. Dalí: A periodically persistent hash map. In Proceedings of the 31st International Symposium on Distributed Computing.Google ScholarGoogle Scholar
  67. [67] Oukid Ismail, Lasperas Johan, Nica Anisoara, Willhalm Thomas, and Lehner Wolfgang. 2016. 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. Association for Computing Machinery, New York, NY, 371386. DOI: https://doi.org/10.1145/2882903.2915251 Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. [68] Panwar Ashish, Achermann Reto, Basu Arkaprava, Bhattacharjee Abhishek, Gopinath K., and Gandhi Jayneel. 2021. Fast local page-tables for virtualized NUMA servers with VMitosis. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 194210. DOI: https://doi.org/10.1145/3445814.3446709 Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. [69] Peng Ivy B., Gokhale Maya B., and Green Eric W.. 2019. System evaluation of the intel optane byte-addressable NVM. In Proceedings of the International Symposium on Memory Systems. Association for Computing Machinery, New York, NY, 304315. DOI: https://doi.org/10.1145/3357526.3357568 Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. [70] Radovic Z. and Hagersten E.. 2003. Hierarchical backoff locks for nonuniform communication architectures. In Proceedings of the 9th International Symposium on High-Performance Computer Architecture. 241252. DOI: https://doi.org/10.1109/HPCA.2003.1183542 Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. [71] Shu Jiwu, Chen Youmin, Wang Qing, Zhu Bohong, Li Junru, and Lu Youyou. 2020. TH-DPMS: Design and implementation of an RDMA-enabled distributed persistent memory storage system. ACM Transactions on Storage 16, 4, (Oct. 2020), 31 pages. DOI: https://doi.org/10.1145/3412852 Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. [72] Smolyar Igor, Markuze Alex, Pismenny Boris, Eran Haggai, Zellweger Gerd, Bolen Austin, Liss Liran, Morrison Adam, and Tsafrir Dan. 2020. IOctopus: Outsmarting nonuniform DMA. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 101115. DOI: https://doi.org/10.1145/3373376.3378509 Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. [73] Tu Stephen, Zheng Wenting, Kohler Eddie, Liskov Barbara, and Madden Samuel. 2013. Speedy transactions in multicore in-memory databases. In Proceedings of the 24th ACM Symposium on Operating Systems Principles. Association for Computing Machinery, New York, NY, 1832. DOI: https://doi.org/10.1145/2517349.2522713 Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. [74] Venkataraman Shivaram, Tolia Niraj, Ranganathan Parthasarathy, and Campbell Roy H.. 2011. Consistent and durable data structures for non-volatile byte-addressable memory. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies. USENIX Association, 5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. [75] Wang Ying, Jiang Dejun, and Xiong Jin. 2020. NUMA-aware thread migration for high performance NVMM file systems. In Proceedings of the 36th International Conference on Massive Storage Systems and Technology.Google ScholarGoogle Scholar
  76. [76] Wei Xingda, Xie Xiating, Chen Rong, Chen Haibo, and Zang Binyu. 2021. Characterizing and optimizing remote persistent memory with RDMA and NVM. In Proceedings of the 2021 USENIX Annual Technical Conference. USENIX Association, 523536. Retrieved from https://www.usenix.org/conference/atc21/presentation/wei.Google ScholarGoogle Scholar
  77. [77] Xu Jian, Kim Juno, Memaripour Amirsaman, and Swanson Steven. 2019. Finding and fixing performance pathologies in persistent memory software stacks. In Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, 427439. DOI: https://doi.org/10.1145/3297858.3304077 Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. [78] Xu Jian and Swanson Steven. 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. USENIX Association, Santa Clara, CA, 323338. Retrieved from https://www.usenix.org/conference/fast16/technical-sessions/presentation/xu. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. [79] Yang Jian, Kim Juno, Hoseinzadeh Morteza, Izraelevitz Joseph, and Swanson Steve. 2020. An empirical guide to the behavior and use of scalable persistent memory. In Proceedings of the 18th USENIX Conference on File and Storage Technologies. USENIX Association, Santa Clara, CA, 169182. Retrieved from https://www.usenix.org/conference/fast20/presentation/yang. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. [80] Yang Jun, Wei Qingsong, Chen Cheng, Wang Chundong, Yong Khai Leong, and He Bingsheng. 2015. NV-Tree: Reducing consistency cost for NVM-based single level systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies. USENIX Association, 167181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. [81] Yang Juncheng, Yue Yao, and Rashmi K. V.. 2020. A large scale analysis of hundreds of in-memory cache clusters at Twitter. In Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation. USENIX Association, 191208. Retrieved from https://www.usenix.org/conference/osdi20/presentation/yang. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. [82] Zhang Wen, Shenker Scott, and Zhang Irene. 2020. Persistent state machines for recoverable in-memory storage systems with NVRam. In Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation. USENIX Association, 10291046. Retrieved from https://www.usenix.org/conference/osdi20/presentation/zhang-wen. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. [83] Zhou Xinjing, Shou Lidan, Chen Ke, Hu Wei, and Chen Gang. 2019. DPTree: Differential indexing for persistent memory. Proceedings of the VLDB Endowment 13, 4 (Dec. 2019), 421434. DOI: https://doi.org/10.14778/3372716.3372717 Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. [84] Zuo Pengfei, Hua Yu, and Wu Jie. 2018. Write-optimized and high-performance hashing index scheme for persistent memory. In Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation. USENIX Association, Carlsbad, CA, 461476. Retrieved from https://www.usenix.org/conference/osdi18/presentation/zuo.Google ScholarGoogle Scholar

Index Terms

  1. Nap: Persistent Memory Indexes for NUMA Architectures

      Recommendations

      Comments

      Login options

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

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Storage
        ACM Transactions on Storage  Volume 18, Issue 1
        February 2022
        245 pages
        ISSN:1553-3077
        EISSN:1553-3093
        DOI:10.1145/3512348
        • Editor:
        • Sam H. Noh
        Issue’s Table of Contents

        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: 29 January 2022
        • Revised: 1 December 2021
        • Accepted: 1 December 2021
        • Received: 1 October 2021
        Published in tos Volume 18, Issue 1

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Full Text

      View this article in Full Text.

      View Full Text

      HTML Format

      View this article in HTML Format .

      View HTML Format
      About Cookies On This Site

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

      Learn more

      Got it!