gpt4 book ai didi

graph-databases - 为什么 JanusGraph 的 addVertex() 比具有图遍历的 addV() 慢得多?

转载 作者:行者123 更新时间:2023-12-02 03:16:38 24 4
gpt4 key购买 nike

我正在使用 JanusGraph 将顶点添加到 cassandra 支持的数据库中,我注意到在使用 (1) JanusGraph java 库提供的 addVertex() 方法添加顶点时存在很大的性能差异与 (2) addV() gremlin 遍历函数。为什么会有这样的差异?

我正在使用 JanusGraph 版本 0.2.0cql 作为存储后端。我创建了一个测试来比较使用三种方法向图形添加和提交顶点所需的时间(以毫秒为单位):(1) addV() gremlin 函数,(2) addV() gremlin 函数后跟 next() 步骤以获取新创建的顶点,以及 (3) JanusGraph addVertex() 方法。我从一个完全空的图形存储开始。我使用的代码可以在下面找到。

final Builder builder = JanusGraphFactory.build()
.set("storage.backend", "cql")
.set("storage.hostname", Config.get(CommonConfig.cassandra_host));

final JanusGraph graph = builder.open();

long nowMillis = TimeUtils.nowMillis();
graph.traversal().addV("myLabel");
graph.traversal().tx().commit();
System.out.println("(1) - Add vertex traversal only took " + (TimeUtils.nowMillis() - nowMillis) + " millis");

nowMillis = TimeUtils.nowMillis();
graph.traversal().addV("myLabel").next();
graph.traversal().tx().commit();
System.out.println("(2) - Add vertex traversal and next took " + (TimeUtils.nowMillis() - nowMillis) + " millis");

nowMillis = TimeUtils.nowMillis();
graph.addVertex("myLabel");
graph.traversal().tx().commit();
System.out.println("(3) - Add vertex method took " + (TimeUtils.nowMillis() - nowMillis) + " millis");

这是运行此命令的示例输出:

(1) - Add vertex traversal only took 15 millis
(2) - Add vertex traversal and next took 739 millis
(3) - Add vertex method took 682 millis

这向我暗示,(3) 用 Ja​​nusGraph addVertex 添加与 (2) 类似,但我不明白为什么时差如此之大。是什么导致 (2) 和 (3) 的运行时间比 (1) 长一个数量级?

最佳答案

您正在测试的第一部分 Gremlin 实际上并未创建顶点。您只是在测量 Traversal 对象的创建,但实际上不是 iterating it .另外两个实际上在图中创建了一个 Vertex 对象。一般建议不要使用 Graph.addVertex(),因为它不是以用户为中心的 API - 它适用于像 JanusGraph 这样的图形提供者。仅使用 Gremlin 语言与您的图形进行交互,这将为您提供最广泛的代码可移植性。

关于graph-databases - 为什么 JanusGraph 的 addVertex() 比具有图遍历的 addV() 慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55926637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com