Commit b6ae6ca
committed
[VQueues] Introducing inbox caching and read in batches
Replaces the single-head cache with a sorted 24-entry per-queue cache.
Refills run via tokio::task::spawn_blocking when data isn't in the
block cache; in-flight notify_enqueued / notify_removed events are
buffered as an overlay (Add / Tombstone) and merged on completion.
On overlay overflow we set a horizon (exclusive upper bound) instead
of back-eviction: a popped tombstone could otherwise re-admit a
deleted row. Storage rows at or above the horizon are dropped from
the merge and rediscovered on the next refill.
Drops the tailing iterator and its workarounds. Splits VQueueCursor
into inbox (returns CursorError; WouldBlock under non-blocking opts)
and VQueueRunningCursor (sync).1 parent 98cf860 commit b6ae6ca
14 files changed
Lines changed: 1331 additions & 1324 deletions
File tree
- crates
- partition-store/src
- tests/vqueue_table_test
- vqueue_table
- rocksdb/src
- storage-api/src/vqueue_table
- vqueues
- src
- scheduler
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments