5

概念的には、マスター-マスターレプリケーションはどのように機能しますか?

衝突は、何らかの方法で解決する必要がある一般的な発生であると思います。

4

2 に答える 2

2

マスター-マスターレプリケーション(より一般的には-マルチマスターレプリケーション)は、競合が一般的ではないと想定し、システム全体の一貫性を緩く保ち、マスター間の通信更新を非同期的に維持することで概念的に機能します。これにより、基本的なACIDプロパティに違反することになります。

carmbresterが正しく提案したように(そしてMySQLから独立して)、キーの生成は競合(たとえば、同じIDが生成される)に対する重要な軽減戦略です。それを超えて、重要なのは、マルチマスターシステムでの競合を楽観的ロックモデルでの競合に似ていると考えることだと思います。残りのリスクは一般的にペイオフと比較して小さいため、両方とも成功します。

ただし、競合が発生する可能性があり(ご提案のとおり)、ベンダーが異なれば戦略も異なります。たとえば、Oracleでは、DBAがさまざまな競合解決基準(タイムスタンプ、アフィニティなど)および後続のアクション(キューにエラーを記録するなど)から選択することができます。Oracleの詳細については、http://www.orafaq.com/wiki/Advanced_Replication_FAQ#What_happens_if_two_or_more_sites_change_the_same_data.3Fを参照してください。

于 2011-01-09T22:33:12.743 に答える
1

コンテキストは重要ですが、MySqlがシナリオを処理する方法に関する情報が少しあります...

各マスターからのbinlogが読み取られ、他のマスターで実行されます。自動インクリメントオフセットは、主キーが衝突しないように構成されます。つまり、マスターの1つは、自動インクリメント中に偶数が使用されるオフセットで構成され、もう1つのマスターは、自動中に奇数が使用されるように構成されます。 -インクリメント。

デュアルマスターで構成することもできるMySqlClusteringレプリケーションの場合、このリンクで概説されているように、競合の処理方法を構成できます。

于 2011-01-09T22:25:54.427 に答える