2

登録ユーザーがオーディオ録音を作成し、他の登録ユーザーと共有できる分散オーディオ リポジトリを実装しています。理想的には、ワイヤレス メッシュ ネットワークに断続的に接続されている少数 (n<5) のラップトップでリポジトリを実行したいと考えています。したがって、couchdb を実行しているリポジトリ ノードは、接続が利用可能な場合に相互に複製されます。リポジトリは電力インフラのない田舎の村に設置されるため、リポジトリのラップトップはソーラー パネルと自動車のバッテリーで電力を供給されます。過去に、1970 年 1 月 1 日、ラップトップのバッテリーが完全に消耗し、コンピューターの時計が 0 にリセットされるという問題に遭遇しました。インターネット接続も非常に不安定で、非常に高価です。断続的な電力と接続、および非常に不正確なクロックを念頭に置いて、ドキュメント (またはレコーディング) を順序付けして、レプリケーションの前後で、異なるリポジトリ ノードでレコーディングが作成されたときの年代順に大まかに対応させる方法を考えていました。これらの制約された条件内で機能する複製 by_date、by_sequence、by_chronology (または任意の名前) ビューを作成する方法について、助けていただければ幸いです。完璧である必要はありません。単純なソリューションよりも十分に優れているか、優れているだけです。これらの制約された条件内で機能する by_chronology (または任意の名前) ビュー。完璧である必要はありません。単純なソリューションよりも十分に優れているか、優れているだけです。これらの制約された条件内で機能する by_chronology (または任意の名前) ビュー。完璧である必要はありません。単純なソリューションよりも十分に優れているか、優れているだけです。

ありがとうございました!

トーマス

4

1 に答える 1

1

データベースで利用可能な最後の数字を見て、次の数字を取得することで、新しいドキュメントごとに単純な増分整数を含めることから始めることができます。これにより、いくつかのことが得られます。

  • 接続がない場合のローカルに記録されたセグメントの一貫した順序付け
  • 他のノードとの同期後、新しいセグメントは、複製されたすべてのセグメントよりも高いシーケンス番号を取得します

これは、あるノードからのシーケンス番号 45 が別のノードからのシーケンス番号 45 より前または後に記録された場合、つなぎ合わせることができないことを意味しますが、有向非巡回グラフをつなぎ合わせて、少なくとも基本的なドキュメントの順序付けを課すことができます。

セグメントが記録されたノードを表す値を追加して、さらに改善することができます。

于 2012-12-14T10:19:29.403 に答える