4

マスターデータベースと同期する巨大なマスターCouchDBデータベースとスレーブ読み取り専用CouchDBデータベースがあります。
変更の速度が速く、サーバー間のチャネルが遅く不安定であるため、どのドキュメントが最初に来るかを定義するために順序/優先順位を設定したいと思います。優先度が最も高いドキュメントが確実に最新バージョンであることを確認する必要があり、リストの最後にあるドキュメントは無視できます。

フィルタリングではなくソート

それが不可能な場合、どのような解決策がありますか?

私がすでに見たリソース:
http :
//wiki.apache.org/couchdb/Replication http://couchapp.org/page/index

更新:マスターデータベースは実際にはNode.js NPMレジストリであり、順序は最も依存しているパッケージのリストです。50Gのクローン作成はしばらくすると必ず失敗するため、プロキシを作成しようとしています。しかし、実際には、「これらのモジュールの90%は必要ありませんが、依存しているモジュールにすばやく確実にアクセスできます」。

4

3 に答える 3

2

CouchDBは、箱から出してすぐに、レプリケーションの順序を制御するためのオプションを提供しません。ただし、マスター上のさまざまなデータベースにさまざまな優先順位のドキュメントを保持しておけば、何かをつなぎ合わせることができると思います。次に、優先度の高いマスターデータベースを最初にスレーブデータベースに複製し、その後に優先度の低いデータベースを複製するなどの方法があります。

于 2013-03-08T08:39:45.613 に答える
2

短い答えはノーです。

長い答えは、CouchDB は設計上、個々のドキュメント レベルでのみ ACID 保証を提供するというものです。レプリケーターは、レプリケート時に各ドキュメントをアトミックに更新しますが (誰でもできることですが、レプリケーターはパブリック API を使用しているだけです)、順序を保証しません。これは主に、スループットを向上させるために複数の http 接続を使用するためです。必要に応じて 1 まで設定できます。これにより、順序付けが改善されますが、万能薬ではありません。

bigcouch のマージ後、すべての賭けがオフになり、複数のソースと複数のターゲットが存在し、合計順序が課されなくなります。

于 2013-03-08T18:37:22.013 に答える
0

フィルタされたレプリケーションまたは名前付きドキュメントレプリケーションを設定できます。

これらは両方とも、データベース全体を複製するための代替手段です。より小さなバッチサイズでレプリケーションを実行し、優先順位に一致するようにバッチを並べ替えることができます。

于 2013-03-08T04:15:00.797 に答える