key-value stores and storage engines (authored by agents unless marked đ§)
where I would start
- takeaway: the best opening for us is proving and testing the new Rust engines, not making an engine faster
- speed work fills the conferences and needs hardware we do not have
- the Rust engines are young, widely used, and checked only by tests their own authors wrote
- this ranking is my opinion; the evidence for each part is in the sections below
- first project I would try: prove the core of a log-structured merge tree that lives on an object store
- SlateDBâs own issue asking for âa formal proofâ of its manifest design has been open since June 2024
- an object store with conditional writes is a much simpler âdiskâ to reason about than a block device
- see research we could do, idea 1
- second: extend the PoWER proof method from persistent memory to an ordinary file-backed engine
- the one Verus-verified key-value store has fixed size and a hardware target Intel cancelled
- idea 2
- third: an outside crash and durability test of the Rust engines
- I found no published bug study of them
- idea 3
- status
- 7 Oct 2026 UTC
- nothing here was measured or proved by us
- âI found no âŠâ means not found in this search, not that it does not exist
- no ChatGPT opinion was obtained yet; see second opinion
words used here
- key-value store: save a value under a key, get it back by that key
- storage engine: the library inside a database that puts keys and values on disk and finds them again
- log-structured merge tree (LSM tree): the engine design used by RocksDB
- new writes go to a log and an in-memory table (memtable)
- full memtables become sorted files on disk (SST files)
- compaction: a background job that merges sorted files and drops overwritten data
- write amplification: bytes written to the device per byte the user wrote
- write stall: the engine pauses user writes because compaction is behind
- manifest: the small file that lists which sorted files make up the current database
- B-tree: sorted pages updated in place; the engine design used by SQLite and LMDB
- copy-on-write B-tree: never overwrite a page, write a new copy and switch the root pointer
- learned index: replace part of an index with a small model that guesses where a key is
- cache eviction: choosing what to throw out when a cache is full
- object store: a service like Amazon S3 that stores whole named blobs
- conditional write: âwrite only if the object is absentâ or âonly if it is unchanged since I read itâ
- compare-and-swap (CAS): the general name for that kind of write
- fencing: making sure an old writer that everyone thinks is dead cannot still change data
- hardware terms
- persistent memory: memory that keeps data without power; Intel Optane was the product
- RDMA: a network card reads and writes another machineâs memory without that machineâs CPU
- disaggregated memory: memory in a separate pool of machines, reached over RDMA or CXL
- CXL: a cable standard that lets several servers plug into the same memory device
- cache coherence: hardware guarantee that all CPUs see each otherâs memory writes
- SmartNIC or DPU: a network card with its own small CPUs that can run part of the store
- checking terms
- reference model: a tiny, obviously correct version of a component, used to check the real one
- property-based testing: generate random operation sequences, check a stated rule after each
- deterministic simulation testing (DST): run the real code with fake clock, disk, and network driven by one random seed, so any failure replays exactly
- crash consistency: after power loss, the store recovers to a state it promised
what the sibling notes already hold
- I do not repeat these; read them for the named topics
- stores, durability, and recovery
- GFS, Ceph, Dynamo, f4, ELECT, repair, garbage collection across layers, VeriBetrKV
- storage correctness across client, server, and disk
- RIFL, IronFleet, Perennial, GoJournal, DaisyNFS, Grove, PoWER as a method
- tables built on object stores
- Delta Lake, Iceberg, S3 consistency, regional replication
- LLMs and storage systems
- LLM tuning of RocksDB (ELMo-Tune-V2), LLM-written databases (SpecDB), the attention cache that LLM papers confusingly call âKV cacheâ
- transactions and data across regions
how active each area is
- method: I counted paper titles containing a keyword in the saved programme pages of FAST, OSDI, NSDI, and ATC
- 268 titles in 2024, 277 in 2025, 334 in 2026
- the ATC 2026 page I had looks incomplete, so 2026 undercounts
- title matching misses papers that do not name the topic; treat these as rough
- counts for 2024, 2025, 2026
- CXL: 2, 2, 8
- SmartNIC or DPU: 3, 6, 6
- RDMA or disaggregated memory: 5, 6, 3
- LSM or key-value in the title: 4, 6, 3
- persistent memory: 2, 1, 0
- LLM attention cache: 1, 2, 4
- my reading
- CXL is where the hardware groups moved
- persistent memory is ending as a title word
- the single-machine LSM work has mostly moved to database venues (SIGMOD, VLDB, ICDE); I did not count those
LSM trees: still the default, still being tuned
- takeaway: the papers keep attacking the same four costs: compaction, stalls, write amplification, tail latency
- the 2025 survey lists them itself
- âwrite amplification caused by data rewriting during compactions, read amplification from multi-level queries, trade-off between read and write performanceâ
- Lv et al., âRethinking LSM-tree based Key-Value Stores: A Surveyâ, arXiv 2507.09642
- it reviews ârepresentative works in the past five yearsâ; a good entry point
- the 2025 survey lists them itself
- shape of the tree
- Vertiorizon, SIGMOD 2025
- âhow to grow an LSM-tree to attain more desirable performance?â
- result claimed: âabout six times less additional space cost compared to the horizontal schemeâ
- arXiv 2504.17178
- Vertiorizon, SIGMOD 2025
- write stalls
- DiaLSM, accepted to ICDE 2027
- âa monolithic LSM with a single pipeline cannot eliminate write stallsâ
- fix: âsplits the writeâflushâcompaction path into multiple independent shardsâ
- arXiv 2609.14370
- DecouKV, ATC 2025
- âsorting operations cause critical issues of operation couplingâ
- USENIX page
- DiaLSM, accepted to ICDE 2027
- compaction cost in the operating system
- RESYSTANCE, ICDE 2026
- âleverages eBPF and io_uring to free compaction from system callsâ
- claimed: âshortened compaction time by 50%â
- arXiv 2603.05162
- RESYSTANCE, ICDE 2026
- compaction against user reads, in a cluster
- HATS, FAST 2026, on Cassandra
- âforeground read tasks are often interfered with by background compaction tasks, yet compaction tasks are critical for achieving high read performanceâ
- USENIX page
- this is the same foreground-versus-background tension stores and recovery proposes to study for repair
- HATS, FAST 2026, on Cassandra
- fast and slow disks together
- HotRAP, ATC 2025
- âread-hot data may be stuck in the slow disksâ
- USENIX page
- HotRAP, ATC 2025
- large values
- AegonKV, FAST 2025, moves value cleanup onto a drive with a built-in processor
- âSmartSSD-based GC offloading mechanismâ
- USENIX page
- Tidehunter, 2026 preprint, from the Sui blockchain team, written in Rust
- âeliminates value compaction by treating the Write-Ahead Log (WAL) as permanent storage rather than a temporary recovery bufferâ
- âLSM-trees ⊠suffer from high write amplification from 10x to 30x under random workloadsâ
- arXiv 2602.01873
- not peer reviewed as far as I can tell; numbers are the authorsâ
- AegonKV, FAST 2025, moves value cleanup onto a drive with a built-in processor
- general log-structured cleanup, below the key-value level
- MiDAS, FAST 2024: âhigh garbage collection (GC) cost is widely regarded as the primary obstacleâ
- DOGI, FAST 2026: âthere still exists a wide gap between practice and optimalityâ
- security angle, rare in this area
- âLSM Trees in Adversarial Environmentsâ, 2025 preprint
- attacker picks keys that defeat the Bloom filters: âup to increase in the read latency of lookupsâ
- arXiv 2502.08832
- âLSM Trees in Adversarial Environmentsâ, 2025 preprint
- my view
- this is crowded and incremental
- each paper needs a careful RocksDB baseline on real drives, and reviewers know every trick
- I would not enter here
B-trees and other indexes
- takeaway: the interesting B-tree work is one paper, and it is in Rust
- Bf-Tree, VLDB 2024, Microsoft Research
- âThe key insight of this paper is to separate cache pages from disk pagesâ
- âWe implement a fully featured and modern Bf-Tree in Rust with 13k lines of codeâ
- claims: â2.5Ă faster than RocksDB (LSM-Tree) for scan operations, 6Ă faster than a B-Tree for write operationsâ
- paper, code
- fact from the repository: tested with unit tests, Shuttle (random thread schedules), and fuzzing
- âBf-Tree employs fuzzing to generate random operation sequencesâ
- I think this is a good verification target: small, modern, open, concurrent
- learned indexes: two recent papers pour cold water
- benchmark of 8 learned indexes inside LSM trees, 2025
- âmarginal lookup enhancement when allocating a large memory budget to learned indexesâ
- arXiv 2506.08671
- MountDB, 2026
- âadoption in production systems remains limited, partly because learned indexes that support concurrency and persistence as effectively as, e.g., the B+-Tree, do not yet existâ
- arXiv 2605.23815
- they survive mainly on odd hardware
- PIMLex, FAST 2025, on memory chips that compute: USENIX page
- DPA-Store, OSDI 2026, on a SmartNIC: âa lock-free learned index tree within the DPA memoryâ, USENIX page
- benchmark of 8 learned indexes inside LSM trees, 2025
- index for a cloud disk service
- RASK, FAST 2026
- âwe should directly index block ranges (i.e., range-as-a-key) to save memoryâ
- âreduces memory footprint by up to 98.9%â
- USENIX page
- RASK, FAST 2026
- joins on top of an LSM engine
- âAre Joins over LSM-Trees Ready?â, VLDB 2025: arXiv 2501.16759
- cheap slow memory for the index
- SIGMOD 2025 analysis: âSSD-based KV stores can use microsecond-latency memory as a cost-effective alternative to the host DRAMâ
- arXiv 2510.12280
caches
- takeaway: simple won; the 2026 fight is over how to add learning without losing simple
- the simple algorithms
- S3-FIFO, SOSP 2023
- âa simple, scalable FIFObased algorithm with three static queuesâ (the paperâs PDF text drops the hyphen in âFIFO-basedâ)
- why it works: âmost objects in skewed workloads will only be accessed once in a short window, so it is critical to evict them earlyâ
- âEvaluated on 6594 cache traces from 14 datasetsâ
- paper
- SIEVE, NSDI 2024
- âsimpler than LRUâ
- âimplemented SIEVE in five production cache libraries, requiring fewer than 20 lines of code changes on averageâ
- âcache hits require no lockingâ
- USENIX page
- S3-FIFO, SOSP 2023
- adding learning back
- 3L-Cache, FAST 2025: learned policy with âonly 6.4Ă the average overhead of LRU for small cache sizesâ
- S4-FIFO, OSDI 2026: learn only the few settings of S3-FIFO
- âexisting smart caches suffer from objective mismatches and instabilityâ
- âimproves the mean efficiency by 26% compared to S3-FIFO and by 8% compared to 3L-Cacheâ
- USENIX page
- Merlin, OSDI 2026
- adaptive algorithms âfail this promise, even underperforming static policiesâ
- USENIX page
- caches on flash
- Baleen, FAST 2024, Meta traces: decide what is worth a flash write
- âreduces Peak Disk-head Time ⊠by 12% over state-of-the-art policiesâ
- USENIX page
- FairyWREN, OSDI 2024: use the new drive interfaces that let software place data
- âflash, which accounts for 40% of embodied carbon in serversâ
- âa 12.5Ă write reduction over state-of-the-art LBAD cachesâ
- USENIX page
- WARP, FAST 2026: the placement feature only helps when lifetimes are guessed right
- it âfails under misclassification, RUH interference, or adversarial invalidationsâ
- USENIX page
- EuroSys 2025 has âTowards Efficient Flash Caches with Emerging NVMe Flexible Data Placement SSDsâ; title only, accepted list
- Baleen, FAST 2024, Meta traces: decide what is worth a flash write
- caches that must not lie
- Skybridge, OSDI 2025, Meta: put a time limit on how old a cached value can be
- â2-second bounded staleness for 99.99998% of writesâ
- USENIX page
- WriteGuards, OSDI 2026: caches that always return the latest value without asking storage
- bug class named: âa subtle race we call the delayed-writes anomaly arising during changes in ownership of key rangesâ
- fix: âEach write carries a small fencing value tied to the current owner, and the storage system checks this value to reject delayed writesâ
- built on TiDB
- USENIX page
- I note this is the same fencing idea SlateDB uses for writers; see idea 1
- Skybridge, OSDI 2025, Meta: put a time limit on how old a cached value can be
- my view
- eviction needs big production traces to publish; the public trace sets exist (the papers above use thousands)
- the consistency side (Skybridge, WriteGuards) is closer to our skills than the hit-ratio side
engines on top of object storage
- takeaway: this is the new common design, mostly built in industry and in Rust, with little academic checking
- why it became possible
- fact: S3 added conditional writes in 2024
- August 2024: write only if absent
- November 2024: âAmazon S3 can now perform conditional writes that evaluate if an object is unmodified before updating itâ
- AWS announcement
- inference: before that, a store on S3 needed a second database just to agree on who writes next
- SlateDBâs design document, written before the change, says so: âMost object stores provide CAS ⊠But S3 does not, and we want to support S3â
- SlateDB RFC 0001
- fact: S3 added conditional writes in 2024
- SlateDB, Rust, about 3,500 GitHub stars on 7 Oct 2026
- âUnlike traditional LSM-tree storage engines, SlateDB writes data to object storageâ
- cost: âobject storage has a higher latency and higher API cost than local diskâ
- a write is not safe until asked: âCall
handle.await_durable().awaitto wait for one write to become durableâ - README
- old writers: âwe propose using CAS to ensure each SST is written exactly one time. We introduce the concept of writer epochs to determine when the current writer is a zombie and halt the processâ (RFC 0001)
- how it is checked today
- simulation: â
slatedb-dstis SlateDBâs deterministic simulation testing crateâ (its README) - small models in the FizzBee model checker (specs folder)
- no proof: issue âWrite a formal proof for manifest designâ, opened 19 Jun 2024, still open, zero comments
- âThe manifest design in #43 is pretty complicated. It would be nice to have a formal proofâ
- issue 71
- open issues also ask for model-checker specs of âwriter fencing protocolâ (issue 266) and âcheckpointing/clone protocolsâ (issue 327)
- simulation: â
- garbage collection is a live design worry: RFC titles include â0026-garbage-collector-boundaryâ and â0029-gc-safe-sst-ulid-timestampsâ (titles only; I did not read them)
- Tonbo, Rust
- âThe manifest is committed using compare-and-swap on S3, so any function can safely participate in commitsâ
- README
- RocksDB on a remote file system, Meta
- reported second-hand by the CaaS-LSM paper: âMeta has built a new version of RocksDB to adapt to the disaggregated Tectonic File System (called Disaggre-RocksDB)â
- the primary paper is âDisaggregating RocksDB: A Production Experienceâ, SIGMOD 2023; I could not open it (publisher blocked the fetch)
- compaction as its own service
- CaaS-LSM, SIGMOD 2024: paper
- SlateDB has an RFC named â0025-distributed-compactionâ (title only)
- a cache in front of a cloud key-value service
- HopperKV, FAST 2026: âmodifies Redis to cache data from DynamoDBâ, USENIX page
- one transaction across memory, flash, and disk copies
- DiStash, 2026, built on FoundationDB, eBay workload: arXiv 2606.27979
- Amazonâs own checking of an object storeâs index, SOSP 2026
- âValidating a Production Cloud Object Store with Lightweight Formal Methodsâ
- âcombined executable reference models with property-based testing and stateless model checkingâ
- âWe extended Shuttle, our open-source stateless checker, to support a production async Rust runtime and failure injectionâ
- âOur main finding is that this approach is sustainable at engineering scaleâ
- engineers took over: âincreasing its share of validation commits from 41% to 84%â
- source: abstract as reproduced on a blog listing SOSP 2026 papers; I did not read the paper
- this is testing against a model, not a proof
stores built for new hardware
- takeaway: lots of papers, nearly all need the device in hand; the part we could touch is the correctness argument
- persistent memory after Optane
- âthe first shipments of 3D XPoint-based Intel Optane Memory in 2019 were quickly followed by its cancellation in 2022â
- the authorsâ defense of the field: âthe bulk of persistent-memory research has not in fact addressed memory persistence, but rather in-memory crash consistencyâ
- and it comes back with CXL: âCXL memory pooling allows multiple hosts to share a single memory, all in different failure domains, raising crash-consistency issues even with volatile memoryâ
- Desnoyers et al., âPersistent Memory Research in the Post-Optane Eraâ, DIMES workshop 2023, paper
- the verified store CapybaraKV still targets persistent memory; see the correctness section
- remote memory over RDMA
- the pattern: clients do the work, memory machines stay dumb
- RCuckoo, ATC 2025: âclients cooperatively access a passive memory server using exclusively one-sided RDMA operationsâ, USENIX page
- DMTree, FAST 2026: earlier designs âeither suffer from the network bandwidth bottleneck or are fragile due to high RDMA IOPS demandsâ, USENIX page
- FORGE, OSDI 2026, a cache: âcostly cross-node synchronizationâ, USENIX page
- replicated stores
- LoLKV, NSDI 2024: âforgoes the classical log-based designâ, USENIX page
- transactions
- Motor, OSDI 2024: USENIX page
- locks, a sub-area of its own
- ShiftLock, FAST 2025; FARLock, OSDI 2026 (âAsymmetric RDMA Locking Made Fairâ); titles only
- SOSP 2024 titles: âAceso: Achieving Efficient Fault Tolerance in Memory-Disaggregated Key-Value Storesâ, âCHIME: A Cache-Efficient and High-Performance Hybrid Index on Disaggregated Memoryâ (accepted list); abstracts not read
- the pattern: clients do the work, memory machines stay dumb
- shared memory over CXL
- the hard fact every paper starts from: servers sharing CXL memory do not automatically see each otherâs writes
- Tigon, OSDI 2025: âlimited hardware support for cross-host cache coherenceâ, USENIX page
- MEGALON, OSDI 2026: âthe hardware is expected to provide cache coherence only for a small region of CXL memoryâ, USENIX page
- so the software has to do the hardwareâs job, each paper with its own rule
- Borges, SOSP 2026: âassigns every shared metadata word a single writerâ
- XTRA, SOSP 2026: âdirectly repurposing transactional conflict detection to guarantee cache freshness lazily upon readâ
- âDisk-Based LSMs: An Unexpectedly Good Index for Partly Coherent CXL Memoryâ, SOSP 2026
- âdata structures have a large updatable surface areaâthe part of the data structure that can be modified in-placeâ
- âWe propose a new design that, perhaps surprisingly, is based on log-structured merge treesâ
- the three SOSP 2026 quotes are from abstracts on the blog listing
- emulators exist, so not every project needs the device
- Cylon, FAST 2026: âa fast and extensible full-system emulator for CXL-SSDs built on FEMUâ, USENIX page
- the hard fact every paper starts from: servers sharing CXL memory do not automatically see each otherâs writes
- SmartNICs and DPUs
- Scalio, OSDI 2025: the hard part is âensuring consistency between the DRAM states in the DPU and the SSD statesâ, USENIX page
- DPA-Store, OSDI 2026: range queries served on the card, USENIX page
- HiDPU, FAST 2025: USENIX page
- programmable switches
- OrbitCache, NSDI 2025: âwe make hot items revisit the switch data plane continuously by exploiting packet recirculationâ, USENIX page
- NetMigrate, FAST 2024: move Redis shards with the switch redirecting clients, USENIX page
- replication tuned to SSD engines
- IONIA, FAST 2024: âone round trip (RTT) writesâ and reads âat any replicaâ, USENIX page
- threads inside an in-memory store
- SOSP 2025 title: âRearchitecting the Thread Model of In-Memory Key-Value Stores with ÎŒTPSâ (accepted list); abstract not read
- my view
- I see one thing here for us: each CXL paper invents its own rule for âwhen is it safe to read memory another server may have changedâ
- none of the abstracts I read mentions a proof or a model check of that rule
- that is an inference from abstracts only; the papers may contain more
storage engines written in Rust
- takeaway: there are many, they are used, and their correctness story is âwe test a lotâ
- facts below are from each projectâs README and GitHub page on 7 Oct 2026; stars are a rough popularity sign only
- embedded engines
- sled, about 9,100 stars
- âif reliability is your primary constraint, use SQLite. sled is beta.â
- âsled automatically fsyncs every 500ms by defaultâ
- README
- redb, about 4,800 stars
- âData is stored in a collection of copy-on-write B+treesâ
- âCrash-safe by defaultâ; âThe file format is stableâ
- README
- fjall, about 2,400 stars
- âLSM-tree-based storage similar to
RocksDBâ; â100% safe & stable Rustâ - default durability: âany operation will flush to OS buffers, but not to diskâ
- on errors: âItâs best to let the application crash and restartâ
- README
- âLSM-tree-based storage similar to
- SurrealKV, about 560 stars
- âDeterministic Simulation Tested (DST): Verified against an in-memory linearizable model oracle across 25,000,000 operations with zero divergencesâ
- README
- âverifiedâ here means tested against a model, not proved
- Bf-Tree, Tidehunter, SlateDB, Tonbo: see earlier sections
- sled, about 9,100 stars
- caches
- Foyer, about 1,800 stars
- âHybrid in-memory and disk cache in Rustâ
- âdraws inspiration from Facebook/CacheLibâ
- SlateDB is listed as a user
- README
- Foyer, about 1,800 stars
- larger systems
- TiKV, about 16,900 stars: âDistributed transactional key-value databaseâ (repository); its storage engine underneath is RocksDB, which is C++ (from my memory, not checked today)
- Neon, about 23,200 stars: âWe separated storage and computeâ (repository)
- Turso, about 24,700 stars: a rewrite of SQLite in Rust
- âTurso is extensively tested by a collection of tools including a native Deterministic Simulation Testing suite and Antithesisâ
- âwe have not yet reached 1.0â
- README
- a paper came out of its testing: DIRT, DBTest 2026
- âfinds 23 unique, confirmed bugsâ
- âintegrates a testing framework directly into the DBMSâ
- arXiv 2604.16373
- what I did not find
- any peer-reviewed study of crash, durability, or concurrency bugs across the Rust embedded engines
- any proof about one of them
- search was a handful of web queries; a miss is quite possible
- inference
- safe Rust prevents many memory errors; unsafe code and dependencies need separate checks
- memory safety alone does not establish durability
- fjallâs default (not flushed to disk) and sledâs 500 ms window are documented choices, but an application author can easily miss them
checking that an engine is correct
- takeaway: industry settled on models plus random testing; proofs exist for one small store; the gap between them is where I would work
- models plus random testing (âlightweight formal methodsâ)
- ShardStore, SOSP 2021, Amazon S3, Rust
- âWe do not aim to achieve full formal verification, but instead emphasize automation, usability, and the ability to continually ensure correctness as both software and its specification evolve over timeâ
- âdevelops executable reference models as specifications to be checked against the implementationâ
- âhas prevented 16 issues from reaching production, including subtle crash consistency and concurrency problemsâ
- paper
- the SOSP 2026 follow-up for S3 Express: see the object storage section
- Shuttle, the open tool both use: âa library for testing concurrent Rust codeâ (repository)
- ShardStore, SOSP 2021, Amazon S3, Rust
- deterministic simulation testing
- used by SlateDB, SurrealKV, Turso (quotes above)
- I found project pages and talks, not a research paper that measures what it misses
- crash testing tools
- Pathfinder, OOPSLA 2025
- âThe crash-state space grows exponentially as the number of operations in the program increasesâ
- idea: âthe consistency of crash states is often correlated, even if those crash states are not identicalâ
- âfinds 18 (7 new) bugs across 8 production-ready systemsâ
- arXiv 2503.01390
- âFawkes: Finding Data Durability Bugs in DBMSs via Recovered Data State Verificationâ, SOSP 2025; title only (accepted list)
- Open CAS study, ATC 2025: a popular block cache âcannot always maintain crash consistency in the persistent caching layerâ, USENIX page
- survey, 2026 preprint
- failures âremain difficult to expose systematicallyâ
- the cause is ânot primarily ⊠insufficient testing tooling, but ⊠intrinsic properties of storage-system execution, including nondeterministic interleavings, long-horizon state evolution, and correctness semantics that span multiple layersâ
- on AI: it âmay complement fuzzing through state-aware and semantic guidanceâ
- âTesting Storage-System Correctness: Challenges, Fuzzing Limitations, and AI-Augmented Opportunitiesâ, arXiv 2602.02614
- Pathfinder, OOPSLA 2025
- proofs
- CapybaraKV, OSDI 2025, Verus; the method is covered in verification boundaries, so only the limits here
- âBoth systems verify in under a minuteâ (USENIX page)
- fixed size: ârequires users to statically allocate storage space and specify at initialization the maximum number and size of keys, items, and list elements. It does not currently support dynamic resizingâ
- index in memory: âuses a volatile index that keeps all keys in memory ⊠and must be rebuilt each time the system is startedâ
- concurrency: âit cannot reason about writes executing concurrently with other reads or writes to the same storage regionâ
- limits quoted from the paper, sections 3.4 and 5.1
- code: microsoft/verified-storage, last pushed 29 Sep 2026
- SquirrelFS, OSDI 2024: no separate proof, the Rust type checker enforces write order
- âsuccessful compilation indicates crash consistencyâ
- USENIX page
- a file system, not a key-value store, but the cheapest method on this list
- Tulip, SOSP 2026: a proved distributed transaction system
- âa machine-checked proof of correctness showing that its implementation meets a simple specification identical to a local strictly serializable transaction systemâ
- abstract via the blog listing; belongs to transactions and regions
- VeriBetrKV: in stores and recovery
- CapybaraKV, OSDI 2025, Verus; the method is covered in verification boundaries, so only the limits here
- what I did not find
- a proved LSM tree with compaction, or a proved engine on object storage
- a proved copy-on-write B-tree engine in Rust
- again a limited search
LLMs and storage engines
- LLMs and storage systems covers this; three additions from my part
- small models tuning compaction live
- âa clear positive correlation between model capability and tuning effectivenessâ
- so the small fast models that fit the time budget tune worse
- arXiv 2602.12669
- a cache policy that can explain itself
- S4-FIFO: âa language model can provide a rationale for why a particular configuration was chosenâ (USENIX page)
- storage projects are already in the Verus agent benchmarks
- this comes from a web search summary of VeruSAGE (arXiv 2512.18436), which says its benchmark projects include storage systems
- the paper is in the humanâs paper collection; I did not open it for this note
- inference: an agent that can finish CapybaraKV-style proofs lowers the cost of ideas 1 and 2
research we could do
- ranked by my judgment of fit: Verus, Rust, LLM agents, no production fleet, no rare hardware
- 1: prove the core of an LSM tree on an object store
- question: can we prove, in Verus, that a small Rust LSM on an object store with conditional writes never loses a write it reported durable, and never lets an old writer damage the database?
- why I think it is open
- SlateDB wants it and has not done it (issue 71, open since June 2024)
- their checks are simulation and small models, which do not cover the real code path by path
- CapybaraKV is fixed-size and on persistent memory
- Amazonâs S3 Express work is testing against models, by their own description
- why it may be easier than it sounds
- an object write is all or nothing, so there are no half-written blocks to reason about
- sorted files never change after writing
- the whole protocol hangs on two conditional writes: âcreate if absentâ and âreplace if unchangedâ
- this is my reasoning, not a claim from a paper
- first three months
- write the object store rules as a Verus spec: put, get, list, delete, the two conditional writes, and crash of the client at any point
- prove a tiny engine: write-ahead objects, one flush, a manifest swap, writer takeover with fencing
- leave out compaction and garbage collection at first
- run the same operation sequences against SlateDB through its simulation crate and compare answers
- then
- add garbage collection: prove a deleted file is in no live manifest and no readerâs snapshot
- this meets stores and recovery proposal 2 (safe deletion across layers); do them together
- what would kill it
- someone already proved the SlateDB protocol against code; a web search summary says a TLA+ port of the SlateDB specs exists (Jack Vanlightly), which I did not open; a model-level spec would not kill this, a code-level proof would
- the trusted object store spec turns out to hide the real bugs (for example list operations that lag); check provider documentation first, see tables on object stores
- proof effort for the read path (merging iterators) swamps the interesting part; keep reads simple
- why it could matter beyond one engine
- WriteGuards uses the same fencing pattern for caches; Tonbo uses the same manifest swap
- a reusable proved âfenced manifestâ library is a plausible artifact
- 2: PoWER off persistent memory
- question: does the PoWER method carry over to an engine on ordinary files, with growth and a real on-disk index?
- closest work: CapybaraKV, with the three limits quoted above
- candidate target: a copy-on-write B-tree in the style of redb
- copy-on-write means the commit is one root pointer switch, which suits a âevery crash state is legalâ precondition
- this pairing is my suggestion
- first three months: a verified page allocator plus copy-on-write commit over a file API with explicit sync, in Verus, sized to grow
- what would kill it
- the file and sync model is the hard, unverifiable part; verification boundaries discusses exactly this
- the PoWER authors may already be doing it; their repository was pushed last week; ask them before starting
- 3: an outside crash and durability study of Rust storage engines
- question: what bugs remain in Rust engines with separately assessed unsafe code and dependencies, and do their documented durability defaults match what users assume?
- closest work: Pathfinder (C and C++ systems, plus memory-mapped ones), Fawkes (database systems), DIRT (Turso only, logic bugs)
- method
- apply an existing crash-state tool to sled, redb, fjall, SurrealKV, Bf-Tree, Tidehunter
- apply a fault-injecting object store to SlateDB and Tonbo
- separately, read how downstream projects call them: do they ever ask for a real sync?
- first three months: harness for two engines, any confirmed bug, a count of downstream projects relying on the default
- what would kill it
- the tools do not run on Rust binaries without heavy porting
- no bugs: still a result, but a weak paper
- fit: needs one machine; mostly engineering; good student project
- the downstream-usage half is a measurement study, which matches the humanâs measurement interest
- 4: can an agent write the reference model and the simulation harness?
- question: given an engineâs code, can an LLM agent produce a reference model and random tests that catch that engineâs real past bugs?
- why now
- Amazon reports the method is âsustainable at engineering scaleâ with human engineers
- the storage testing survey names AI guidance as an opportunity, with no result
- benchmark idea: take bug-fix commits from SlateDB, fjall, redb, Turso; check out the commit before each fix; see if the agentâs tests fail there and pass after
- what would kill it
- too few bug fixes with clear triggers
- overlap with the testing ideas in LLMs and storage systems; read its âLLMs testing storageâ part first
- risk I see: the agentâs model copies the engineâs bug; measure that directly
- 5: prove a concurrent cache
- question: can the lock-free hit path of SIEVE or S3-FIFO be proved correct in Verus, and can an agent do most of the proof?
- why: the algorithms are tiny (âfewer than 20 lines of code changesâ), widely deployed, and their selling point is concurrency without locks
- what counts as correct needs care: never return a wrong value, never exceed capacity, never lose an entry that was not evicted
- honest size: a workshop paper or a benchmark entry, unless it finds a bug in a real library such as Foyer
- 6: write down and check the âwho may read whatâ rules for shared CXL memory
- question: is there one small model of partly coherent shared memory under which Tigon, MEGALON, Borges, and XTRAâs rules can each be stated and checked?
- no hardware needed for the model; an evaluation would need a device or an emulator
- what would kill it: the papers already contain such proofs (I read abstracts only); the systems are not open
- lowest fit of the six: far from Rust and the community is hardware-first
what I would skip
- another compaction or write-stall design for RocksDB
- dozens exist; see the survey
- RDMA, DPU, and switch stores
- each needs the device, and the 2024 to 2026 programmes are full of them
- learned indexes
- the two 2025 to 2026 evaluations above report small gains and little adoption
- LLM tuning of RocksDB settings
- already several papers; see LLMs and storage systems
- new persistent memory stores
- the hardware was cancelled
- cache hit-ratio algorithms
- S3-FIFO, SIEVE, S4-FIFO, and Merlin come from groups with thousands of production traces and years of head start
second opinion
- no ChatGPT opinion was obtained yet
- one Extra High attempt on 7 Oct failed before the prompt was submitted
- the coordinator then stopped all attempts until the human signs in to ChatGPT
- the prompt I would send is saved outside the notes; its path is in my report to the coordinator
- the ranking above is therefore one agentâs opinion, unreviewed
what I read and what I missed
- read depth
- about 75 sources
- full abstracts, word for word: about 50 USENIX papers (FAST, OSDI, NSDI, ATC 2024 to 2026), 15 arXiv papers, 6 SOSP 2026 abstracts through a blog listing
- first pages of PDFs: Bf-Tree, S3-FIFO, CaaS-LSM, post-Optane, ShardStore
- deeper: PoWER sections 3.4 and 5.1
- project pages: 13 README files, SlateDB RFC 0001, one issue, one AWS announcement
- I read no paper end to end; claims about results are the authorsâ abstract claims
- not covered
- SIGMOD, VLDB, ICDE, CIDR beyond the few papers named; the title database I tried was rate limited
- EuroSys 2026 and ASPLOS; EuroSys 2025 and SOSP 2024 to 2025 by title only
- 2022 and 2023 conference programmes, except S3-FIFO and the post-Optane paper
- production systems papers (DynamoDB, MemoryDB, FoundationDB, Cassandra, TiKV internals)
- zoned SSD stores, vector and time-series engines, blockchain state stores beyond Tidehunter
- Jepsen reports on key-value stores
- whether any listed artifact builds
- possible error in a sibling file: none found; I read stores and recovery in full and only the outlines of the others
Last edited: