Skip to content

Temporary inconsistencies may occur between upstream and downstream in SYNCPOINT timestamps Under extreme conditions, #3663

@hongyunyan

Description

@hongyunyan

In the following scenarios, temporary inconsistencies may occur between upstream and downstream data when using logarithmic timestamps for syncpoints:

  1. The syncpoint at ts = 10 has been reported by all dispatchers, and a write command is sent to the downstream table trigger via the validation of onAllDispatcherReportedBlockEvent.

  2. The maintainer requests dispatcher A to initiate a move operation.

  3. After dispatcher A is rebuilt on a new node, it starts fetching data again from startTs = 9, and dispatcher A has other DML data that needs to be synchronized at ts = 10.

  4. When dispatcher A starts replaying the DML at ts = 10 downstream, the table trigger synchronously writes the syncpoint downstream. If the DML replayed by dispatcher A has an intermediate state, there is a probability that the timestamps of this syncpoint will be inconsistent between upstream and downstream data.

This is a very low-probability problem. It requires the table trigger to delay writing to the syncpoint, dispatcherA to complete the incremental scan very quickly, dispatcherA to have a DML with ts=10 that needs to be written in multiple batches, and dispatcherA and the table trigger to write simultaneously for an inconsistency to occur.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions