Couchbase Cross Datacenter Replication(XDCR)は、すべてのデータをソースバケットから宛先バケットに(継続的に)レプリケートします。
ニューヨークのデータセンターにバケットAがあり、サンフランシスコのデータセンターにバケットBがあり、バケットAからバケットBにXDCRを構成すると、バケットAのすべてのデータがバケットBに複製されます。追加のフィルターを構成することはできません。ただし、この複製は一方向にすぎません。したがって、データをバケットBに直接書き込む場合も、両方のデータセンターにすべてのデータがあるわけではありません。両方のデータセンターにすべてのデータを配置する場合は、バケットBからバケットAへのXDCRも構成します。これは、マニュアルでは双方向レプリケーションと呼ばれています。この2つのクラスター構成では、すべてのデータセンターのすべてのデータが提供されます。
CouchbaseクライアントSDKは、単一のクラスターと通信するように構成されています。つまり、クライアントは接続するクラスターを認識している必要があります。ニューヨークのクラスターにサンフランシスコのクラスターとは異なるデータが格納されている場合、アプリケーションにはデータの検索場所を認識するロジックが必要です。
高可用性のユースケースでは、通常、リージョン間で双方向レプリケーションが設定され、アプリケーションはクラスターを優先するように設計されています。ニューヨークの近くにデプロイされたアプリケーションは、ニューヨーククラスターを好む場合があります。問題がない限り、そのクラスターの読み取りと書き込みを行います。ニューヨークのデータセンターがダウンしているなどの問題がある場合、アプリケーションはサンフランシスコのデータセンターに切り替えることで動作を継続できます。しかし、繰り返しになりますが、このロジックはすべてアプリケーションに含まれます。
ロビンが言及した「スマートクラスターマップ」は、単一のクラスター内のデータを検索するために使用されます。これを理解することは重要ですが、異なる地域に保存されているデータは見つかりません。