#分布式优化
与单机相比,分布式SQL计算会带来额外的节点间的通信开销,为了提高性能,减少数据的跨网络传输带来的影响,YashanDB做了以下优化:
增加了PX算子,负责跨网络数据交换,PX有以下类型:
根据运行环境划分:
REMOTE:分布式环境。
LOCAL:单机并行环境。
根据数据交互节点划分:
I2I:一个节点向另一个节点发送数据。
I2N:一个节点向多个节点发送数据。
N2I:多个节点向一个节点发送数据。
N2N:多个节点向多个节点发送数据。
根据数据走向划分:
PX send type:random、hash、broadcast。
PX receive type:random、sort。
为了充分利用每个节点的计算资源,YashanDB优化器会尽量将计算下推到DN(两阶段计算),可以进行两阶段计算的算子包括:
两阶段ORDER BY
两阶段GROUP BY
两阶段DISTINCT
两阶段聚集
两阶段LIMIT
COUNT STOPKEY
通过将小表创建为复制表,减少跨节点Join。