NoSQL模式
一致性模式
- 数据在多个服务器中有多个备份,如何维护他们之间更新的一致性?
- 严格一致:序列化立即拷贝更新。(quorum based 2PC )
- 自己读写一致:能够立即看到自己的修改结果,但不一定及时看到其他人修改结果。
- Session一致性:当客户端被重定向到同一个服务器时,自己读写一致。
- 读系列一致:保证客户端发出多次请求能够看到数据的更新。
- 最终一致Eventual Consistency:需要等待一段时间才能看到以前修改结果。
一致性策略:Vector Clock
- 一个时间戳机制能够实现更新之间的因果关系。
一致性策略:Gossip
- 是一种在多服务器之间广播状态的P2P方式
- 每个节点选择其他一个节点通讯,对来自其他节点的信息标注时间戳。
- 更新信息在多个这样节点轮回中进行通讯,以至于最终所有节点都更新到最新状态。
- 可伸缩,实现最终一致性。Cassandra
Gossip 好处
- 上百个节点的规模时增加节点简单
- 增加一个新节点到系统中就是启动一个 Cassandra 流程并告诉它一个种子节点 。
- 当有什么出错的时候,所有节点都是一样的,这让调试成为了一个更加易于进行且可重复的过程。
- 负载可以被均衡地散步到各个节点上,来最大化潜在的并行性。
更多伸缩性scalable讨论