在迪纳摩文件中,它指出,在生产中,大多数用户设定N= 3,R= 2和W=2。
The common (N,R,W) configuration used by several instances of Dynamo is (3,2,2). These values are chosen to meet the necessary levels of performance, durability, consistency, and availability SLAs.
在大多数生产系统中,N=3足够好,因为更多的数据副本会浪费存储。保持W和R=2将意味着读取将始终看到最后的写入大部分。
强一致性(SC)存储也可以有N=3和R,W=2,写入到一个主( ACID事务),并复制到(W-1)活动次要(W-1)进行提交。
最终一致性(EC)存储为扩展写入提供了多个主库,而不是强一致性db中的一个主存储。然而,在SC主服务器情况下是本地的读取现在需要在EC情况下网络跳到另一个副本。
当N= 3,R=W=2时,EC如何优于SC?
我认为EC商店不会采取任何锁,并等待其他副本确认提交。因此,它们更简单、更快。
这是真的吗?当N= 3,R=W=2时,使EC优于SC的其他因素是什么?
当EC商店在read world production systems中比SC更好的时候,它们的其他生产结构是什么?
发布于 2018-11-15 19:12:08
在网络分区的情况下,EC获胜,在有些情况下,您可能会丢失一个节点或两个节点之间的通信,而只有这样才能保持强一致性,即停止所有写操作。
这是CAP定理的基础。你不可能同时拥有、容忍分区和强烈的一致性.
发布于 2018-07-18 13:47:20
SC确实会慢一些,因为只有当所有相关节点都已经处理了更新时,更新才会对客户端可见。对于单个主服务器,它将成为所有书面事务的单一瓶颈。本地副本上的客户端必须等待主服务器处理他的更新,然后同一服务器上的客户端才会看到他的更新。
EC将简化此过程,因为更新对本地客户端是可见的,甚至在主服务器处理更新之前也是如此。
https://softwareengineering.stackexchange.com/questions/374096
复制相似问题