租户在每个节点上能够创建 Tablet 个数的上限由配置项和租户内存共同决定,其计算公式为 (MEMORY_SIZE/1GB) * _max_tablet_cnt_per_gb。
_max_tablet_cnt_per_gb 为租户级隐藏配置项,用于配置租户 Unit 中每 1GB 内存支持的最大 Tablet 数,取值范围为 [1000, 50000),默认值为 20000。该配置项修改后立即生效,不需要重启 OBServer 节点。
用户建表,迁移等流程中,存储层在每次创建新 tablet 时,会根据租户 UNIT 的内存规格(单位GB)以及本配置项的乘积,计算当前可稳定支持的最大 tablet 数量。若新建 tablet 超过最大数量,则拒绝新建。返回的错误码复用已有的 OB_TOO_MANY_PARTITIONS_ERROR。
示例如下:
用户的规格是 2C4G。其中 1G 是 meta 租户,3G 是正常租户。假设 _max_tablet_cnt_per_gb 配置为 20000,那么对于该用户,可以支持的最大tablet 数量是:(3/1) * 20000 = 60000 个 tablet。
使用示例:
alter system set _max_tablet_cnt_per_gb = 20000;
适用版本
OceanBase V4.x 版本。