2016-09-14 17 views
0

私はarangoDb 3.0.5とarangodb-java-driver 3.0.1を使用しています。 ArangoDBは3.5GHzのi7で24GBのRAMとssdで動作しています。ArangoDB Javaバッチモードの挿入パフォーマンス

Apache Flinkからのいくつかの単純な頂点データをロードするのは、非常にゆっくりと進み、ほぼ1000頂点/秒です。タスクマネージャは、ArangoDBプロセスでCPUがバインドされていることを示します。

私のコネクタはgraphCreateVertex(同期がfalseに設定されるのを待ちます)を500回繰り返してからexecuteBatchを呼び出して、startBatchModeを呼び出しています。

管理インターフェイスのシステムリソースは、負荷が実行されている間に約15000(1秒あたりに?)を表示し、CPU時間を1時間に固定して使用します。私はArangoDBの新人ですし、何が起こっているのかをどのようにプロファイルするのか分かりません。どんな助けも大変ありがとう!

ロブ

答えて

1

パフォーマンスの結果は予期したとおりです。 batchModeを使用すると、500の呼び出しはすべて1つのスレッドで送信され、1つのスレッドのみでサーバー上で実行されます。

パフォーマンスを向上させるために、クライアントで複数のスレッドを使用して頂点を作成することができます。より多くのリクエストを並行して実行すると、サーバは複数のスレッドを使用できます。

graphCreateVertexの代わりにcreateDocumentを使用することもできます。これは、グラフの一貫性チェックを避けますが、はるかに高速です。

これらのチェックが不要な場合は、さらに高速なbatchMode + createDocumentの代わりにimportDocumentsを使用することもできます。

+0

ありがとう、importDocumentsメソッドは理想的です。特に、importOptionsを使用すると、エラー、重複などで動作を設定できるようになります。パフォーマンス番号をできるだけ早く取得してください。また、頂点だけでなく、エッジでも機能しますか?したがって、エッジは_from/_to属性を持つドキュメントですか? – Arkay

+0

importDocumentsはスレッドごとに約200,000(単純)のドキュメントで実行されます。 – Arkay

+0

はい、エッジは_fromと_toのドキュメントなので、importDocumentsも機能します。 – mpv1989

関連する問題