gydtep 发表于 2020-3-21 20:00:04
本次发布的Odyssey计算引擎,主要提升了Segment的执行性能。gydtep 发表于 2020-3-21 20:38:11
在存储层面,Odyssey计算引擎与ADB PG原生的Heap表、AOCS表、AORO表均完全兼容,复用原生存储结构和存储访问接口,Odyssey专注于执行层。gydtep 发表于 2020-3-21 21:08:34
Odyssey通过hook接入ADB PG,成为对用户透明的新引擎。gydtep 发表于 2020-3-22 09:51:42
Odyssey计算引擎在算法层进行了重新设计,采用模块化内存分配、最大化重复利用已分配内存,大大减少了内存分配的次数。gydtep 发表于 2020-3-22 14:21:37
在ADB PG中,一条SQL会被转化成一个树形执行计划。数据库传统的传统火山模型,是父节点驱动子节点执行,gydtep 发表于 2020-3-22 17:17:32
而Odyssey计算引擎以batch为单位进行数据传递。一个Batch包含多行数据(通常是数千行数据),采用列优先格式进行数据存储。gydtep 发表于 2020-3-22 18:25:25
例如在Hash Join建哈希表时,一次插入一行数据,ADB PG的原生执行引擎,会在每行数据的插入之前为这一行分配内存。gydtep 发表于 2020-3-22 18:39:16
例如Hash表有1M行,每行32字节,会导致1M个32字节的碎片化内存分配。gydtep 发表于 2020-3-22 20:43:43
不仅分配过程非常耗时,后续的管理、追踪、释放过程也会非常耗时。gydtep 发表于 2020-3-22 23:06:34
有别于PostgreSQL 11中表达式的codegen,Odyssey计算引擎是对整个算子进行codegen。