1 日でほぼ 100 万のノードと 2 倍のエッジを追加するソーシャル グラフがあります。そうです、そのストレージがグラフエンジンが実行されているのと同じマシン上にあるという事実により、neo4jグラフは非常に高速であるためです。しかし、以下は、neo4j について皆さんと共有したい経験です。
- リアルタイム クエリには適していません。私たちはツイッターのような社会構造を持っています。ユーザーが自分のタイムラインでフォローしているすべてのユーザーの最新の 20 のアクティビティ (およびそれに関連するアクティビティ) を表示する必要があります。1000人以上フォローしているユーザーもいます。これのために私たちが書いたグレムリン クエリ (興味がある場合は、グレムリン クエリを共有できます) は実際に非常に多くの GC を生成したため、8 CPU と 48 GB RAM のサーバーはフリーズし、サーバーを再起動して再度オンラインにする必要がありました。 .
- 多くの場合、ネットワーク パーティションが観察されました。
- graoh データベースで非常に必要とされる頂点中心のインデックスはありません。
最終的に、gremlin クエリを使用したサーバーのパフォーマンスが大幅に低下したため、データベースをタイタンに変更する必要がありました。
titan では妥当なパフォーマンスが得られており、cassandra をバックエンド ストレージとして使用しているため、スケーリングも非常に簡単です。ただし、ここでgremlinを使用することも良い考えではありません.multigetクエリは非常に書きにくく、multigetがないとクエリは非常に遅くなります。