Persistence squared: persisting persistent data structures
summary
Library immer::persist serializes pools of immutable containers so structural sharing survives disk round trips rather than becoming independent JSON arrays. It preserves sharing during large in-memory transforms and upgrades (e.g., v1 string-vector → v2 char-vector), works with immer containers and serial for JSON, and is used inside a BRONZE digital audio workstation prototype. Performance claims include iteration comparable to std::vector and amortized O(1) push_back; current limits: experimental, JSON only, needs portable hashing for hash tables and incremental/binary formats are TODO pool-based serialization preserves internal nodes
AI-written summary · about
chapters (8)
- 0:00Introduction to persistence
- 10:47Value semantics at scale
- 20:27Software architecture demo
- 23:49Challenges in serialization
- 31:30The Immer Persist library
- 37:22Data structure transformations
- 45:35Advanced features and limitations
- 48:27Future work and conclusion
related talks
35mPersisting Relations Across Time and Space
01h 08mC++ and Persistent Memory Technologies, Like Intel's 3D-XPoint
35mChanging the Unchangeable: The Hows and Whys of Immutable Data Structures
50mOrthogonal Persistence, the Model
33mPersisting Object Oriented State in Functional Programming
01h 02m“Lightweight Object Persistence With Relocatable Heaps in Modern C++"
01h 12mHidden pearls for high-performance-persistence in Java
56mEverything is serialization
