現在、私はp2pアプリケーションモデルを研究しています。ピア間でデータを共有しているにもかかわらず、ユーザーアカウント情報を保持するデータベースサーバーがまだどこかにあると思います。例としてSkypeを取り上げます。ユーザーはp2p通信を確立していますが、PostgreSQLを使用していると思います。データがサーバーファームでホストされるのではなく、クライアントコンピューター全体に分散(および暗号化)されるように、そこにp2pデータベース実装があるのでしょうか。
そうでない場合、p2pデータベースを実装することは非常に困難/非現実的でしょうか?
非リレーショナルデータベースに関心がある場合は、memcached(ワークグループ内)や、インターネット経由のさまざまな分散ハッシュテーブル(DHT)実装など、トランザクションおよび非トランザクションのP2Pキー値ストアがたくさんあります。全体(例:CAN、コード、ペストリー、タペストリー、キメラ)。
これが良い出発点です: http://en.wikipedia.org/wiki/Distributed_hash_table
あなたはスカイプに言及し、これは良い例です。私の知る限り、Skypeはピア間でデータベースを分散しています。
ただし、ピアに分散されたある種のデータベースに関する特許があることに注意してください。何か書いたら、彼らの特許を踏まないようにしてください!
これが80億ドル以上でMicrosoftに売られた理由の1つだと思います。
JoltID(company) について少し読むことをお勧めします。これは、米国特許7,480,658 "の知的財産権を保持し、分散データベースシステムと協調型分散型ピアをカバーしています-ピアコンピューティング "
遅い回答ですが、同じ質問を持つ他の人に役立つ場合があります。 @JVerstryに同意します。P2Pデータベースの実装は通常、標準データベースの上に配置される単なる通信および同期レイヤーにすぎません。
ネットワーク上のさまざまなコピー間でデータベースの双方向レプリケーションと競合解決を本質的に行い、各ノードに完全なコピーがあるプロジェクトを知っています。これは確かにP2Pデータベースですが、他にも種類があることに注意してください(@Canuckは、各ノードがデータベースの部分的なコピーを保持するネットワークで検索を実装するために使用されるDHTに正しく言及しています)。
NoSQLアプローチの場合は、CouchDBに基づく Refuge を確認できます。執筆時点ではまだ早いと思いますが、面白そうですね。
P2Pフレームワークは通常、データベースとは無関係に実装されます。ノード間の情報の転送に重点を置いています。一部のユーザーは、一時的な情報を保存するためにインメモリデータベースに依存しています。 JXTAに関しては、ユーザーはインメモリまたはファイルベースのデータベースで動作するようにノードを構成できます。
私はかなりの数のP2Pに参加しており、完全にP2Pデータベースのユーザー指向フレームワークについて聞いたことがありません。データベースの上にお気に入りのP2Pフレームワークを実装する必要があると思います。
これがあなたの質問に直接答えるかどうかはわかりませんが、データをローカルに保存し、それ自体(または互換性のあるアプリ)の他のインスタンスと同期または共有することを提供するあらゆる種類のアプリケーションは、事実上、ある種のピアツーピアデータベース。
たとえば、分散型検索エンジンアプリを見てみましょう。その領域にはいくつかの実験があります(例 http://yacy.net )。それらを使用して、同僚などと共有できるローカルインデックスがあります。
または、もっと要点として、少し急流のクライアント...
これらのどちらも適切なSQLを介して通信しているわけではなく、必ずしもユーザーアカウント情報を格納するDBサーバーがあるわけではありません。それぞれが独自の方法で、事実上、分散データストアの領域にあります。
いずれの場合も、「サーバー」(またはそれが参照するもの)を作成する目的は、アプリのインスタンスがお互いを認識していないばらばらのネットワークを形成しないようにすることです。私が知っている最もよいことは、ある種の「常にオン」の参照ポイントなしにこれを確実に達成するための信頼できる手段がないことです。
Skypeの場合のひねりは、一意のネットワークを形成することに加えて、a)ユーザーがネットワークに参加するときにユーザーを認証し、b)履歴の一部(すべてではない)を保存することです(例:不在着信や連絡要求については通知が届きますが、不在着信チャットメッセージは両方のSkypeクライアントが接続されている場合にのみ表示されます)。
実際には1つありますが、新しいメンテナーが必要です:Prophet
Prophetは、ポストWeb-2.0の世界のために設計された新しい種類のデータベースです。特別なサーバーやインターネットプロバイダーを必要とせずに、友達や同僚とコラボレーションできるように作られています。
預言者の流行語を含むピッチは、次のようなものです。
自己修復型の競合解決機能を備えた、固定された、セミリレーショナルな、ピアツーピアの複製、切断、バージョン管理されたプロパティデータベース。
Simple Defectsと呼ばれるP2Pバグトラッカーの作成にも使用されます。