概述
Facebook Velox 是一个针对 SQL 运行时的 C++ 库,旨在统一 Facebook 各种计算流,包括 Spark 和 Presto,使用推的模式、支持向量计算。
Velox 接受一棵优化过的 PlanNode
Tree,然后将其切成一个个的线性的 Pipeline
,Task
负责这个转变过程,每个 Task 针对一个 PlanTree Segment。大多数算子是一对一翻译的,但是有一些特殊的算子,通常出现在多个 Pipeline 的切口处,通常来说,这些切口对应计划树的分叉处,如 HashJoinNode
,CrossJoinNode
, MergeJoinNode
,通常会翻译成 XXProbe 和 XXBuild。但也有一些例外,比如 LocalPartitionNode
和 LocalMergeNode
。