ArangoDB Java 批处理模式插入性能

ArangoDB Java Batch mode insert performance

我将 ArangoDb 3.0.5 与 arangodb-java-driver 3.0.1 一起使用。 ArangoDB 在 3.5ghz i7 上 运行,配备 24gb ram 和 ssd。

从 Apache Flink 加载一些简单的 Vertex 数据似乎非常缓慢,大约为 1000 vertices/sec。任务管理器显示它 CPU 绑定在 ArangoDB 进程上。

我的连接器正在调用 startBatchMode,迭代 500 次调用 graphCreateVertex(等待同步设置为 false),然后调用 executeBatch

管理界面中的系统资源显示大约为 15000(每秒?),而负载为 运行,并且使用 CPU 用户时间固定为 1。我是 ArangoDB 的新手,不确定如何描述正在发生的事情。非常感谢任何帮助!

罗布

您的表现结果符合预期。 batchMode 的要点是,所有 500 次调用都是一次发送,并仅在一个线程中在服务器上执行。

为了获得更好的性能,您可以在客户端中使用多个线程来创建顶点。更多并行请求将允许服务器使用多个线程。

您也可以使用 createDocument 代替 graphCreateVertex。这避免了对图形的一致性检查,但速度要快得多。

如果您不需要这些检查,您也可以使用 importDocuments 而不是 batchMode + createDocument,这样会更快。