tikv / tikv/pd

Add Feature Gate for TiKV that doesn't depend on incremental semver

Open
#10,204 0 comments 0 reactions 0 assignees View on GitHub
type/feature-request
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.