1 分布式架构
- GaussDB基于MPP (Massively Parallel Processing) 并行架构
- Streaming流式计算框架

2 分布式计划
- CN轻量化(light proxy)
- FQS( fast query shipping )
- STREAM计划
- XC计划
|----------|--------------------------|-----------------------|
| 计划类型 | 场景 | 原理 |
| CN轻量化 | 可以直接在一个DN执行 | 直接下发SQL语句给DN |
| FQS | 语句可以完全下推DN执 行, DN之间不需要交互 | 需要走执行器逻辑下发给DN |
| STREAM | 需要DN之间交互, CN只 汇总数据 | 在CN上生成计划,下发计划给DN执行 |
| XC | 适用于所有场景 | 部分语句下推DN执行,无法下推的在CN执行 |
3 计划生成
1)计划生成主要是查询的路径树 到计划树结构转换的过程, 在分布式场景下对关联****join 、聚集操作Agg有特殊的生成逻辑
2) 当join列与分布列不一致时,需要网络stream节点,可能生成的路径:
t1 HASH BY (c1), t2 HASH BY (c2)
SELECT * FROM t1 JOIN t2 ON cx=cy;

如下:每一种策略都有可以执行,根据最下层AGG过滤元组的数量有关。

4 不支持下推的
- 1)根据函数属性判断下推
IMMUTABLE:忽略shippable属性,可以下推
STABLE:判断shippable,受限下推
VOLATILE:判断shippable,受限下推
2)不支持下推的语法
SQL子句中存在使用RETURNING
聚集函数使用ORDER BY、COUNT(DISTINCT expr) 、expr中的列不支持重分布
数组表达式