You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
storage/upsert: select the stash representation by dyncfg
enable_upsert_chunked_stash (off in production, on and randomized in CI)
selects between two instantiations of the upsert-v2 operator loop:
* Chunked (flag on): ChunkBatcher stash, chunk-spine feedback
arrangement, bulk-probe drain. Spills committed chunk bodies through
the process buffer pool.
* Paged (flag off, the default): paged columnar merge batcher stash,
ValRowSpine feedback arrangement, cursor drain. Spills cold chains
through the storage-owned column pager.
The operator loop itself is shared: build_upsert_operator is generic
over an UpsertStashArm, whose two impls carry the flavor-specific
pieces (stash batcher, feedback spine, flush, drain). UpsertStashFlavor
names the arms and resolves from the config set once, at operator
construction, mirroring compute's ArrangementBatcher. Both flavors'
spill paths stay gated by enable_upsert_paged_spill, so storage_state
applies that flag to both the chunk gate and the restored
upsert_stash_pager.
The unit-test harness runs every scenario under both flavors and
asserts they produce identical output.
0 commit comments