2017-03-12 8 views
0

私は、BitcoinコアレストAPIからデータを読み取り、ブロック、アドレス、およびトランザクションをNeo4jのグラフオブジェクトとして挿入するBlockchain2graph projectの所有者です。多くの挿入後にneo4jが遅くなる

一部のインポート後、プロセスはthe memory is fullまで処理速度が低下しています。私はCSVインポートを使用したくありません。私の問題はパフォーマンスではなく、私の目標は、メモリのためにアプリケーションが止まっていなくても(かなりの時間がかかっても)挿入することです。

私はspring-boot-starter-data-neo4jを使用しています。

私のコードでは、私はsession.clearを何度か試みようとしますが、影響はないようです。 tomcat8を再起動した後、再び高速化します。

答えて

2

あなたのプロジェクトは大量挿入に関するものなので、データを書き込むためにSpring Data Neo4jのようなOGMは使用しません。

セッションでクライアントにデータを保持させたくない場合。

代わりに、BlockChain APIから取得した更新を直接リクエストごとにバッチとして送信することもできます。my blog post for some examples(一部はSDN/Neo4j-OGMでも使用されています)を参照してください。

ボイラープレートを減らすために私の本でOGMが適している個別エンティティ処理(CRUD)のためにSDNを使用することはできます。

しかし、集約、フィルタリング、投影、パスの一致を持つより複雑な読み取り操作では、注釈付きリポジトリメソッドでもCypherを使用し、DTOのリストにマップできる行を返します。

+0

ありがとうございます! session.clearが私がやりたいことをするのに十分でない理由を知っていますか? –

関連する問題