答えて

8

実際にはCAP定理は少し誤解を招く。パーティションが発生した場合には、一貫性(データ同期の問題など)や可用性(レイテンシ)に関する問題が必ず発生するため、CA設計を行うことができないというのはナンセンスです。分散システムにおけるパーティション中に

は、あなたが一貫可用性の間で選択したする必要がありますことを示すより正確な定理がある理由です。

まだ実際にはそれほど単純ではありません。一貫性と可用性の選択はバイナリではないことに注意してください。あなたは両方ともどちらかの程度を持つことができます。例えばACIDに関しては、NoSQLとの原子力と耐久性のあるトランザクションを持つことができますが、より良い可用性のためにある程度の分離と整合性が失われます。応答時間はいくつかの要因(最も近いサーバが利用可能か)に依存するため、可用性は待ち時間に同化できます。

あなたの質問に答えるには、これは通常マーケティングばかだ。実際に表面を傷つけて、その解決策が正確に得られ、失われているかどうかを確認する必要があります。

詳細については、here,hereまたはhereとなります。

+0

ありがとうございました!私たちには別の質問もあります:可用性を選択すると、スピードを持つことが好ましいということです。つまり、通信の問題(パーティション)があると、ノードは再びオンラインになりますが、同期しません。あるいは、正確なデータを(一貫性のある)データよりも好む場合(たとえば、万ユーロなどのトランザクションがある場合)...この場合、一貫性を選択します。私は正しいですか? どのような定理ですか?名前はありますか? :) – grep

+1

@grepはい、あなたは正しいですが、どちらかといえば、あまりにも多くのトレードオフがあるため、そうしないでしょう。実世界は定理​​より複雑です:) – LMeyer

+0

もう一度ありがとうございます。 CAP定理を使って、CP(BigData、Mongo、Hbase)とAP(Riak、Cassandra、Dynamo)の間にあるデータベースを知っています。 新しい定理、一貫性または可用性を使用してデータベースを選択する方法は? BigData、Mongo、Hbaseが一貫性とDynamoしか持っていないのは残念ですが、Riak、CassandraはAvailabillityしか持っていませんが、これは正しいでしょうか?私はこれが正しくないと理解しているので、私はある程度それらの両方を持つことができます。それは本当ですか? – grep

関連する問題