PNRP キャッシュ

ピア名解決プロトコル (PNRP) キャッシュは、アルゴリズムによって選択されたピア エンドポイントのローカル コレクションであり、ピアに保持されます。

PNRP キャッシュの初期化

PNRP キャッシュまたはピア名レコード コレクションを初期化するには、ピア ノードの起動時に、ノードで次のメソッドを使用できます。

  • ノードのシャットダウン時に存在していた永続キャッシュ エントリは、ハード ディスク ストレージから読み込まれます。

  • アプリケーションで P2P コラボレーション インフラストラクチャを使用している場合、そのノードの Contact Manager でコラボレーション情報を入手できます。

マルチレベル キャッシュを使用してピア名解決の規模を調整する

PNRP キャッシュのサイズを小さく保つために、ピア ノードは複数レベルのキャッシュを使用し、各レベルにはエントリの最大数が含まれます。 キャッシュ内の各レベルは、PNRP ID 番号空間の 10 分の 1 の小さい部分を表します (2256)。 キャッシュ内の最下位レベルには、ローカルに登録された PNRP ID と、それに数値的に近い他の PNRP ID が含まれています。 キャッシュのレベルに最大 20 個のエントリが格納されると、新しい下位レベルが作成されます。 キャッシュ内のレベルの最大数は、log10 (クラウド内の PNRP ID の合計数) の順序です。 たとえば、1 億個の PNRP ID を持つグローバル クラウドの場合、キャッシュ内のレベルは 8 (=log10(100,000,000))以下であり、名前解決中に PNRP ID を解決するためのホップの数は同じです。 このメカニズムにより、対応する CPA を持つピアが見つかるまで、PNRP 要求メッセージを次に最も近いピアに転送することで、任意の PNRP ID を解決できる分散ハッシュ テーブルが可能になります。

解決を確実に完了するために、ノードがキャッシュの最下位レベルにエントリを追加するたびに、エントリのコピーがキャッシュの最後のレベル内のすべてのノードにフラッディングされます。

キャッシュ エントリは時間の経過と同時に更新されます。 古いキャッシュ エントリはキャッシュから削除されます。 その結果、PNRP ID の分散ハッシュ テーブルは、アドレス レコードと DNS プロトコルでアドレスに関連付けられているノードがネットワーク上でアクティブであることを保証しない DNS とは異なり、アクティブなエンドポイントに基づいています。

その他の PNRP キャッシュ

もう 1 つの永続的なデータ ストアは、ローカル キャッシュです。 PNRP アクティビティに必要なその他のオブジェクトに加えて、PNRP クラウドまたはクラウドのすべてのメンバー間で安全に発行および同期されるコラボレーション セッションに関連付けられているレコードが含まれる場合があります。 このレプリケートされたストアは、グループ データのビューを表します。これは、すべてのグループ メンバーで同じである必要があります。 技術的には、これらのオブジェクトはそれ自体のレコードではなく、ローカル キャッシュ宛てのアプリケーション、プレゼンス、およびオブジェクト データです。 PNRP クラウドを使用すると、オブジェクトがコラボレーション セッションまたは PNRP クラウド内のすべてのノードに確実に伝達されます。 クラウド メンバー間のレコード レプリケーションでは、SSL を使用して暗号化とデータの整合性が提供されます。

ピアがクラウドに参加するとき、接続先のホスト ピアからローカル キャッシュ データを自動的に受信することはありません。アプリケーション、プレゼンス、およびオブジェクト データの更新を受信するには、ホスト ピアをサブスクライブする必要があります。 最初の同期後、ピアはレプリケートされたストアを定期的に再同期して、すべてのグループ メンバーが一貫して同じビューを持っていることを確認します。 コラボレーション セッションまたはコラボレーション セッション内のアプリケーションも同じ機能を実行できます。

クラウドのコラボレーション セッションが開始されると、アプリケーションはピアを登録し、クラウド スコープで定義されたセキュリティを使用して情報の公開を開始できます。 ピアがクラウドに参加すると、クラウドのセキュリティメカニズムがピアに適用され、参加できる枠組みが与えられます。 そのレコードは、クラウドのスコープ内で安全に発行できます。 クラウド スコープは、コラボレーション アプリケーション スコープと同じではない可能性があることに注意してください。

ピアは、他のピアからオブジェクトを受信する希望を登録できます。 オブジェクトが更新されると、コラボレーション アプリケーションに通知され、新しいオブジェクトがアプリケーションのすべてのサブスクライバーに渡されます。 たとえば、グループ チャット アプリケーション内のピアは、アプリケーション情報の受信に関心を登録でき、すべてのチャット レコードがアプリケーション データとして送信されます。 これにより、クラウド内のチャット アクティビティを監視できます。

こちらも参照ください