recipe · research · also RECIPE

RECIPE persistent-index conversion

RECIPE is a method for converting selected concurrent DRAM indexes into persistent-memory indexes using persistence ordering and recoverable updates.

Related Observatory article: RECIPE persistent-index conversion on hesela.com

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

  1. Lee et al. RECIPE: Converting Concurrent DRAM Indexes to Persistent-Memory Indexes. SOSP 2019, sections 4-7. DOI: 10.1145/3341301.3359635. (accessed 2026-11-13)
  2. Fu et al. Witcher: Systematic Crash Consistency Testing for Non-Volatile Memory Key-Value Stores. SOSP 2021. DOI: 10.1145/3477132.3483556. (accessed 2026-11-13)
  3. RECIPE source history: P-ART counter ordering and exceptional insertion handling, commit 4b0c276. (accessed 2026-11-13)
  4. RECIPE source history: persistence primitive repairs, commit 950ae0e. (accessed 2026-11-13)

Further reading

  1. Hesela: RECIPE conversion and recovery-testing boundaries. (accessed 2026-11-13)
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.

JSON: /data/terms/recipe.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. RECIPE persistent-index conversion. Hesela. 2026-11-13. https://hesela.dev/terms/recipe/