Rust: batch writes merge onto the store (rs-batch-merges-onto-store) #135
Loading…
Reference in a new issue
No description provided.
Delete branch "libby/rs-batch-merges-onto-store"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes follow-up
cultlib-gaps:follow_up:rs-batch-merges-onto-store.CacheBackingStore::push_allis now an atomic write of the given entries onto the store as it is at commit time (single-file under the exclusive lock, both redb stores in one transaction); nothing else is removed.put_prepared_batchhands the store its staged records alone, which deletes the snapshot and foreign-record lay-back code. A cache whose image is stale (second writer added a key after its pull) no longer wipes that key: pinned in single-file and redb, failing before the change.Consequences, in the changelog: a custom store must merge in
push_all;push_allthrough a dangling link is refused likepush(it used to replace the link; test and README line updated); soft flush unchanged. The single-file commit guard now judges the merged store, so a stale cache that retypes a key another writer added is refused there.Parity: C# CommitBatch and Python push_all already merge; TS pushAll still replaces (
ts-flush-replaces-store, next).🤖 Generated with Claude Code