Replay deletes that arrive during a full reindex #14

Closed
opened 2026-10-06 12:23:20 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-10-06 12:23:20 +00:00 (Migrated from github.com)

During a full reindex of all tables, real-time writes go to the alias, which still points at the old physical index. Updates are recovered by the next basepull because lastBasepullTime is set to each table's start time, but deletes are never replayed. A record deleted mid-rebuild stays in the new index, and with applyRecordSecurityLocks=false its label and snippet are still returned.

Fix: capture deletes during the rebuild (failed-event rows or a delete log) and apply them to the new index after the alias swap.

Found in the PR #10 review of FullReindexStep.

Part of #12.

During a full reindex of all tables, real-time writes go to the alias, which still points at the old physical index. Updates are recovered by the next basepull because `lastBasepullTime` is set to each table's start time, but deletes are never replayed. A record deleted mid-rebuild stays in the new index, and with `applyRecordSecurityLocks=false` its label and snippet are still returned. Fix: capture deletes during the rebuild (failed-event rows or a delete log) and apply them to the new index after the alias swap. Found in the PR #10 review of `FullReindexStep`. Part of #12.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: QRun-IO/qbit-quick-search#14