3

私は現在 CouchDB を検討していますが、すべてのレプリケーションを手動で指定する必要があることを理解しています。100 ノードで使用したい場合、レプリケーションはどのように行うのですか?

  • 各ノードで 99 回の「複製先」と 99 回の「複製元」を実行する
    • ノードのレプリケーションには他のすべてのノードのレプリケーションが含まれているため、やり過ぎのように感じます
  • 円を形成するために次の複製を 1 回複製します (A -> B -> C -> A のように)
    • 1回クラッシュするまで動作し、その後はすべてが戻ってくるまで待ちます
    • 最初から最後まで複製する場合、レイテンシーが大きくなります。

「完全なネットワーク上に 3 つの IP があります。それらに接続し、独立した P2P のように適切と思われるすべての人と共有します」と言う方法はありませんか?

あなたの洞察に感謝します

4

1 に答える 1

1

BigCouch は、そのままではクロス データセンターのものを提供しません。Cloudant DBaaS (BigCouch に基づく) には、複数のデータセンターにまたがるこのセットアップが既にあります。

BigCouch は、Apache CouchDB の分割された「Dynamo スタイル」のフォークです。将来、「メインライン」の Apache CouchDB にマージされる予定です。シャードは、同じデータセンター内の複数のノード (サーバー) に存在します。「クラシック」CouchDB スタイルのレプリケーションを使用して (afaik)、さまざまなデータセンターの BigCouch を非同期に保ちます。

CouchDB スタイルのレプリケーション (n-master) は変更ベースであるため、レプリケーションには最新の変更のみが含まれます。

ノード/データベースの組み合わせごとに、レプリケーションのペアとの間をセットアップする必要があります。ただし、すべてのサーバーが同一であることを意図している場合、レプリケーションは実際にはそれほど頻繁には行われず、必要な場合にのみ行われます。

変更を取得した場合A、レプリケーションはそれをBand C(etc) に送信します。ただし、Bその変更を取得したばかりで、チャンスを得るC前にそれを複製するとA、ネットワークの遅延などにより、A最終的に試行したときに、データが既に存在することがわかり、変更を送信する必要はありません。また。

これがセットアップの標準的な部分である場合 (つまり、データベースを作成するたびに他の場所に複製する場合)、セットアップを自動化することを強くお勧めします。

また、_replicator データベースをチェックアウトします。何が起こっているかを管理する方がはるかに簡単です: https://gist.github.com/fdmanana/832610

そこに何か役立つことを願っています。:)

于 2013-04-12T13:18:26.647 に答える