RECIPE persistent-index conversion
RECIPE is a method for converting selected concurrent DRAM indexes into persistent-memory indexes using persistence ordering and recoverable updates.
The method applies to selected concurrency protocols, not arbitrary thread-safe code. The design assumes reinitialized locks and reclamation of unreachable allocations. [1]
Witcher later found crash-consistency bugs in evaluated RECIPE implementations; this is not a current-revision defect claim. [2]
Source history records P-ART counter-ordering repairs and corrected persistence primitives. Compare the exact code revision, not just the index name. [3] [4]
Relations
- related
- FPTree, Persistent memory, Persistence ordering, Durable linearizability, Crash-test oracle, TIPS persistent-index framework
Limitations
- A reader that only retries an unfinished update does not supply a recovery mechanism. [1]
Citations
- Lee et al. RECIPE: Converting Concurrent DRAM Indexes to Persistent-Memory Indexes. SOSP 2019, sections 4-7. DOI: 10.1145/3341301.3359635.
- Fu et al. Witcher: Systematic Crash Consistency Testing for Non-Volatile Memory Key-Value Stores. SOSP 2021. DOI: 10.1145/3477132.3483556.
- RECIPE source history: P-ART counter ordering and exceptional insertion handling, commit 4b0c276.
- RECIPE source history: persistence primitive repairs, commit 950ae0e.
Further reading
Sources & caveats
- Source review of SOSP 2019 sections 4-7 and SOSP 2021 sections 4.3-4.4, 6.1-6.2 and Tables 3-4; no prototype execution or hardware reproduction.