SpaceDB 0.7.2: Borrowed Scans, Eight-Lane Dots, and a Ranking Caveat
SpaceDB 0.7.2 trims 3.8 percent of instructions across fifteen drivers with borrowed range scans, batched CRDT transactions and eight-lane vector sums, plus a ranking caveat.

How did SpaceDB 0.7.2 reduce instruction counts?
SpaceDB 0.7.2 lends rows to range scans, checks presence without copying, batches CRDT mutations into one yrs transaction, uses FNV or identity hashing for short keys, and sums vector dots in eight lanes. Fifteen drivers fell 3.8 percent in total against a re-measured 0.7.1.
SpaceDB 0.7.2 is a second instruction-count pass, and it is deliberately small. Fifteen deterministic drivers, 0.7.1 re-measured on the same harness, total 2,702.8 M to 2,599.0 M instructions. That is 3.8 percent. Four drivers moved more than 15 percent: ir_txrange down 36.1, ir_console down 33.1, ir_vector down 29.8 and ir_query down 18.0. Access moved 0.3 percent. Durability did not move.
The public commit is 43108abe, and crates.io carries spacedb-sdk 0.7.2 and spacedb-store 0.7.2 from 7 November 2026. There are no git tags in the public repo, and the commit subject names a monorepo SHA that does not resolve publicly.
This is not the 0.7.0 story. The 0.6.0 to 0.7.0 table, its build-profile footnote and the SDK headline are in SpaceDB 0.7.0: Same Results, Far Fewer Instructions and are not repeated here. The database model is in What is SpaceDB, and the builder brief is SpaceDB. Every number below is repository-reported. Nothing was rerun for this note.
What the SpaceDB 0.7.2 table says
The README section is Performance (0.7.2). All fifteen drivers, before and after:
ir_txrange, range scans inside a write transaction: 11.6 M to 7.4 M, down 36.1 percent.ir_console, operator rollups: 68.2 M to 45.6 M, down 33.1 percent.ir_vector, 1,500 by 64-d, three metrics, top-10: 33.1 M to 23.3 M, down 29.8 percent.ir_query, WASM map-reduce plus a host call: 33.4 M to 27.4 M, down 18.0 percent.ir_ops, one transaction per CRDT mutation: 33.9 M to 29.7 M, down 12.7 percent.ir_crdt: 146.3 M to 130.8 M, down 10.6 percent.ir_session: 11.3 M to 10.2 M, down 9.6 percent.ir_sdk: 12.2 M to 11.1 M, down 9.0 percent.ir_batch: 15.5 M to 14.2 M, down 8.4 percent.ir_sim, 40-replica gossip: 1,665.1 M to 1,635.1 M, down 1.8 percent.ir_claims: down 1.6 percent.ir_store: 194.1 M to 191.2 M, down 1.5 percent.ir_redb: down 1.4 percent.ir_access: 95.6 M to 95.3 M, down 0.3 percent.ir_durability: 33.1 M, unchanged.
The simulator dominates the total, at about 62 percent of the before count, which is why the headline is 3.8 percent while several individual drivers moved by tens of percent. Both readings are true. Quote the one that matches your workload.
Where SpaceDB 0.7.2 found the instructions
The mechanisms are copies, repeated setup, and hash cost. The CRDT rules and consistency tiers are unchanged.
Borrowed range scans and copy-free presence in SpaceDB 0.7.2
Range scans lend the row through Readable::range_with (engine.rs), so a scan callback sees a borrowed row instead of an owned copy. Presence checks use contains_raw and do not copy the row. Collections accept borrowed keys.
One transaction per batch
CRDT mutations skip a cleanup observer that cloned three structures, and CrdtDoc::batch runs many mutations inside one yrs transaction. A redb transaction opens each table once. A query hashes its snapshot and each module once and builds the function linker once. Short internal keys use FNV, the hash described in the IETF FNV Internet-Draft, or an identity hasher instead of SipHash. The console interns names.
Eight-lane dots and L2 in SpaceDB 0.7.2
Vector dot product and L2 now use eight independent accumulators so the compiler can vectorize the loop, then fold in a fixed tree order (index.rs). The fixed fold order means the same inputs are summed the same way every time. It does not make them identical to 0.7.1, which summed differently.
What SpaceDB 0.7.2 changes for embedders
Three behavior notes and one list of omissions. Read them before you bump.
The SpaceDB 0.7.2 ranking-bit caveat
Floating-point addition is not associative, a point covered in Goldberg's What Every Computer Scientist Should Know About Floating-Point Arithmetic. Reordering a sum into eight lanes changes rounding. An f32 score can differ from 0.7.1 in its last bits. The test corpus ranked identically. Two neighbors whose scores sit inside that rounding could swap places. If your application pins exact top-k order in a golden test, you may need to re-baseline. The vector index still returns ids and scores and keeps stored vectors on the node.
Checksums, AEAD, and held tables
New rows omit zstd's content checksum, an optional frame field in RFC 8878, because the README says the AEAD tag already authenticates them. 0.7.2 still reads checksummed rows. We did not audit that claim, and this note does not assert a new security property. A redb transaction now holds its tables open until it ends. cargo semver-checks against 0.7.1 is reported passing on all twelve crates.
What the SpaceDB 0.7.2 numbers leave out
No wall clock. No CPU or rustc version. Whether the 0.7.0 opt-level = 3 profile is still in effect is not restated. Wins measured inside yrs, primeorder and rusty_zstd are explicitly excluded from this release and these numbers. The per-copy verdict file is described as living in the monorepo and is not public. The 0.7.1 zstd halving is the baseline, not a 0.7.2 gain. The reproduce line is cargo build --release --example ir_access -p spacedb-access then valgrind --tool=callgrind. The Valgrind manual covers the tool. Repo landing: spacedb. Cluster: Memory. The case for keeping the copy near its owner is the California essay, and mata.network is where SpaceDB is meant to be the durable copy.
FAQ
Quick answers for builders evaluating this technology.
Why can SpaceDB 0.7.2 reorder near-identical vector results?
Dot products and L2 now accumulate in eight independent lanes and fold in a fixed tree order. An f32 score can differ from 0.7.1 in its last bits, so two candidates within that rounding could swap. Rankings in the project's test corpus did not change.
Is SpaceDB 0.7.2 semver-compatible with 0.7.1?
The project reports cargo semver-checks passing against 0.7.1 on all twelve crates. New methods are additive, and several new trait methods have default implementations.
Why does the SpaceDB 0.7.2 store driver start below where 0.7.0 ended?
The README attributes a halved zstd decode cost to rusty_zstd 0.4.1 in 0.7.1, so ir_store starts at 194.1 million instead of the 356.1 million 0.7.0 ended at. That drop is not a 0.7.2 result.
What changed about row checksums in SpaceDB 0.7.2?
New rows are written without zstd's content checksum because the README says the AEAD tag already authenticates them. 0.7.2 still reads rows that carry it. This article did not audit that cryptographic reasoning.
How do I reproduce the SpaceDB 0.7.2 instruction counts?
Build a driver example in release, for example ir_access in spacedb-access, and run it under valgrind callgrind on Linux. Seeds are pinned and getrandom is answered by an LD_PRELOAD shim. The README does not name the CPU or rustc version.