`getOracleFuture` won't retry internally
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Bug Report
https://github.com/pingcap/tidb/pull/35376 changed the behaviour for getting TSO. Previously, we used https://github.com/pingcap/tidb/pull/35376/files#diff-cda21674d674295dde958bfdfe5d6ecd21ae07fd310fa907920e1214108d974fL754 to get the timestamp, which will retry internally. After this PR, we use an asynchronous way to get the timestamp. If the PD leader changed, it will return an error directly instead of retrying.
Contributor guide
Research direction
Start at getOracleFuture and compare its asynchronous timestamp path with the earlier retrying behavior described in PR 35376. Trace how a PD leader change is handled; done means the operation retries internally instead of returning the leader-change error immediately.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100