Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
139 tokens/sec
GPT-4o
47 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

DGAP: Efficient Dynamic Graph Analysis on Persistent Memory (2403.02665v1)

Published 5 Mar 2024 in cs.DS, cs.DC, and cs.PF

Abstract: Dynamic graphs, featuring continuously updated vertices and edges, have grown in importance for numerous real-world applications. To accommodate this, graph frameworks, particularly their internal data structures, must support both persistent graph updates and rapid graph analysis simultaneously, leading to complex designs to orchestrate fast but volatile' andpersistent but slow' storage devices. Emerging persistent memory technologies, such as Optane DCPMM, offer a promising alternative to simplify the designs by providing data persistence, low latency, and high IOPS together. In light of this, we propose DGAP, a framework for efficient dynamic graph analysis on persistent memory. Unlike traditional dynamic graph frameworks, which combine multiple graph data structures (e.g., edge list or adjacency list) to achieve the required performance, DGAP utilizes a single mutable Compressed Sparse Row (CSR) graph structure with new designs for persistent memory to construct the framework. Specifically, DGAP introduces a \textit{per-section edge log} to reduce write amplification on persistent memory; a \textit{per-thread undo log} to enable high-performance, crash-consistent rebalancing operations; and a data placement schema to minimize in-place updates on persistent memory. Our extensive evaluation results demonstrate that DGAP can achieve up to $3.2\times$ better graph update performance and up to $3.77\times$ better graph analysis performance compared to state-of-the-art dynamic graph frameworks for persistent memory, such as XPGraph, LLAMA, and GraphOne.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (78)
  1. Hiroyuki Akinaga and Hisashi Shima. 2010. Resistive random access memory (ReRAM) based on metal oxides. Proc. IEEE 98, 12 (2010), 2237–2251.
  2. On the architectural requirements for efficient execution of graph algorithms. In 2005 International Conference on Parallel Processing (ICPP’05). IEEE.
  3. Scott Beamer. 2015. GAP Benchmark Suite. https://github.com/sbeamer/gapbs. Accessed July. 30, 2021.
  4. Direction-optimizing Breadth-First Search. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (SC’12).
  5. Michael A Bender and Haodong Hu. 2007. An adaptive packed-memory array. ACM Transactions on Database Systems (TODS’07) 32 (2007).
  6. Viper: An Efficient Hybrid PMem-DRAM Key-Value Store. Proc. VLDB Endow. 14, 9 (2021).
  7. Practice of Streaming Processing of Dynamic Graphs: Concepts, Models, and Systems. IEEE Transactions on Parallel and Distributed Systems (2021).
  8. Ulrik Brandes. 2001. A faster algorithm for betweenness centrality. Journal of mathematical sociology 25, 2 (2001).
  9. Shimin Chen and Qin Jin. 2015. Persistent b+-trees in non-volatile main memory. Proceedings of the VLDB Endowment 8, 7 (2015), 786–797.
  10. UTree: A Persistent B+-Tree with Low Tail Latency. Proc. VLDB Endow. 13, 12 (2020).
  11. Lock-free Concurrent Level Hashing for Persistent Memory. In 2020 USENIX Annual Technical Conference (USENIX ATC’20).
  12. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM symposium on Cloud computing (SoCC’10). ACM.
  13. Intel Corporation. 2019. Key features on Cascade Lake. https://www.intel.com/content/www/us/en/products/platforms/details/cascade-lake.html. Accessed Jan. 22, 2023.
  14. Intel Corporation. 2021. eADR: New Opportunities for Persistent Memory Applications. https://www.intel.com/content/www/us/en/developer/articles/technical/eadr-new-opportunities-for-persistent-memory-applications.html. Accessed Jan. 22, 2023.
  15. Dean De Leo and Peter Boncz. 2021. Teseo and the Analysis of Structural Dynamic Graphs. Proc. VLDB Endow. 14, 6 (2021).
  16. STINGER: High performance data structure for streaming graphs. In IEEE Conference on High Performance Extreme Computing (HPEC’12).
  17. CSR++: A Fast, Scalable, Update-Friendly Graph Data Structure. In 24th International Conference on Principles of Distributed Systems (OPODIS’20).
  18. 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 (PLDI’20).
  19. Single Machine Graph Analytics on Massive Datasets Using Intel Optane DC Persistent Memory. Proc. VLDB Endow. 13, 8 (2020).
  20. Linley Gwennap. 2019. First Optane DIMMs Disappoint. The LinleyGroup.
  21. MOD: Minimally ordered durable datastructures for persistent memory. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’20).
  22. Ayudante: A Deep Reinforcement Learning Approach to Assist Persistent Memory Programming. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC’21).
  23. Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree. In 16th USENIX Conference on File and Storage Technologies (USENIX FAST’18).
  24. VCSR: Mutable CSR Graph Format Using Vertex-Centric Packed Memory Array. In 2022 22nd IEEE International Symposium on Cluster, Cloud and Internet Computing (CCGrid’22).
  25. A Performance Study of Optane Persistent Memory: From Indexing Data Structures’ Perspective. In 36th International Conference on Massive Storage Systems and Technology (MSST’20).
  26. A performance study of optane persistent memory: from storage data structures’ perspective. CCF Transactions on High Performance Computing (24 Sep 2022).
  27. CellIQ : Real-Time Cellular Network Analytics at Scale. In 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI’15).
  28. Basic performance measurements of the intel optane DC persistent memory module. arXiv preprint arXiv:1903.05714 (2019).
  29. PACTree: A High Performance Persistent Range Index Using PAC Guidelines. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles (SOSP’21).
  30. Dynamic-CSR: A format for dynamic sparse-matrix updates. In Springer-Verlag, Vol. 9697. 61–80.
  31. TIPS: Making Volatile Index Structures Persistent with DRAM-NVMM Tiering. In 2021 USENIX Annual Technical Conference (USENIX ATC’21).
  32. Evaluating STT-RAM as an energy-efficient main memory alternative. In 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS’13).
  33. Pradeep Kumar and H Howie Huang. 2019. Graphone: A data store for real-time analytics on evolving graphs. In 17th USENIX Conference on File and Storage Technologies (FAST’19).
  34. Graphchi: Large-scale graph computation on just a PC. In Proceedings of the 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI’12).
  35. PMap: A Non-volatile Lock-free Hash Map with Open Addressing. In IEEE 10th Non-Volatile Memory Systems and Applications Symposium (NVMSA’21).
  36. Phase-change technology and the future of main memory. IEEE micro 30, 1 (2010), 143–143.
  37. Recipe: Converting Concurrent DRAM Indexes to Persistent-Memory Indexes. In Proceedings of the 27th ACM Symposium on Operating Systems Principles (SOSP’19).
  38. Jure Leskovec and Andrej Krevl. 2014. SNAP Datasets: Stanford Large Network Dataset Collection. http://snap.stanford.edu/data.
  39. SSB-Tree: Making Persistent Memory B+- Trees Crash-Consistent and Concurrent by Lazy-Box. In 2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS’22).
  40. Enforcing crash consistency of evolving network analytics in non-volatile main memory systems. In 2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT’19).
  41. LB+Trees: Optimizing Persistent Index Performance on 3DXPoint Memory. Proc. VLDB Endow. 13, 7 (2020).
  42. Llama: Efficient graph analytics using large multiversioned arrays. In IEEE 31st International Conference on Data Engineering (ICDE’15).
  43. A faster parallel algorithm and efficient multithreaded implementations for evaluating betweenness centrality on massive datasets. In IEEE International Symposium on Parallel & Distributed Processing (IPDPS’09).
  44. Pronto: Easy and Fast Persistence for Volatile Data Structures. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’20).
  45. Write-Optimized Dynamic Hashing for Persistent Memory. In 17th USENIX Conference on File and Storage Technologies (USENIX FAST’19).
  46. Optane. 2019. Intel Optane Persistent Memory. https://www.intel.com/content/www/us/en/products/docs/memory-storage/optane-persistent-memory/optane-dc-persistent-memory-brief.html.
  47. 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).
  48. Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs. In Proceedings of the 2021 International Conference on Management of Data (SIGMOD’21).
  49. Ali Pinar and Michael T Heath. 1999. Improving performance of sparse matrix-vector multiplication. In Proceedings of the 1999 ACM/IEEE Conference on Supercomputing (SC’99).
  50. pmem.io Persistent. 2019. Persistent Memory Programming. https://pmem.io.
  51. Enhancing lifetime and security of PCM-based main memory with start-gap wear leveling. In Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’09).
  52. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th annual international symposium on Computer architecture (ISCA’09).
  53. Phase-change random access memory: A scalable technology. IBM Journal of Research and Development 52, 4.5 (2008), 465–479.
  54. X-stream: Edge-Centric Graph Processing using Streaming Partitions. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP’13).
  55. The Ubiquity of Large Graphs and Surprising Challenges of Graph Processing. Proc. VLDB Endow. 11, 4 (2018).
  56. Technical report: Accelerating dynamic graph analytics on gpus. arXiv preprint arXiv:1709.05061 (2017).
  57. Trinity: A Distributed Graph Engine on a Memory Cloud. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data (SIGMOD’13).
  58. Yossi Shiloach and Uzi Vishkin. 1980. An O (log n) parallel connectivity algorithm. Technical Report. Computer Science Department, Technion.
  59. Empirical study of transactional management for persistent memory. In IEEE 7th Non-Volatile Memory Systems and Applications Symposium (NVMSA’18).
  60. Prism: Optimizing Key-Value Store for Modern Heterogeneous Storage Devices. In Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2 (ASPLOS’23).
  61. Kosuke Suzuki and Steven Swanson. 2015. A survey of trends in non-volatile memory technologies: 2000-2014. In Proceedings of the IEEE International Memory Workshop (IMW’15).
  62. Persistent memory i/o primitives. In Proceedings of the 15th International Workshop on Data Management on New Hardware (DaMoN’19).
  63. Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies (USENIX FAST’11).
  64. Rui Wang. 2022. XPGraph. https://github.com/rwang067/XPGraph. Accessed January, 2023.
  65. XPGraph: XPline-Friendly Persistent Memory Graph Stores for Large-Scale Evolving Graphs. In Proceedings of the 55th IEEE/ACM International Symposium on Microarchitecture (MICRO’22).
  66. Brian Wheatman and Helen Xu. 2018. Packed Compressed Sparse Row: A Dynamic Graph Representation. In IEEE High Performance Extreme Computing Conference (HPEC’18).
  67. Brian Wheatman and Helen Xu. 2021. A Parallel Packed Memory Array to Store Dynamic Graphs. In Proceedings of the Symposium on Algorithm Engineering and Experiments (ALENEX’21).
  68. ArchTM: Architecture-Aware, High Performance Transaction for Persistent Memory. In 19th USENIX Conference on File and Storage Technologies (USENIX FAST’21).
  69. Lessons Learned from the Early Performance Evaluation of Intel Optane DC Persistent Memory in DBMS. In Proceedings of the 16th International Workshop on Data Management on New Hardware (DaMoN’20).
  70. Characterizing the Performance of Intel Optane Persistent Memory: A Close Look at Its on-DIMM Buffering. In Proceedings of the Seventeenth European Conference on Computer Systems (EuroSys’22).
  71. An Empirical Guide to the Behavior and Use of Scalable Persistent Memory. In 18th USENIX Conference on File and Storage Technologies (USENIX FAST 20).
  72. NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems. In 13th USENIX Conference on File and Storage Technologies (USENIX FAST’15).
  73. Memristive devices for computing. Nature nanotechnology 8, 1 (2013), 13.
  74. Understanding and improving persistent transactions on optane™ DC memory. In 34th IEEE International Parallel and Distributed Processing Symposium (IPDPS’20).
  75. NBTree: A Lock-Free PM-Friendly Persistent B+-Tree for EADR-Enabled PM Systems. Proc. VLDB Endow. 15, 6 (2022).
  76. GraphIt: A High-Performance Graph DSL. Proc. ACM Program. Lang. 2, OOPSLA (2018).
  77. Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory. In 13th USENIX Symposium on Operating Systems Design and Implementation (USENIX OSDI’18).
  78. Level Hashing: A High-Performance and Flexible-Resizing Persistent Hashing Index Structure. ACM Trans. Storage 15, 2 (2019).
Citations (4)

Summary

We haven't generated a summary for this paper yet.