Skip to content

Commit b6ae6ca

Browse files
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

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)