pd icon indicating copy to clipboard operation
pd copied to clipboard

Split into multi-service architecture

Open rleungx opened this issue 2 years ago • 2 comments

Feature Request

Describe your feature request related problem

Currently, PD has more and more management services. As TiDB clusters are becoming larger and larger, it is increasingly important to ensure the quality of service on the PD. In most large cluster cases, the main bottleneck of PD is CPU resources, and it is difficult to effectively control and isolate the CPU resources of multiple services in the same golang program. Therefore, we need to split these services into individual ones and deploy them independently for management, which is better to control the use and isolation of resources. Also, the microservice architecture is also very suitable for the cloud environment.

Describe the feature you'd like

One of the most important services which PD provided is the TSO service. Deploy it through an independent binary will improve its QoS.

Task

PreWorks

  • [x] https://github.com/tikv/pd/issues/5838 @rleungx
  • [x] Multi-Service Mode
  • [x] Separate Services
    • [x] Provide meta storage interface @rleungx
    • [x] https://github.com/tikv/pd/issues/5836 @binshi-bing
    • [x] https://github.com/tikv/pd/issues/5895 @binshi-bing
    • [x] https://github.com/tikv/pd/issues/5839 @rleungx
    • [x] https://github.com/tikv/pd/issues/5849 @rleungx
  • [x] High availability
    • [x] Each service has a high availability mechanism
    • [x] Client-go discover the right service @lhy1024
  • [x] Compatibility

Teachability, Documentation, Adoption, Migration Strategy

rleungx avatar Dec 08 '22 06:12 rleungx

PTAL @rleungx, The region Informer and storage interface maybe high priority, then the service can decoupling rely on the pd.Server.

nolouch avatar Dec 19 '22 14:12 nolouch

/found customer

seiya-annie avatar Jun 04 '24 02:06 seiya-annie