Star

nebula的物理执行是否支持向量化?

AP系统(DorisDB, Clickhouse, Snowflake)的执行, 向量化可提升查询性能数倍, 比如甚至一个数量级. nebula当前和今后有没有支持向量化的执行引擎? 在图查询的场景下, 向量执行是否有必要支持?

1赞

@yee @dutor

向量化是我们未来考虑的一个优化点,nebula-storage 的接口支持 batch 处理,query engine 这边在处理这些 vertex/edge 的 batch 时可以做些 vectorize 的优化,当然这里需要改造一下 nebula storage 的返回数据的格式,比如一个 vertex 上相同 edge type 的 edges 的 properties 可以按返回,这样 graph 层向量化处理起来就简单些。

目前的执行引擎每个算子都是基于异步的接口来实现,还不能很好的实现算子间的 pipeline 操作,后续我们会持续的优化这块实现,包括调度。到时 vectorize 和 pipeline 结合着做效果应该会更好。

向量化这块第一步主要涉及到现有一些 expression 的改造,如果开始着手这块的优化,我们会把对应的 framework 搭建好,这样社区就可以参与其中一起贡献了。

以后做图分析场景时,面对大数据量的场景,向量化的优化我认为还是很有必要的。感谢你对nebula的关注,也希望以后我们可以一起参与到这块的实现中。

2赞

浙ICP备20010487号