Add Feature Gate for TiKV that doesn't depend on incremental semver
- Dominant language
- Go
- Stars
- 1.2k
- Forks
- 783
- Avg merge
- 5d 21h
- Merged PRs (30d)
- 36
Description
## Feature Request
Required in: https://github.com/tidbcloud/cloud-storage-engine/issues/4052
### Describe your feature request related problem
As next-gen / TiDB-X releases in an much faster cycle, without a well-managed incremental version number, it becomes a problem how a component can check whether a feature (that requires all nodes to be new enough) can be enabled.
As we currently still do not have any recent plan to standarize the version number, while at the same time in-memory pessimistic lock requires some way to ensure the safety to be enabled, we need a feature gate mechanism that doesn't depend on the version number.
### Describe the feature you'd like
For features that requires such a mechanism, TiKV reports a list of the supported features to PD via `PutStore` RPC, and receive a merged list of allowed features via `StoreHeartbeat` response. Then PD is responsible to:
* Receive the list of supported features from each store
* Calculate the list of allowed feature of the cluster, where different features may potentially have different rules in the calculation.
* Return the allowed features to each store.
### Describe alternatives you've considered
\-
### Teachability, Documentation, Adoption, Migration Strategy
\-
Contributor guide
Assessment
This issue has not been assessed yet.