RootService具体负责哪些任务?
在 OceanBase 的分布式架构中,RootService(简称 RS)是集群的总控服务,扮演着集群管理和协调的核心角色。它主要负责以下核心任务:
1. 集群资源与生命周期管理 RootService 负责整个集群的初始化、启动和关闭,以及管理服务器(OBServer)节点的生命周期。这包括节点的上下线、心跳检测、新增和删除等。此外,它还负责租户的创建和资源分配,管理 Region、Zone、Resource Pool、Unit 等元信息。
2. 负载均衡与数据分布调度 为了保证集群的高效运行,RootService 会计算各个资源单元和节点的负载情况。它决定 Unit 在多台机器间的分布,并发起分区副本的迁移任务和 Leader 切换任务,以实现集群级别的负载均衡和数据请求的均匀分布。
3. 容灾与高可用保障 RootService 通过自动复制、迁移等手段,保证日志流分布和类型最终与用户指定的 Locality(本地化部署策略)保持一致。同时,它会根据特定规则(如 Primary Zone)指导分区的 Leader 选举,确保数据的高可用性。
4. Schema 管理与 DDL 协调 当集群接收到 DDL(数据定义语言)请求时,RootService 负责调度和处理这些请求,并生成新的 Schema,维护集群元数据的一致性和可用性。
5. 存储引擎增量数据管理 RootService 负责管理 OceanBase 的增量数据。当内存使用率超过设定阈值后,它会触发冻结操作,将增量数据转储到磁盘,或者与基线数据进行合并落盘(如每日合并),以维持 LSM-Tree 存储引擎的正常运转。
6. 集群级别参数变更 RootService 负责将参数的变更发往各个节点的 SQL 引擎执行,从而实现全局统一的集群级别参数管理。