Azure SQL データベースのアクティブ geo レプリケーション:
アクティブ ジオ レプリケーション機能は、同じ Microsoft Azure リージョン内または異なるリージョン内でデータベースの冗長性を提供するメカニズムを実装します (地理的冗長性)。アクティブ Geo レプリケーションは、コミットされたトランザクションをデータベースから最大 4 つのコピーに非同期的にレプリケートします。異なるサーバー上のデータベースの。元のデータベースは、連続コピーのプライマリ データベースになります。各連続コピーは、アクティブなセカンダリ データベースと呼ばれます。プライマリ データベースは、コミットされたトランザクションをアクティブなセカンダリ データベースのそれぞれに非同期的にレプリケートします。任意の時点で、アクティブなセカンダリ データはプライマリ データベースよりわずかに遅れている可能性がありますが、アクティブなセカンダリ データは、プライマリ データベースにコミットされた変更と常にトランザクション的に一貫性があることが保証されています。アクティブ Geo レプリケーションは、最大 4 つのアクティブ セカンダリ、または最大 3 つのアクティブ セカンダリと 1 つのオフライン セカンダリをサポートします。
アクティブ ジオ レプリケーションの主な利点の 1 つは、データベース レベルのディザスター リカバリー ソリューションを提供することです。Active Geo-Replication を使用すると、Premium サービス レベルのユーザー データベースを構成して、同じまたは異なるリージョン内の異なる Microsoft Azure SQL データベース サーバー上のデータベースにトランザクションをレプリケートできます。リージョン間の冗長性により、アプリケーションは、自然災害、壊滅的な人的エラー、または悪意のある行為によって引き起こされたデータセンターの永久的な損失から回復できます。
もう 1 つの重要な利点は、アクティブなセカンダリ データベースが読み取り可能であることです。したがって、アクティブなセカンダリは、レポートなどの読み取りワークロードのロード バランサーとして機能できます。ディザスター リカバリーのために別のリージョンにアクティブなセカンダリを作成できますが、別のサーバーの同じリージョンにアクティブなセカンダリを作成することもできます。両方のアクティブなセカンダリ データベースを使用して、複数のリージョンに分散されたクライアントにサービスを提供する読み取り専用ワークロードのバランスを取ることができます。
master-master がどこにも言及されていないことに注意してください。レプリカは読み取り可能ですが、書き込みはできません。したがって、SQL Azure は単にあなたが望むものをサポートしていないため、この質問は本当に意味がありません。
別の方法として、アプリケーション層のシャーディングを使用して、各テナントを近接データベースに接続しますが、これはデータがバラバラであることを前提としています (オーストラリアの顧客は南米のアイテムを見ていません)。こちらの回答を参照してください。
Cassandraのようなものを調査することもできます。Cassandra は必要なものをサポートしますが、主要なパラダイム シフトであり、ホストして管理する必要があります。
しかし、次のことも質問する必要があります。低レイテンシーを実現するには、マスター-マスター DB が必要ですか? アプリで頻繁に書き込みが発生していますか? 読み取りレイテンシーは簡単に改善できるため、キャッシングと CDN が用意されています。この質問を読んでいるすべてのオーストラリアのユーザーについて考えてみてください。マスター マスター DB からではなく、障害復旧用にgeo レプリケートされたデータベースから提供されます。StackOverflow が SQL Server をスケーリングする方法を参照してください。