[yugabyte/yugabyte-db#18075] Send snapshot_done_key before starting streaming #239
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.
Problem
Consider the scenario where we have 3 colocated tables, we start streaming for 2 of them.
In the above case, if there is an insert between step 3 and step 4, there will be data loss for colocated tables.
Solution
This PR adds the logic for the connector to send
snapshot_done_key
before the beginning of streaming insnapshot.mode:never
so that the service knows the connector will not request snapshot in that case.Test plan
Modify an existing test case
YugabyteDBColocatedTablesTest#shouldWorkAfterAddingTableAfterRestart
to accomodate the scenario mentioned in the problem.This PR closes yugabyte/yugabyte-db#18075