web-dev-qa-db-ja.com

誰かがneo4j対titanを試しました-長所と短所

Neo4jとTitanの優れた比較を提供したり、指摘したりできますか?私が見ることができる1つのことは、スケールの観点からです-Titanはスケールアウトであり、cassandraのような基盤となるスケーラブルなデータストアを必要とします。 Neo4jはHA専用であり、独自の組み込みデータベースがあります。他の長所と短所はありますか?特定のユースケース。 (タイタンは現在どこでも使用されていますか?)

次のリンクもあります: http://architects.dzone.com/articles/16-graph-databases-compared グラフデータベース。ただし、Neo4jとTitanの長所と短所はあまりありません。

62
DevD

1日で約100万のノードと2倍のエッジを追加するソーシャルグラフがあります。はい、neo4jグラフから始めました。はい、グラフエンジンが実行されているのと同じマシン上にそのストレージがあるため、非常に高速です。しかし、neo4jについて共有したい経験を次に示します。

  1. リアルタイムクエリには適していません。 Twitterのようなソーシャル構造があります。ユーザーがタイムラインでフォローしているすべてのユーザーの最新の20個のアクティビティ(および関連するアクティビティ)を表示する必要があります。 1000人を超えるユーザーをフォローしているユーザーがいます。このために作成したgremlinクエリ(興味がある場合はgremlinクエリを共有できます)は実際には非常に多くのGCを生成し、8 cpuおよび48 gb ramのサーバーがフリーズするため、サーバーを再起動してオンラインに戻す必要がありました。
  2. 多くの時間ネットワークパーティションが観察されました。
  3. Graohデータベースに必要な頂点中心のインデックスはありません。

最終的に、gremlinクエリを使用してサーバーのパフォーマンスが大幅に低下するため、データベースをtitanに変更する必要がありました。

Titanでは、バックエンドストレージとしてcassandra=を使用しているため、合理的なパフォーマンスが得られ、スケーリングも非常に簡単です。書くのがく、multigetなしではクエリが非常に遅くなります。

26
user2772346

グラフデータベースを探索しているのを見るのは素晴らしいことです。私はあなたの質問のNeo4jの部分に話します:

現在、Global 2000の30以上が、Neo4jを幅広いユースケースの実稼働環境で使用していますが、その多くは驚くべきことです。 (そして、プロパティグラフを発明しました!)

顧客の部分的なリストは以下にあります: www.neotechnology.com/customers

Neo4jは10年間24時間365日稼働しており、それ以来製品はもちろん大幅に進化していますが、非常に強固な基盤の上に構築されています。

グラフデータベースに移行するほとんどの企業(私が知っているNeo4jについて)は、a)RDBMSが接続されたクエリ要件の範囲と規模を処理できなかったため、および/またはb )グラフ(ソーシャル、ネットワークおよびデータセンターの管理、詐欺、ポートフォリオ、IDなど)であるドメインをテーブルとしてではなく、グラフとしてモデル化することで得られる非常に便利で迅速な処理。

キックについては、世界中の主要都市で今年開催された4つの(まもなく5つの)GraphConnectカンファレンスから、多くのカスタマートークをここで見つけることができます。

http://watch.neo4j.org/

ロンドンにいる場合、最後の週は来週開催されます: http://www.graphconnect.com

以下に、Neo4jの背後にあるいくつかのテクノロジーの概要と、顧客の例を示します。スケーリングに関するご質問に直接お答えください:Neo4jには、各インスタンスがネットワークをホップすることなくグラフにアクセスできるように水平方向のスケールアウトを可能にすることで、クエリの応答時間とクエリの予測可能性を最大化するように設計された独自のアーキテクチャがあります。 (読み取りスループットがさらに必要です。インスタンスを追加するだけです。)このアプローチは、単一のNeo4jクラスターでFacebookソーシャルグラフの半分以上を実行しているプロダクション顧客を含む、95%以上のグラフでうまく機能することがわかりました。 「常時接続」の24時間年中無休のWebサイトの支援。

www.neotechnology.com/neo4j-scales-for-the-enterprise/

世界最大の郵便配達サービスの1つは、Neo4jですべてのリアルタイムパッケージルーティングを実行します。鉄道はNeo4j上にルーティングシステムを構築しています。世界最大の顧客の一部は、HRおよびデータガバナンス、代替パスルーティング、ネットワークとデータセンターの管理、リアルタイムの不正検出、バイオインフォマティクスなどにそれらを使用しています。

Neo4jのCypherクエリ言語は、プロパティグラフ用に明示的に構築された唯一の宣言型クエリ言語です。 13歳のネイティブJava API(これは他のグラフデータベースの一部が採用していたブループリントの基礎でした)から学んだすべての教訓を取り入れて、世代の言語。Cypherはグラフを学習し、アプリケーションを開発するための優れた方法です;特別なニーズがある場合、または「ベアメタル」パフォーマンス(つまり、ミリ秒未満)の場合、ネイティブJava API Neo1jは、グラフをサポートするためにゼロから構築されており、グラフを保存するために構築されたグラフストレージエンジンを備えています。グラフデータベースエコシステムへの最近の追加機能とは異なり、非グラフデータベースの上にグラフライブラリとして構築され、固有の制限がいくつかあります(たとえば、FlockDBはMySQLに基づいているため、1ホップを超えると非常に遅くなります)。

より具体的な情報が必要な場合は、Neoチームに連絡してください。喜んでお手伝いさせていただきます! http://info.neotechnology.com/ContactUs.html

がんばろう!

16
Philip Rathle