47

RDBMS が CAP Theorem の CA であることについて、私が理解していない 2 つの点:

1) RDBMS はパーティション トレラントではない と書かれていますが、RDBMSはMongoDB や Cassandra などの他のテクノロジよりもパーティション トレラントではないのはなぜですか? AP または CP にするために CA をあきらめる RDBMS セットアップはありますか?

2) CAP はどのように利用できますか? マスタースレーブ設定ですか?マスターが死ぬときのように、スレーブが書き込みを引き継ぎますか?

私はDBアーキテクチャとCAP定理の初心者なので、ご容赦ください。

4

4 に答える 4

35

現在、多くのデータベースは実際には異なる構成を持っており、設定した設定に応じて、CA、CP、AP などのいずれかになりますが、3 つすべてを同時に実現することはできません。一部のデータベースは、実際には 3 つすべてをサポートしようと努力していますが、特定の方法で優先順位を付けています。

たとえば、MySQL は構成に応じて CP および CA になることができます。デフォルトでは、データがスレーブにレプリケートされるマスター スレーブ パラダイムに従うため、CA です。スレーブのセットがマスターへの接続を失い、新しいマスターを選択して、独自のスレーブのセットを持つ 2 つのマスターを作成する場合、パーティション トレランスは犠牲になります。

ただし、MySQL には、クラスター化された構成である別の構成もあります。可用性よりも CP を優先します。すべてのデータを提供するのに十分なライブ ノードがない場合、クラスターはシャットダウンします。

他の CAP 定理の組み合わせを満たす MySQL の構成はおそらく他にもありますが、全体として、システムが必要とするものに依存すると言いたかっただけです。データベースは、ある構成よりも別の構成の方が優れている場合があるため、特定の構成を使用する際にどのような問題が発生するかを確認することをお勧めします。

CAP定理の実装に関しては、さまざまなデータベースと、それらがCAP定理の優先順位をどのように実装しているかをさらに調べることをお勧めします。それらを実装する方法が多すぎます。一般的に、マスタースレーブモデルは CA システムに使用され、ハッシュリングは AP システムなどに使用されます。

于 2016-04-11T00:34:51.407 に答える