NoSQL模式

 上页

一致性模式

  • 数据在多个服务器中有多个备份,如何维护他们之间更新的一致性?
  • 严格一致:序列化立即拷贝更新。(quorum based 2PC )
  • 自己读写一致:能够立即看到自己的修改结果,但不一定及时看到其他人修改结果。
  • Session一致性:当客户端被重定向到同一个服务器时,自己读写一致。
  • 读系列一致:保证客户端发出多次请求能够看到数据的更新。
  • 最终一致Eventual Consistency:需要等待一段时间才能看到以前修改结果。

一致性策略:Vector Clock

  • 一个时间戳机制能够实现更新之间的因果关系。

vect clock


一致性策略:Gossip

  • 是一种在多服务器之间广播状态的P2P方式
  • 每个节点选择其他一个节点通讯,对来自其他节点的信息标注时间戳。
  • 更新信息在多个这样节点轮回中进行通讯,以至于最终所有节点都更新到最新状态。
  • 可伸缩,实现最终一致性。Cassandra 

Gossip  好处

  • 上百个节点的规模时增加节点简单
  • 增加一个新节点到系统中就是启动一个 Cassandra 流程并告诉它一个种子节点 。
  • 当有什么出错的时候,所有节点都是一样的,这让调试成为了一个更加易于进行且可重复的过程。
  • 负载可以被均衡地散步到各个节点上,来最大化潜在的并行性。

 

下页

更多伸缩性scalable讨论