Expand description
A reference ProxyReduceBackend over VecChunk storage.
This backend exists to demonstrate the backend recipe in plain Vec-of-rows form, and to give
the proxy tactic a counterpart that can be tested and benchmarked against the cursor tactic on
identical storage: both can drive a reduction over the same hash-keyed
ChunkSpine arrangement (see tests/int_proxy.rs and
tests/int_proxy_bench.rs).
§The recipe
The wiring arranges coll.map(|(k, v)| (k.hashed(), (k, v))) into a ChunkSpine whose key is
the u64 key hash and whose value is the full (key, val) pair.
Per window, the backend presents the input (the novel batches and the prior history, merged), the
times of the novel records as seeds, and the prior output.
Identifiers are ordinal positions minted by a single MergedWalk over the novel batches and the
prior ones together, so a value carries ONE identifier whichever run it appears in and a novel
retraction cancels against its own history. They are minted after the walk consolidates, so a value
whose records all cancel never reaches the tactic and never spends an identifier.
The backend clones keys and values like it is being paid to waste cycles. Generally, this is not a high-performance backend, but shouldn’t be abysmal.
Structs§
- VecReduce
Backend - A reference
ProxyReduceBackendoverVBatchstorage.