关闭

Session Guarantees for Weakly Consistent Replicated Data

44人阅读 评论(0) 收藏 举报
分类:
这篇论文介绍了四种会话一致性的定义以及实现方法。这里的会话不仅表示一次连接,而是广义的,比如一个客户,多次连接也算一个session。

四种一致性保证为:
read your writes:读操作能反映之前的写
monotonic reads:成功的读反映非下降的写集合
writes follow reads:写 在 他们依赖的读 后 传播
monotonic writes:写 在 逻辑上早于他们的写 之后 传播

实现上,在客户端和底层系统中间加一层session manager,负责客户端和服务器的连接管理,session manager维护一个read set和一个write set。都是写操作的集合。read set表示当前时刻session读到的相关写操作。write set表示当前时刻这个session写成功的写操作。

通过检查服务器的写集合是否包含reat set和write set就可以判断服务器节点能够提供以上四种一致性保证。


注意:

一个会话是一系列读写操作的抽象


会话不是为了保证原子性和可串行性。而是为单个应用提供一致的数据库状态。


为了满足一个会话的强一致,为这个会话提供服务的服务器为A,A需要限制提供一致数据副本的服务器集合。因为这样会对可用性产生影响,所以应用必须在一致性和可用性之间平衡。


一致性可以在每个单独的session中提供。在一个session中要求的保证不会影响其他会话的可用性。


这几种一致性可以被加在弱一致的数据副本上,通过版本向量可以简单实现,不用改或很少改变服务器的代码。

一个客户端每次连接服务器可能选择不同的节点,取决于cost和限制

提供服务的服务器的写顺序可以和接收到的不一样,只要结果不变就行 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16703次
    • 积分:650
    • 等级:
    • 排名:千里之外
    • 原创:77篇
    • 转载:0篇
    • 译文:3篇
    • 评论:2条
    最新评论