- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JanusGraph 将顶点添加到 cassandra 支持的数据库中,我注意到在使用 (1) JanusGraph java 库提供的 addVertex() 方法添加顶点时存在很大的性能差异与 (2) addV() gremlin 遍历函数。为什么会有这样的差异?
我正在使用 JanusGraph 版本 0.2.0
和 cql
作为存储后端。我创建了一个测试来比较使用三种方法向图形添加和提交顶点所需的时间(以毫秒为单位):(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) 用 JanusGraph 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/
我想将一些数据导入 JanusGraph。 我从 JanusGraph download 获取了最新版本。我打开了 Gremlin 控制台并初始化了入门教程中的默认连接。 gremlin> graph
我有一个正在运行的 JanusGraph 服务器实例,我可以使用 EmptyGraph 进行连接以进行读取和写入。但是我不能使用 EmptyGraph 创建 JanusGraphManagement
JanusGraph:我使用 ConfiguredGraphFactory 创建了一个自定义图形,并且能够使用 gremlin 控制台访问该图形。我如何从我的 Scala 代码访问这个图表? 目前我正
在 Titan 中,我可以使用这个 stackoverflow 帖子获得索引键列表 - https://stackoverflow.com/a/18497954/1647476 .我们改用 Janus
我已经使用 gremlin 控制台创建了一个图表 gremlin> ConfiguredGraphFactory.graphNames ==>MYGRAPH gremlin> ConfiguredGr
我在 Janusgraph 文档中阅读了有关 Janusgraph Cache 的内容。关于事务缓存,我几乎没有怀疑。我在我的应用程序中使用嵌入式 janusgrah 服务器。 如果我只对例如进行读取
我有一个设置,我使用 gremlin-core 库来查询远程 Janusgraph 服务器。数据大小目前适中,但将来会增加。 几天前,我在我的客户端上看到“已超出最大帧长度 65536”错误。我的服务
我试图使用 Scala 探索 janusgraph。 因此,对于给定的顶点 v1 和 v2,我想知道是否存在具有特定属性值的从 v1 到 v2 的有向边并检索该边。 在 gremlin 中,我们通常会
我将 JanusGraph 与 Cassandra 和 ElasticSearch 后端结合使用。我使用以下脚本来创建我的架构和索引。 // Create a Janus Graph instance
我在单个事务中最多可以创建多少个顶点和边,以及如何配置 JanusGraph 服务器堆以向其添加更多内存。提前致谢。 最佳答案 对于每个事务的最大顶点和边,它实际上取决于您的系统。有一个 discus
我有这种行为,第一次调用使用 JanusGraph 查询返回值 JG.query().has("geo_shape", Geo.WITHIN, Geoshape.circle(
我在单个事务中最多可以创建多少个顶点和边,以及如何配置 JanusGraph 服务器堆以向其添加更多内存。提前致谢。 最佳答案 对于每个事务的最大顶点和边,它实际上取决于您的系统。有一个 discus
我正在使用 Janus Graph doc我按照提到的方式提取了它。 ./gremlin.sh 工作正常,它会启动 Gremlin 提示符。 这段代码也能正常工作 graph = JanusGraph
我已经设置了一个由 DynamoDB 支持的 JanusGraph 实例,如 the GitHub docs 中所述。 ,用 Java 创建了一个简单的 API 来测试 CRUD 操作,我开始创建并阅
我正在尝试向 JanusGraph 添加顶点和边,但它似乎没有按预期工作。我使用 Cassandra 和 Elasticsearch 作为后端。我可以添加顶点。我使用下面的代码来测试是否添加了顶点和边
我正在从事的项目目前使用 Neo4j 社区。目前我们处理具有 5-20M 边的 1-5M 顶点,但我们的目标是处理具有 50-100M 边的 10-20M 顶点。 我们正在讨论切换到图形数据库开源项目
我对这两个工具的集成有几个问题。不是技术问题和如何设置(稍后我会很开心),而是更多关于项目过程和方向的问题,因为 JanusGraph 还很年轻。 我正在开始一个新项目,并且已经决定使用 Cassan
嘿,谁能帮我弄清楚如何使用 C# JanusGraph.net 连接到托管多个图形的远程 JanusGraph 服务器并查询特定图形(按图形名称)? 我可以连接到服务器,但我无法查询特定的图形。 va
我在连接到 Solr 的 JanusGraph 时遇到问题:我有以下问题: application.java public static void main(String args[]) {
我正在考虑学习 JanusGraph 以在我的新大项目中使用,但我无法理解一些事情。 Janus 可以像任何数据库一样使用,并且支持“插入”、“更新”、“删除”操作,因此 JanusGraph 会将数
我是一名优秀的程序员,十分优秀!