-
Notifications
You must be signed in to change notification settings - Fork 499
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
Support heterogeneous design #2240
Comments
We decide to reuse the existing Record the original solution here: DeprecatedDescriptionCurrently, the spec for the However, as a distributed database with clear and multilayers, the components in each layer could be different from For example, as the SQL layer, tidb components could be composed of multiple instances with different resource requests Add 2 new CRD as For type TiKVGroup struct {
Spec TiKVGroupSpec
Status TiKVGroupStatus
}
type TiKVGroupSpec struct {
TiKVSpec
ClusterName string
}
type TiKVGroupStatus struct {
TiKVStatus
} CategoryCloud TiDB ValueSupport heterogeneous structured TidbCluster on Kubernetes TODO lists
Documentions |
@mikechengwei You can take this issue if it's OK. |
/assign |
@cofyc Please also help review the solution here #2240 (comment) |
can you make an update to the proposal here ? |
OK. |
SGTM |
This issue is a sub-item of pingcap/tidb#18374, no need to be directly related in Longterm board. |
@mikechengwei Thanks a lot for your contribution! |
Description
Currently, the spec for the
TidbCluster
describes a group ofPD
/TiKV
/TiDB
instances.For each component, the spec is the same for all of the Pods.
This design is easy to use and also covers the most cases for using the TiDB cluster.
However, as a distributed database with clear and multiple layers, we may need to deploy the component with different configurations to meet the different requirements.
For example, as the SQL layer, the TiDB component could be composed of multiple instances with different resource requests and configurations to handle the different workloads (AP/TP query).
For the storage layer, the TiKV component could be composed of multiple instances with different store labels which determine the data distribution among different instances.
And this is also useful for the auto-scaling case, where we may want to scale out TiDBs/TiKVs with different resources or configurations from the original TidbCluster.
To implement the above proposal, we can:
spec.pd
,spec.tidb
, andspec.tikv
optional in the TidbCluster CR, e.g. change them to pointer.In this case, we can:
spec.tikv
+spec.pdAddress
to deploy a TiKV cluster with different configurations and join the existing TiDB Clusterspec.tidb
+spec.pdAddress
to deploy a TiDB cluster with different configurations and join the existing TiDB ClusterCategory
Feature
Value
Support heterogeneous structured components of TiDB Cluster on Kubernetes
TODO lists
P0 features
spec.pd
,spec.tidb
, andspec.tikv
optional in the TidbCluster CR, e.g. change them to pointer. Make the spec.pd, spec.tidb, and spec.tikv optional in the TidbCluster CR #2971spec.pd
,spec.tidb
, andspec.tikv
change. TidbCluster controller update for the spec.pd, spec.tidb, and spec.tikv change #2973P1 features
Workload Estimation (P0 features)
30
Time
DevProgress: 100%
QAProgress: 100%
DocProgress: 100%
GanttStart: 2020-07-20
GanttDue: 2020-09-30
Documentions
Project
The text was updated successfully, but these errors were encountered: