數據以300-500 TPS的速率連續進入系統。我需要導入其與下面的方案來的Neo4j:Neo4j有條件批量導入
- 如果N節點不存在,則創建它
- 如果該關係N- [REL:rel_type] - > X不存在,則創建
- 遞增相對權重
使用REST批處理似乎不可能解決問題。 不同的密碼查詢太長,因爲它們產生很多小事務。
Gremlin的工作速度更快。我爲數組中的gremlin腳本收集參數並將其作爲批處理執行。但即使我幾乎無法達到300 TPS的速度。
我應該指出,除了將有疑問的流動〜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
導入此類數據的最佳方式和配置是什麼?
您是否嘗試過使用沒有使用密碼或gremlin的REST批次插入?該批處理在單個事務上運行,並且我獲得了相當不錯的性能(特別是在插入的進程與db在同一個框中時) – RaduK 2013-03-11 10:08:12