mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2026-10-12 09:24:52 -05:00
A binding window re-based the reader to zero, so BaseVectors(spec, '[50000..100000)') exposed indices 0..49999. A workload running the cycles that window names then indexed past the end and failed, and it only ever worked from cycle 0, where the re-basing is the identity. It also disagreed with the two surfaces beside it: VariableFacet and prefetchCycles both speak absolute ordinals. The window now selects which records to warm and nothing else. Indices are absolute everywhere, so cycles address the records they name, and the fetch still covers only the window — a [50000..100000) slice of a 100k profile warms 74 MiB rather than the full 146 MiB. Reads outside the window demand-page rather than failing, which is load-bearing rather than lenient: VirtData probes a newly resolved function with a small sample index before any cycle runs, so refusing out-of-window reads leaves a window above zero unable to resolve at all. A test pins that. WindowedReader keeps its restricting behaviour for the windowedFacet expression function, where a caller asks for a restricted reader directly and no resolver probe is involved.