MatrixOne是一款面向未来的超融合异构云原生数据库管理系统,由矩阵起源公司研发,致力于开源。该数据库通过统一分布式数据库引擎,灵活支持OLTP、OLAP、Streaming等不同工作负载,可在公有云、自建数据中心和边缘节点上无缝部署。
MatrixOne整体架构
MatrixOne整体架构包括文件服务、日志服务、数据节点、计算节点、HA keeper和TAE(Transactional Analytical Engine)。其中:
- TAE 作为核心OLAP引擎,负责处理分析型查询。
- 数据节点 和 计算节点 分别负责数据存储和计算任务。
- HA keeper 提供高可用保障。
MO的OLAP计算引擎
OLAP所需SQL能力
MatrixOne的OLAP引擎支持多表join、子查询、窗口函数、CTE/Recursive CTE、UDF等SQL功能。
子查询展开
- TPC-H测试案例:Q2, 4, 11, 16, 17, 18, 20, 21, 22。
- HyPer与MatrixOne对比:
- HyPer展开前:直接执行子查询。
- HyPer展开后:将子查询转换为临时表。
- MatrixOne展开前:与HyPer类似。
- MatrixOne展开后:将子查询转换为CTE形式,优化执行效率。
优化器
- MatrixOne优化器:
- 减少IO:通过列裁剪和谓词下推。
- 谓词推断:支持q7、q19等查询。
- Runtime filter:优化q18查询。
- Join order:
- 采用改进的贪心法,优先与过滤性好的维度表join。
- 子树之间使用经典Join order算法。
执行模型
- Push模型:基于Operator组成流水线Pipeline,以数据为中心调度。
- Morsel-Driven Parallelism:以Task Queue为核心,每个数据块称为Morsel,支持Work Stealing机制。
TPC-H性能测试结果
MatrixOne在TPC-H测试中表现出色,通过谓词推断和Join order优化,显著提升查询性能。
加入MatrixOne Beta Program
MatrixOne推出Beta Program,用户可通过扫描小程序码注册,与架构师沟通并加入社区,共同优化产品和性能。