1

データは 300 ~ 500 TPS のレートで継続的にシステムに送信されます。次のスキームでneo4jにインポートする必要があります。

  1. N ノードが存在しない場合は、作成します
  2. 関係 N-[rel:rel_type]->X が存在しない場合は、作成します
  3. 増加相対重量

RESTバッチを使用して問題を解決することは不可能のようです。さまざまなサイファー クエリは、多くの小さなトランザクションを生成するため、長すぎます。

Gremlin ははるかに高速に動作します。gremlinスクリプトのパラメータを配列に集めてバッチで実行します。しかし、300TPSの速度にはほとんど到達できませんでしたが.

それに加えて、クエリのフローが最大 500 TPS になることに言及する必要があります。

START N=node(...) MATCH N-[rel:rel_type]->X return rel.weight,X.name;

ヒープ サイズは 5 Gb に設定されています。追加オプション:

-XX:MaxPermSize=1G -XX:+CMSClassUnloadingEnabled -XX:+UseParallelGC -XX:+UseNUMA

この種のデータをインポートするための最適な方法と構成は何ですか?

4

1 に答える 1

3

着信ノードが存在し、他のノードへの関係があるかどうかを確認するには、create unique 構文を使用できます。

START n=node:node_index(newNode={N})
CREATE UNIQUE n-[:REL_TYPE]->x ;

関係の重みを自動的にインクリメントするには、次のようなものを想定します(ただし、これに関する保証はありません。おそらくもっと高速な方法があります)。

START n=node:node_index(newNode={N})
CREATE UNIQUE n-[rel:REL_TYPE]->x
SET rel.weight = coalesce(rel.weight?,0) +1
于 2013-03-11T08:05:30.280 に答える