TIPS persistent-index framework
TIPS is a persistent-memory framework that makes writes durable in an operation log before publishing them through a DRAM cache.
Converted indexes reside in non-volatile main memory; the DRAM cache holds newer data. UNO combines operation, undo and allocation logs with coordinated reclamation. Porting requires allocation hooks and annotations before persistent stores. [1]
Range scans must reconcile pending logged operations with the backend index. At revision 386b992, scan_oplog increments a scan_violation counter but does not modify the output buffer. That function does not implement the paper's described result repair. [1] [2]
Relations
- related
- RECIPE persistent-index conversion, Persistent memory, Durable linearizability, Crash consistency
Limitations
- Finite logs can block foreground writes when background replay falls behind. [1]
Citations
- Krishnan et al. TIPS: Making Volatile Index Structures Persistent with DRAM-NVMM Tiering. USENIX ATC 2021, sections 3-5 and 7.
- TIPS source, revision 386b992: scan_oplog and tips_scan in tips-lib/src/tips.c, lines 346-393.
Further reading
Sources & caveats
- Source synthesis and static inspection of revision 386b992; no prototype execution, power-cut experiment or reproduction of performance results.
- The paper's recovery evaluation uses SIGKILL; process termination does not test loss of unprotected CPU caches during power failure.