[adapters] delta: don't open a catchup window while the endpoint is paused - #6871
Open
ryzhyk wants to merge 1 commit into
Open
[adapters] delta: don't open a catchup window while the endpoint is paused#6871ryzhyk wants to merge 1 commit into
ryzhyk wants to merge 1 commit into
Conversation
…aused Catchup mode batches every Delta commit up to the table's latest version into one Feldera transaction. It picks that version when it opens the window, and the follow loop could open one with a pause already pending: the loop waits for `Running` at the top of each iteration, then reads a log entry and opens the window further down, and the endpoint can pause in between. The window then targets a version from before the pause, so the commits written during the pause -- the backlog catchup mode exists to batch -- are split across later windows. Wait for `Running` again before choosing the target. The window then spans everything the table has accumulated by the time the connector resumes. This is the flake behind `delta_table_snapshot_and_follow_catchup_snapshot_transaction_test` failing with `catchup_target_version` one version short of the burst: the test builds its backlog while paused, so it depends on this window never opening early. The new test parks the follow loop between the two points with a read failure and reproduces it deterministically; the shared experiment now also asserts that no window survives a pause. Signed-off-by: Leonid Ryzhyk <ryzhyk@gmail.com>
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.
Catchup mode batches every Delta commit up to the table's latest version into one Feldera transaction. It picks that version when it opens the window, and the follow loop could open one with a pause already pending: the loop waits for
Runningat the top of each iteration, then reads a log entry and opens the window further down, and the endpoint can pause in between. The window then targets a version from before the pause, so the commits written during the pause -- the backlog catchup mode exists to batch -- are split across later windows.Wait for
Runningagain before choosing the target. The window then spans everything the table has accumulated by the time the connector resumes.This is the flake behind
delta_table_snapshot_and_follow_catchup_snapshot_transaction_testfailing withcatchup_target_versionone version short of the burst: the test builds its backlog while paused, so it depends on this window never opening early. The new test parks the follow loop between the two points with a read failure and reproduces it deterministically; the shared experiment now also asserts that no window survives a pause.Describe Manual Test Plan
Checklist
Breaking Changes?
Mark if you think the answer is yes for any of these components:
Describe Incompatible Changes