【问题标题】:ArangoDB Java Batch mode insert performanceArangoDB Java Batch 模式插入性能
【发布时间】:2016-09-15 20:06:12
【问题描述】:

我正在使用 ArangoDb 3.0.5 和 arangodb-java-driver 3.0.1。 ArangoDB 运行在 3.5ghz i7 上,配备 24gb 内存和 ssd。

从 Apache Flink 加载一些简单的顶点数据似乎非常缓慢,大约为 1000 个顶点/秒。任务管理器显示 ArangoDB 进程受 CPU 限制。

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

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

罗伯

【问题讨论】:

    标签: arangodb


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,importDocuments 方法看起来很理想,特别是考虑到 importOptions 允许我设置错误、重复等行为。我会尽快返回性能数据。 with 也适用于边和顶点吗?因此,边缘是具有 _from/_to 属性的文档?
    • importDocuments 每个线程运行大约 200,000 个(简单)文档,更好,谢谢!
    • 是的,边是带有 _from 和 _to 的文档,所以 importDocuments 也可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多