tikv: support CES keyspace-level transaction safepoint - #2039
Conversation
Signed-off-by: disksing <i@disksing.com>
Signed-off-by: disksing <i@disksing.com>
Signed-off-by: disksing <i@disksing.com>
Signed-off-by: disksing <i@disksing.com>
# Conflicts: # examples/gcworker/go.mod # examples/rawkv/go.mod # examples/txnkv/1pc_txn/go.mod # examples/txnkv/async_commit/go.mod # examples/txnkv/delete_range/go.mod # examples/txnkv/go.mod # examples/txnkv/pessimistic_txn/go.mod # examples/txnkv/unsafedestoryrange/go.mod # go.mod # go.sum # integration_tests/go.mod # integration_tests/go.sum
Signed-off-by: disksing <i@disksing.com>
Signed-off-by: disksing <i@disksing.com>
…-v1-txn-safepoint Signed-off-by: Ping Yu <yuping@pingcap.com>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> Signed-off-by: Ping Yu <yuping@pingcap.com>
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Superseded by #2040, which implements the CES predicate locally and avoids the API-v3 dependency blast while retaining tikv/pd#11100 as the canonical PD helper. |
What problem does this PR solve?
Essential v1 keyspaces advertise keyspace-level GC with
safe_point_version=v2, while client-go only recognizes the nativegc_management_type=keyspace_levelmetadata. The compatibility transaction safepoint loader therefore reads the unified GC key instead of the keyspace-scoped key.What is changed and how it works?
/keyspaces/tidb/{id}/tidb/store/gcworker/saved_safe_point.Stack dependencies
Tests
go test ./tikv -run ^TestCompatibleTxnSafePointPath$ -count=1 -vgopls check tikv/compatible_txn_safe_point_loader.go tikv/compatible_txn_safe_point_loader_test.goThe full
go test ./tikv -count=1currently hits the same mockstore teardown nil-pointer panic inKVStore.updateSafeTSon the clean #2024 stacked base; the focused changed behavior passes.