1. ホーム
  2. mongodb

[解決済み] CAPの定理でmongodbはどこに位置するのか?

2022-05-04 03:40:06

質問

どこを見ても、MongoDBはCPだと書いてあります。 しかし、掘り下げてみると、結局は一貫していることがわかります。 safe=trueを使うとCPになるのでしょうか?もしそうなら、safe=trueで書くと、結果を得る前にすべてのレプリカが更新されてしまうということでしょうか?

解決方法は?

MongoDBはデフォルトで強い一貫性を持っています。書き込みをしてから読み込みをすると、書き込みが成功したと仮定して、常に先ほど読み込んだ書き込みの結果を読むことができます。 これは、MongoDB がシングルマスターシステムで、デフォルトではすべての読み込みがプライマリに行くからです。 オプションでセカンダリからの読み込みを有効にすると、MongoDB は最終的に一貫性を保つようになり、古い結果を読むことができるようになります。

また、MongoDBはレプリカセットによる自動フェイルオーバーで高可用性を実現しています。 http://www.mongodb.org/display/DOCS/Replica+Sets