Skip to main content

Module vec_backend

Module vec_backend 

Source
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§

VecReduceBackend
A reference ProxyReduceBackend over VBatch storage.