fix(qwp): detect incarnation changes via dir name in STATUS_DURABLE_ACK [fj4WqyCCw3C5ShR1RfB7MoBPTpkRrBFYP1uT35g3MvT] - #90
Open
waterWang wants to merge 1 commit into
Conversation
When a table is dropped and re-created under the same name, the server's STATUS_DURABLE_ACK frames now carry the table dir name as an incarnation discriminator. The client tracks the last-seen dir name per table; when the dir name changes, the per-table durable watermark is reset to prevent the old incarnation's high watermark from falsely covering the new incarnation's low seqTxns (which caused durable-ack-grade data loss). - WebSocketResponse: parse new durable ack entry format [nameLen(2)+name(N)+dirLen(2)+dir(M)+seqTxn(8)] - CursorWebSocketSendLoop: detect dir name change → reset watermark Requires coordinated server PR questdb/questdb#7513. Ref: questdb/questdb#7496
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a table is dropped and re-created under the same name, the server's
STATUS_DURABLE_ACK frames now carry the table dir name as an incarnation
discriminator. The client tracks the last-seen dir name per table; when the
dir name changes, the per-table durable watermark is reset to prevent the
old incarnation's high watermark from falsely covering the new incarnation's
low seqTxns (which caused durable-ack-grade data loss).
[nameLen(2)+name(N)+dirLen(2)+dir(M)+seqTxn(8)]durableTableWatermarks[name]durableAck()factory calls with dir nameRequires coordinated server PR: questdb/questdb#7513
Ref: questdb/questdb#7496