阅读 Nathan Hurst 的NoSQL 系统视觉指南,他包含了CAP
三角形:
C
坚持A
可用性P
工件公差
SQL Server 是一个AC
系统,MongoDB 是一个CP
系统。
这些定义来自加州大学伯克利分校教授 Eric Brewer,以及他在 PODC 2000(分布式计算原理)上的演讲:
可用性
可用性意味着——服务是可用的(完全运行或不如上所述)。当您购买这本书时,您希望得到回应,而不是一些关于网站无法交流的浏览器消息。Gilbert & Lynch 在他们的 CAP 定理证明中提出了一个很好的观点,即可用性通常会在您最需要它时抛弃您——站点往往会在繁忙时期出现故障,这正是因为它们很忙。可用但未被访问的服务对任何人都没有好处。
在 MongoDB 或 BigTable 的上下文中,系统不“可用”是什么意思?
您是否去连接(例如通过 TCP/IP),但服务器没有响应?您是否尝试执行查询,但查询从不返回 - 或返回错误?
不可用是什么意思?