Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor GC related PD APIs #8978

Open
11 tasks
MyonKeminta opened this issue Jan 6, 2025 · 0 comments
Open
11 tasks

Refactor GC related PD APIs #8978

MyonKeminta opened this issue Jan 6, 2025 · 0 comments
Labels
type/development The issue belongs to a development tasks

Comments

@MyonKeminta
Copy link
Contributor

MyonKeminta commented Jan 6, 2025

Development Task

This is the majority part of the refactoring task pingcap/tidb#58720.

A set of new APIs for GC will be implemented which is expected to provide a more comprehensible semantics and recude potential misuses. This will also be the basis for implementing a planned feature name protected snapshots.

Subtasks

Note that protected snapshots won't be included in this phase and will be another separated work after finishing the refactoring.

  • Add new RPC calls to kvproto Add new GC API pingcap/kvproto#1288
  • Expose the if-then-else transaction interface of etcd to kv.Base layer, parallel to the existing kv.Base.RunInTxn.
  • Add implementation new RPC interfaces. (may need to further breakdown into muitiple subtasks later)
    • Basic API set.
    • Support controlling disabling physical GC operations on TiKV (required by BR)
    • Support watching global GC state changes (including all keysapces; maybe required by keyspace-level-GC for running GC in TiKV)
  • Implement the new set of methods on pd.Client interface type.
    • Basic API set
    • Support controlling disabling physical GC operations on TiKV
  • New pd-ctl commands gc-state for replacing the current service-gc-safepoint command.
  • Mark the old API deprecated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/development The issue belongs to a development tasks
Projects
None yet
Development

No branches or pull requests

1 participant