1

私はグラフ データベースを必要とする製品を持っていますが、残念ながら私が見つけたすべてのグラフ データベースは十分に成熟しておらず、多額の費用がかかるか、単に私のニーズに合っていません。
次の機能を備えたオーダーメイドのグラフ データベースを実装したいと考えています。

  • グラフは方向付けのみ可能です。
  • データベースは実行中のプロセスに組み込まれている必要があるため、メモリ内に保持されます。
  • データベースは次の操作のみを実行します。
    • ノードからの読み取り。
    • ノードへの書き込み (作成/更新)
    • ノードの削除
    • エッジ リダイレクション (あるノードを指すエッジを持つノードが別のノードを指すようになる操作)
    • この質問に関係のないグラフ検索アルゴリズム。
  • グラフ データベースには、3 種類のノードのみを含めて処理する必要があります。

これを概念実証として記述するには、何を知る必要がありますか? それを書くのにどれくらいの時間がかかりますか?
関数指向のアプローチ (再帰をより適切に処理することはわかっています) は、オブジェクト指向のアプローチよりも適していますか?
私の制約は実装を容易にしますか?

4

2 に答える 2

1

他のデータストアをバックエンドとして使用する場合は、graphdb APIを追加するだけで、概念実証を非常に高速に作成できます。プロジェクトのサイズについて:SourceForgeやGitHubのような場所を見回すと、小さなgraphdbの実装を見つけることができるはずです。次に、ソースコードの行と機能を比較して、プロジェクトに関するアイデアを得ることができます。トランザクションや障害回復などについては言及していません。必要に応じて、さらに多くの労力が必要になります。

于 2011-06-27T09:59:50.310 に答える
1

データベースは実行中のプロセスに組み込まれている必要があるため、メモリ内に保持されます。

基本的に、任意の種類のグラフ処理ライブラリ (C# の QuickGraph など) を使用して、バックグラウンド スレッドで定期的にデータベースをディスクにシリアル化できます (突然の停電やクラッシュの場合)。

グラフ理論 (もちろん)、マルチスレッド、並列計算 (ロック、トランザクションなど) をある程度理解する必要がありますが、トランザクションが必要ない場合は、ライブラリを使用すると基本的に週末のプロジェクト IMO になります。

于 2012-01-23T13:13:12.400 に答える