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
,这样会更快。
我将 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
,这样会更快。