0

Dgraph 论文中,提到实体在服务器之间随机分片,并且它们自身携带与其他实体的关系。这导致图查询的中间步骤中的高扇出结果集导致服务器上的广播和执行连接的高延迟。

我不明白这里扇出的含义。

我尝试从基础知识中理解,这就是我发现的:

  • 查询中的大量扇出请求会导致网络拥塞、尾部延迟和 CPU 限制等问题。点击这里查看论文。
  • 扇入是对调用其他函数或方法(例如 X)的函数或方法数量的度量。扇出是函数 X 调用的函数的数量。它用作基于调用图的指标。点击这里查看来源。

我不确定上述点如何与 Dgraph 论文中讨论的基于实体的图相关。是不是实体与其他实体有很多关系,所以一个实体有很多边?

4

1 回答 1

0

简而言之:是的,在某些情况下,一个实体可以附加许多边。

在第一篇论文中,分片基于谓词“lives-in”和“eats”。在这个描述中,所有“存在”的数据都在一个分片中,所有“吃掉”的数据都在另一个分片中,论文说:“假设最坏的情况是集群如此之大,每个分片都存在于单独的服务器。”

现在,考虑一个包含多个谓词的查询,每个谓词都在自己的分片中,并且每个分片都位于不同的服务器上。

Find any person 
    that lives-in ???, 
    that eats ???, 
    that drinks ???,
    that drives ???,
    that reads ???

随着谓词数量的增加(即被询问的分片数量),我们看到了论文所描述的高扇出。集群“广播”的数量显着增长,导致查询延迟成比例增长。

于 2021-05-12T14:36:05.537 回答