Skip to content

Resolved-ts must be strictly smaller than locks' min_commit_ts when calculating it #17728

@ekexium

Description

@ekexium

Bug Report

ref #17459

By the definition of resolved-ts, we require:
commit_ts > resolved_ts, if the commit happens after the calculation of the resolved-ts.

Our implementation uses min_commit_ts to calculate resolved-ts, so that what we have is:
commit_ts >= min_commit_ts >= resolved_ts

resolved_ts may be equal to commit_ts, which breaks the definition of resolved-ts.

NOTE: This bug cannot happen in current(v8.4) implementation.

  • Only Pipelined DMLs use min_commit_ts for resolved-ts calculation
  • These min_commit_ts used are (indirectly) from PD TSO
  • This ensures their commit_ts is always greater than min_commit_ts
  • Therefore, commit_ts is guaranteed to be greater than resolved-ts

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions