Aar*_*ers 2 distributed-computing
我被告知我必须放弃大型分布式系统中的事务保证,因为CAP定理说我不能拥有它.
我认为这是错误的,原因如下:
因此,我可以假设,出于实际目的,我可以有事务行为,但我试图保证小分区检测到它们已断开连接并关闭或以某种降级模式运行,直到修复连接为止.
更正?评论?火焰?
CAP定理已由Nancy Lynch等人证明.在麻省理工学院实验室.
你的假设不好.是的,您可以在分布式系统上进行交易,但是您必须等待所有交易.当你受到可用性的影响时.因此,您可以具有一致性和部分容差,但不具备可用性.
在另一种情况下,您可以具有可用性和部分容差,但没有一致性,例如MongoDB或Cassandra(配置了最终一致性).在这种情况下,您可以拥有多个数据库服务器,但您的数据将无法立即在所有服务器上使用.您会受到一致性的影响,但您可以获得可用性和部分容忍度.
最后一种情况是最简单的:您具有一致性和可用性,但没有部分容忍度.想想单个数据库服务器.
关于你的观点:
- 互联网路由非常可靠.
无缝可靠.
- CAP定理仅适用于两组活机无法通信的网络分区.
CAP定理适用于任何分布式系统.
其他两点真的没有多大意义.
还有一些其他教授声称CAP是不完整的,而且还有更多,例如延迟.但CAP定理非常有意义.
还有"BASE"定理(基本可用,软状态和最终一致性).许多NoSQL数据库都赞成这个定理.