云原生数据仓库TPC-H第一背后的Laser引擎大揭秘
发布日期:2021-05-09 09:12:50 浏览次数:13 分类:博客文章

本文共 13821 字,大约阅读时间需要 46 分钟。

��������� ������| ���������������������������������������������

������ADB PG ���Laser ���������������������

���������ADB PG ������

ADB PG ������������������������������������������������ACID ������������������������������������������

���������������������������������������������������������MPP ������������������������������������������������������������master ���������������������work ���������

 

master ������������������������������������������������������������������������������������������������

MPP ������������������������ADB PG ���master ���������������������������������������������master

���������������������������������������������������������

 

work ���������������������������������������������������������������������������������������������������������

������������������������������������������������Batch ���������codegen ���������������Fusion Scan ������������������������������������������������������������������������������������������3~5 ���������������

 

������������������������������������������������������������������������������������������������������������������

���������������Parquet���ORC ������������������������ADB PG ���������������������������������������

OSS/HDFS ���������������������������������������������������������������������������������������������������������������������

���������������������Laser ������������

������������������PG ������������������������

���������PG ������������������������������������������������������������������������TP ������������������������������������������������������������������������������������

 

���������PG ���������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

 

��������� PG ���������������������������������������������������������������������������������������������������������������������������������������������������������������

 

��������� PG ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

 

���������PG ���������������������������������������������������������������������������CPU ������������

 

 

���������������OLAP ������������

���������ADB PG ������������������������������������������������������������������OLAP ������������

���������

���������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������CPU ���������������������������������������������������cache

���miss������������������������������������������������������������������������������������������������������������������������OLTP ���������������,������������������������������������������������������������������������

 

������������������������������������������Codegen ���������������������������������������������������PUSH ������������������������������������������������������

 

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Codegen ���������������������������������������������������������������������������������������������������������������

 

���������������PUSH ������������������������������������������������������������������������������������������������������������������������Cache miss ���������������������������������������Spark ��� Peloton���

 

ADB PG ���������������������������������������������������������������������������������������������ADB PG ������PG ������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������

������������������������������������������������������������ClickHouse���PG11���Spark���ADBPG������������������������ClickHouse ���ADB PG���PG11 ���������������������������Spark ������

���������������������

 

���������������������ClickHouse ���������������������PG11 ���������������Spark ���������������ADB PG ���������������������������������������������������������join���AGG ���������������������������������group by���hashtable ���������������������������������������������������������������������

 

���������������������ClickHouse ������������������LLVM���PG11 ������������������LLVM���Spark ������Stage Java ������,ADB PG ���������������LLVM ������������������LLVM ������������������������������������������

 

���������������������ClickHouse ���PG11 ���������������������������Spark ������FPGA ���������ADB PG ������IR ������������������������IR ������������������������������������,������������GPU ���������

 

������laser ���������������������������

Laser ���������������������������������������5 ������:

1. ������������������

2. ���������������������

3. JIT ������

4. SIMD ������������

5. FUSION SCAN

������,���������������������������������������������������������������������������������������������������������������������BATCH ������������������������������������������������������������������������������������������������������������������CPU ���������������������

 

���������������������������������������������������������������������������������������������������������mini batch���mini batch ������������������������������������������������������������������������������������������������������������������������������������������������������������

 

������������������������������������JIT ���������������������������LLVM CodeGen ������������������������������������IR ������������������������IR ���������������������������������������������������������������������������������������������������������������������������

 

���������������������������������������������������������������������������������������CPU ���SIMD ���������������������������������������������������������������������������������������������������

 

������������������������������������������FUSION SCAN ���������������������������������������������������������������������������������������������������

 

 

���������������������������

���������������������������������������SUM ������������������������������������������������������������n������������������������n ������������������������������������������������������sum ������������������������������������������������������������������������������������������������2048 ���������������������2048 ���������������������sum ���������

 

���������������������������������������

���������Sum ������������������������n ���������n��2048���������������������

������������������������������������������������������������������batch������������������������SIMD ���������������������������������������������������������������������

���������������������������������������AGG ���JOIN������������AGG ���JOIN ������������������������������������������������������������������������������������������������

 

������������������������������������������������������������������������������������������������������������������������MemoryPool ���������������������������������������������������������������������������������������������������������������������������TPC-H ������������������������������������������Q1 ���������120%���Q18���������190%���

���������SIMD������������

������������������������������������������CPU ���SSE���AVX ���������������������������������512bit ���������������

 

���������TPCH ������������Lineitem ���������������������������������������SIMD ������������������������������������1 ������������������200 ������������������4 ���������������������

���������Just-in-Time ������������

ADB PG ���������������������������CodeGen������������������������CodeGen���������plan���node ������������CodeGen ���������������Executor���CodeGen ������������plan node ������code(IR)���Executor ���������������������������������������������IR ���������������������������������������������������������������������������master ���������������������

 

������������������������������������������������������where a>10 and b<5���������������������������������������������������������������1���a>10���2���b<5���3���and ���������

 

������������LLVM GIT ������������������������������������������������������LLVM ������������������������������������������������

 

���TPCH ������������������������JIT ���������������������������������20%~30%���������������������������,���������������������������������������������

 

���������Fusion Scan ������

Fusion Scan ���������������������������������������������������������������������������������������������������������

 

������������������������������������a ������3 ���b ������6 ���a���c*d ������������������������������������������������������������������a ������3 ���b ������6 ���������������������������������������������

 

Fusion Scan ���������������������������

������������������������������������������a ������b ������������������������������������������������������������������������������������������������������������������������������������������������������������������bitset���������������������������������������a ������������������mini batch ������

 

���������������������project ������������������������������������������������������������������������������c ������d ������������������������������������������������������������������������������������������������������������������c ������d ������������������������������������������mini batch ������������������

 

������������������������������������������������������IR ���������������������������������������������������������������

 

���������������������������������������

���������������������������D���E���F���G ������������

������������������������������������������������������c ������d ������������������������������������IO���������������������������������������������������������c ���d ������������������������������c ���d ������������������������������������������������

 

���������������������������Fusion Scan ���������������block ������������������������������block

������������������������������min ���max������������������min ���max ������where ������������������

������������������������������������������������������block ���������������������������������������block���

 

������Fusion Scan ������������������������������Scan ������������������������3 ���������������������

 

 

���������������������-HashJoin

HashJoin ���������������������������������������Hybrid Hash Join���HashTable ���������������������������������

 

HashJoin ���������������������������������

1. ���������probe ������������������������������Hash ������

2. Hashcode ������������entry ���������������������������������

3. ���������������������������entry ���������������������������������������������������������������������join key���

4. ������join key ������������������probe ���������������������������������������������������������������

 

������������������������������������������������?

 

1. ������������������������������������

2. ������CodeGen ������������������hash code ������

3. ������hashcode ������������������hash table������������������������������

4. ������������������������join ���������������������������������������������������������������������������������������

 

���������������������������������������������������������������������������������

1. ���������������

2. ���������������

 

���������������������

���������������������ADB PG ���������������

 

ADB PG ������������PG ���������������Laser ������������������������������������������������SQL ���pattern ������������������������������������������Laser���������������������������������������������������������������������������������������������������������SQL pattern ������������������������������������������������������laser ���������������

 

Laser ���������������������������������������������������������������������������������������������������������������������������������������������PG ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PGdameon ������������������������������������������������LASER ���������

 

������������������������������stub ���������ExecutorStart���ExecutorRun���ExecutorEnd���

 

���������TPC-H ������

2020 ���5 ���20 ���������������������TPC-H 30TB ������������������������������������������������������������������������SQL Server 2019������������������������290%������������������SQL

Server ���1/4���

 

���������������������������Laser ������������������������������������������������������������������PG ���������������������������������������������������������������������������������������������������������������������������������������������������������JIT ���������������������������������������������������������������Fusion Scan���������������������������������������Fusion Scan���������������������������������������������������������������������������������������SIMD ������������������

���������������������������������

������������������������������������������������������

���������2020 ���12 ���������������������������������������������������������������

���������2020 ���3 ������������������motion ���������

���������2020 ���6 ������������������������������������������������������������������������

���������2020 ���9 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������

上一篇:【OpenYurt 深度解析】边缘网关缓存能力的优雅实现
下一篇:评审恩仇录——IDE也能做代码评审?

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月23日 20时31分38秒