摘要:
最近在分析将X100引擎的处理做更为精细化的处理, 一个非常经典的场景以及算子便是聚合的处理。
本文对聚合要面临的问题做思考. 其中将视角切换为将mysql列存储的聚合做X100引擎的处理。
X100引擎:
2023-04-13 MonetDB/X100: Hyper-Pipelining Query Execution_禅定悟世的博客-优快云博客
mysql列存储的聚合处理:
面临问题:
- 对列数据的访问方式导致难以在多线程切片时做到线程安全
- 聚合使用的hash表的key, 直接数据拷贝grouping的列
- 采用了经典的火山模型
导致的困境:
- 列数据横向切片的困难, 导致了无法做到线程并行
- 突入表现在
- 线程安全, 临界区界定模糊, 导致在访问数据时的错误
- 一些数据类型在访问时候计算, 比如decimal, 导致多个线程同时修改同一份数据
- 聚合的hahs表使用grouping列的值当作