Java で Neo4j データベースを使用しており、大量のノードを配置する必要がありますが、メモリ不足エラーが発生しています。次のように1000ノードごとにトランザクションをコミットすることで、メモリ不足を遅らせることができました。
Transaction tx = graphDb.beginTx();
try
{
try (BufferedReader br = Files.newBufferedReader(Paths.get("page_links_en.ttl"), StandardCharsets.UTF_8)) {
int n = 0;
for (String line = null; (line = br.readLine()) != null;) {
n++;
Node node = graphDb.createNode();
node.setProperty("uri",line);
if((n % 1000) == 0){
tx.success();
tx.close();
tx = graphDb.beginTx()
}
}
}...
残念ながら、これはメモリ不足エラーが発生する時間を遅らせただけです。この問題はノードの作成に関係しており、アプリの他の部分に他のメモリ リークはないと確信しています。そこで、この問題について助けを求めたいと思います。
前もって感謝します。