-
Notifications
You must be signed in to change notification settings - Fork 958
aws_dynamodb_cdc: ack-gate snapshot checkpoints and fix shard start_from handling (CON-504) #4687
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+953
−126
Merged
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
4158ffc
aws_dynamodb_cdc: add auto_replay_nacks
squiidz 943c926
aws_dynamodb_cdc: apply start_from only to genuinely fresh pipelines
squiidz 3ede513
aws_dynamodb_cdc: gate snapshot checkpoints and completion on downstr…
squiidz 120371b
aws_dynamodb_cdc: adversarial crash test for the snapshot ack gate
squiidz 76385ac
aws_dynamodb_cdc: address review - retryable snapshot persists, grace…
squiidz 5765a61
aws_dynamodb_cdc: nacks resolve snapshot checkpoints (auto_replay_nac…
squiidz e7881f2
aws_dynamodb_cdc: serialize segment persists and scope the completion…
squiidz bea7052
aws_dynamodb_cdc: scope the snapshot tracker per attempt and probe st…
squiidz 3008635
aws_dynamodb_cdc: document the narrowed start_from semantics
squiidz 35c0e8d
aws_dynamodb_cdc: log interrupted snapshot gate at info with resume c…
squiidz d8f164d
aws_dynamodb_cdc: survive transient seal-write failures and re-drive …
squiidz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HasAnyStateis now the sole gate for honoringstart_from: latest, butQuerydefaults to eventually consistent reads.Failure scenario: a pipeline crashes and is restarted within a second or two (the common restart case). The checkpoint rows written moments before the crash are not yet visible to this probe, so
HasAnyStatereturnsfalse→honorStartFrom.Store(true)→ shards whose per-shard checkpoint read (also eventually consistent,Get) is stale for the same reason fall into thedefaultbranch and are re-positioned atLATEST— silently skipping their backlog, which is exactly the hole this change closes.Since the probe is
Limit: 1, addingConsistentRead: truemakes the decision deterministic for a negligible extra RCU.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in bea7052 — the probe now sets ConsistentRead: true. (The per-shard Get staleness alone is safe: with honorStartFrom false a missing checkpoint falls through to TRIM_HORIZON, so the probe was the only decision that needed the strong read.)