Parallel Batch-Dynamic Graph Representations
summary
Describes a concrete system called Apsen that extends Ligra and a compressed, block-based purely-functional representation called the CPAM framework; claims these store the WebDataCommons hyperlink graph (3.5B vertices, 128B edges) in about 700 GB (β2Γ dynamic overhead) versus ~7 TB for naΓ―ve persistent trees and ~350 GB static, and give work-efficient batch updates with polylog depth. Implementation uses parlaylib, sustains β80k single-thread updates/sec with ~3% query-latency impact, and supports batch-dynamic primitives (Euler-tour trees) while integration with practical dynamic connectivity is ongoing.
AI-written summary Β· about
chapters (15)
- 0:00Start
- 5:41Shared-memory graph systems are feasible Shared-Memory Machines
- 7:39The Graph-Based Benchmark Suite (GBBS)
- 18:50Static Setting: Summary
- 26:37Streaming Graph Processing
- 28:57What goes wrong when we just run updates and queries concurrently using in-place mutation?
- 30:24Purely-functional trees enable snapshots via path-copying
- 34:01Purely-Functional Trees are Safe for Concurrency
- 35:51Challenges of using plain-old functional trees
- 42:15Batch Update Performance vs. STINGER
- 44:04Question 1: Space-Efficient Dynamic Graph Algorithms
- 45:16Space-efficient HDT: integrate level information into the graph representation
- 46:27Pick problems practitioners care about
- 48:35Rent or buy a multicore server
- 49:17Build implementations that can run on very large datasets
