Workload Group 绑定 Compute Group:实现多业务资源隔离
为什么需要绑定 Workload Group 到 Compute Group
Doris 支持通过 Compute Group 对集群内的 BE 节点进行逻辑分组,形成独立的子集群,从而实现不同业务的计算资源隔离。
在旧版本中,Workload Group 全局生效于所有 Compute Group,导致不同业务被迫共享同一套资源配额配置。例如:
- 业务 A 和业务 B 各自创建了 Workload Group,两者资源配额之和已达 100%
- 业务 A 无法再创建新的 Workload Group
- 两个业务的 Workload Group 配置需求差异显著,但旧架构无法按业务独立管理
为解决此问题,当前版本引入 Workload Group 绑定 Compute Group 机制,允许每个 Compute Group 维护一套独立的 Workload Group 配置。
Compute Group 与 Resource Group 的关系
| 架构类型 | 对应概念 | 说明 |
|---|---|---|
| 存算分离 | Compute Group | 独立子集群的逻辑划分单元 |
| 存算一体 | Resource Group | 与 Compute Group 功能等价 |
在讨论资源管理时,可将两者视为逻辑等价的概念。本文中所有关于 Workload Group 绑定 Compute Group 的说明,同时适用于存算分离和存算一体两种架构。
工作原理
旧版本设计
假设集群中有 Compute Group A(服务业务 A)和 Compute Group B(服务业务 B),以及 group_a、group_b 两个 Workload Group,其资源配额之和为 100%。
在旧版本中,group_a 和 group_b 会在所有 BE 节点上生效,不受 Compute Group 分组限制,如下图所示:

这导致:
- 业务 A 创建
group_a后,资源配额已满,无法再创建新的 Workload Group - 两个业务的 Workload Group 配置相互影响,难以实现差异化管理
当前版本设计
当前版本中,Workload Group 支持绑定到指定 Compute Group,不同的 Compute Group 拥有各自独立的 Workload Group 配置,如下图所示:

使用方法
Doris 中存在默认 Compute Group 机制:新增 BE 节点未指定归属时,该节点自动划入默认 Compute Group。
| 架构类型 | 默认 Compute Group 名称 |
|---|---|
| 存算分离 | default_compute_group |
| 存算一体 | default |
创建 Workload Group
绑定到指定 Compute Group:
CREATE WORKLOAD GROUP group_a FOR compute_group_a PROPERTIES ('cpu_share'='1024');
不指定 Compute Group(绑定到默认 Compute Group):
CREATE WORKLOAD GROUP group_a PROPERTIES ('cpu_share'='1024');
删除 Workload Group
从指定 Compute Group 中删除:
DROP WORKLOAD GROUP group_a FOR compute_group_a;
不指定 Compute Group(从默认 Compute Group 中删除):
DROP WORKLOAD GROUP group_a;
修改 Workload Group 属性
修改指定 Compute Group 中的 Workload Group 属性:
ALTER WORKLOAD GROUP group_a FOR compute_group_a PROPERTIES ('cpu_share'='2048');
不指定 Compute Group(修改默认 Compute Group 中的 Workload Group):
ALTER WORKLOAD GROUP group_a PROPERTIES ('cpu_share'='2048');
ALTER 语句仅用于修改 Workload Group 的属性,不能修改 Workload Group 与 Compute Group 之间的绑定关系。
注意事项
-
绑定关系不可修改:Workload Group 自创建时即归属于固定的 Compute Group,无法在不同 Compute Group 之间迁移。
-
版本升级行为:从旧版本升级到当前版本时,系统会基于已有的 Workload Group,为每个 Compute Group 自动创建同名但 ID 不同的新 Workload Group。例如,若旧版本有两个 Compute Group 且存在
group_a,升级后每个 Compute Group 各自获得一个名为group_a的新 Workload Group,原来未归属任何 Compute Group 的group_a将被自动删除。 -
权限管理不变:Workload Group 的权限鉴权仍通过 Workload Group 名称关联实现,管理方式与旧版本一致。
-
normalWorkload Group 的生命周期:Doris 中存在名为normal的默认 Workload Group。每当新建 Compute Group 时,系统自动为其创建对应的normalWorkload Group;删除 Compute Group 时,关联的normalWorkload Group 也会被自动删除。normalWorkload Group 的生命周期完全由系统自动管理,无需手动操作。