请问哪里能找到src/graph/executor/query下的exector一些介绍

我在研究nebula的执行计划,但是对这些算子的作用理解不是很清楚,请问下有没有相关的介绍

1 个赞

假设您已经看过 https://nebula-graph.com.cn/tags/源码解读/ 的文章了哈,其实大多数算子的左右在文章里有一些揭示,但是不是所有。

我确实也遇到过个别看起来很像,不知道区别的时候,会单独发帖子问(像这样 what is the purpose of Traverse, please? · Discussion #4228 · vesoft-inc/nebula · GitHub

现在我们在 optimizer/*Rule.h 里有了 asciiflow chart 画的比较好,可以方便理解优化规则。

@Lisa 咱们可以考虑约稿一下所有 operator 的介绍文章(或者和我约,立 flag 我来去写:sob:)?这样大家可以比较方便理解所有的算子的含义。

在有更好的集中的资料之前,您可以先单独问具体算子的含义哈?

好的呀,我们稍后聊一下~

executor和plannode强相关,而plannode和优化规则以及validator强相关,validator和语句强相关。

与其把每个executor介绍一次,不如挑lookup或者go语句,从graphd到storaged的每一个流程都详细讲一遍,不是像例子那么简单的一笔带过,而是着重介绍这个步骤的目的是什么,做了哪些事情,可以的话还能说说为什么要这样做。一个流程懂了,其他都是类似的。 :thinking:

不过nebula的代码写的很好 :partying_face:,其实自己花点时间慢慢看也是可以的 :rofl:就是效率没那么高。

我觉得介绍的时候最重要的还是要在开始就用一两句话概括这个步骤的目的是什么,做了什么事,让读者心里有个底,然后再慢慢介绍这是怎么做的。

1 个赞

感谢感谢,重点语句的端到端的 walk through 解析的切入点特别好。

我觉得介绍的时候最重要的还是要在开始就用一两句话概括这个步骤的目的是什么,做了什么事,让读者心里有个底,然后再慢慢介绍这是怎么做的。

这个太同意了!我们准备弄一弄这样的 missing articles :stuck_out_tongue_closed_eyes:

资瓷 :partying_face:

lookup语句可能好一点,比如lookup on xxx where xxx |limit xxx 既涉及到基础的语法解析流程,又触发了优化规则的算子合并,storaged端也足够经典。

go语句的话,validate时要考虑的细节太多了,执行计划也复杂,刚接触代码的容易晕,不如lookup那么简单直接,能让读者的重点放在每个流程上,而不会陷入细节中。 :thinking:

1 个赞

好滴好滴,记下啦

谢谢几位的回复,我确实没有看过 https://nebula-graph.com.cn/tags/源码解读/ 这里的文章,因为刚刚来到社区,对有哪些信息应该优先了解还不太熟悉。我会先去看一下。

另外,我觉得@sworduo的建议很好,我也是在分析plannode,对里面的过程看着似是而非,所以想来问一下,如果有一片这样的讲解的文章那会起到不少的帮助。非常期待。

1 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。