基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
Table Group
更新时间:2023-07-18 17:25:58
OceanBase 数据库支持通过设置 Table Group 来配置数据的分布。
什么是 Table Group
Table Group是一个逻辑概念,它描述的是 Table 的一个集合。属于该集合的所有 Table,均需要满足如下约束,即集合中的所有 Table 必须拥有相同的 Locality(包括副本类型、个数及位置)、相同的 Primary Zone(包括 Leader 位置及其优先级)和相同的分区方式。属于同一个 Table Group 的 Table,每个 Table 都拥有相同数量的分区(Partition)。
什么是 Partition Group
假设存在一个 Table Group TG0,TG0 中包含 k 个 Table,名称依次为 T1、T2...Tk。假设每个 Table 都包含 m 个分区,给这些分区标号如下:
T1表的全部分区:P11, P12, P13, P14 ... P1mT2表的全部分区:P21, P22, P23, P24 ... P2mT3表的全部分区:P31, P32, P33, P34 ... P3m...
Tk表的全部分区:Pk1, Pk2, Pk3, Pk4...Pkm
将偏移量相同的一组分区称为一个 Partition Group,则 TG0 中包含 m 个 Partition Group,将这些 Partition Group 的名称分别命名为 pg1、pg2、pg3...pgm,则各 Partition Group 包含的分区如下:
pg1包含的分区:P11、P21、P31、P41 ... Pk1pg2包含的分区:P12、P22、P32、P42 ... Pk2pg3包含的分区:P13、P23、P33、P43 ... Pk3...
pgm包含的分区:P1m、P2m、P3m、P4m ... Pkm
Partition Group 的使用
根据上面的示例,Table Group TG0 中共包含 pg1、pg2、pg3 ... pgm 等 m 个 Partition Group。OceanBase 数据库假设,处于同一个 Partition Group 的多个分区有较大概率在同一个事务中被修改。为使同一个事务的修改尽量发生在同一个 OBServer 上,减少分布式事务发生的概率,RootService 会将属于同一个 Partition Group 的分区尽量调度到同一个 OBServer 上去,即:
pg1的 k 个分区 P11、P21、P31、P41 ... Pk1 会被尽量调度到同一个 OBServer 上。pg2的 k 个分区 P12、 P22、P32、P42 ... Pk2 会被尽量调度到同一个 OBServer 上。pg3的 k 个分区 P13、P23、P33、P43 ... Pk3 会被尽量调度到同一个 OBServer 上。...
pgm的 k 个分区 P1m、P2m、P3m、P4m ... Pkm 会被尽量调度到同一个 OBServer 上。