Pisces: A Scalable and Efficient Persistent Transactional Memory
summary
Pisces implements a dual-version concurrency control with at most two NVM-resident versions per object and a three-stage commit to separate persistence, visibility, and cleanup. It reuses redo logs as second versions so reads avoid extra indirection and are nearly non-blocking; writers eagerly overwrite the old slot and persist logs first. On a 40-thread Intel machine with real NVM Pisces outperforms DUDETM by up to 6.3× on microbenchmarks and 4.6× on TPC-C while keeping persistency cost to 19–50%.
AI-written summary · about
chapters (7)
- 0:00Introduction to Pisces
- 1:25Challenges in PTM design
- 3:30MVCC and read efficiency
- 6:08Optimizing commit protocols
- 7:15Transaction execution flow
- 10:38Experimental evaluation
- 12:52Conclusion and Q&A
related talks
15mTIPS: Making Volatile Index Structures Persistent with DRAM-NVMM Tiering
35mDeveloping Software for Persistent Memory
43mPromise and Pitfalls of Persistent Memory
23mPersistence Semantics for Weak Memory
01h 08mC++ and Persistent Memory Technologies, Like Intel's 3D-XPoint
01h 03m“Transactional Memory in Practice"
12mSPHT: Scalable Persistent Hardware Transactions
01h 12mHidden pearls for high-performance-persistence in Java
