0

使用 - 海王星引擎:1.0.5.1,Apache Tinkerpop:3.5.2

我的问题是关于顶点移除的性能 - 它与顶点的加载无关。

我们有一个 cron 作业可以清除有限数量(1000)的“过期”顶点。

我们获取并存储要删除的顶点在一个集合中。

然后我们通过 gV([vertices]).sideEffect(drop()).next() 删除这些。

这工作正常。

所有要删除的顶点将有 1 个 inE 和 1 个 outE。

当删除链接的顶点时,这些边显然会自动删除。

我想知道如果我们先抓住并移除边缘,然后移除顶点,海王星(在引擎盖下)是否会更有性能。

只是想知道是否有人(主要使用 Neptune,但它也可能是其他图形数据库的“东西”)已经研究过这个并且有任何确凿的证据。

非常感谢

4

1 回答 1

1

就使用 Amazon Neptune 而言 - 如果您只是执行 1,000 个顶点的单线程下降,其中每个顶点只有一个事件边,那么您正在做的事情很好。如果您以多线程方式删除数千个(或更多)顶点,则首先删除边可以避免冲突,因为不同的线程可能会尝试在数据库中的同一对象上获取锁。在这种情况下,为了避免冲突并因此避免重试,首先删除边缘可以提高性能。

于 2022-02-28T14:32:39.167 回答