附件C-一致性模型
对一致性模型的描述主要从三个出发点进行考虑:
(1)响应前还是响应后,即在完成对所有副本数据集的同步前返回用户,还是完成同步后再给用户反馈。
(2)进行同步对象的多少,是对每次更新进行同步还是在多次更新后再同步。
(3)对更新顺序的维护,维护更新操作间不同的顺序会提供不同的一致性,当完全不考虑更新顺序,甚至更新的类型时,只提供最终数据的相互一致,则是最终一致性。
1.相互一致性
文献[70]对一致性的定义为,设定在数据上的约束。这种约束在不同应用中是不同的。违反这样的约束就称违反了数据的一致性。对于分布式中,复制技术最重要的约束就是副本节点数据的相互一致。请求对一个副本上的数据进行了修改,如果系统没有及时的将更新传播并应用到其它节点,路由到其它节点的请求就会获取到不一致的数据内容。维护节点间的相互一致性就称为了复制系统的关键。同时一致性模型也是数据同步的重要模型。
Yu和Vahdat 2002[13]为定义副本间的不一致性判断设计了三个相互独立的坐标轴:副本之间的数值偏差、副本之间新旧程度的偏差以及更新操作顺序的偏差。数据具有数值语义的应用程序可以按数值偏差来度量不一致性。例如,股票市场价格记录的复制。在这种应用中,应用程序可能会指定两个副本的偏差不能超过0.02美元,这就是绝对数值偏差。也可以指定相对数值偏差,表示两个副本之间的差别不能超过多少(0.5%)新旧偏差与副本最近一次更新有关。多某些应用程序来说,只要副本提供的旧数据不是太旧,它是可以容忍的。例如,天气预报通常要滞后一段时间(如几个小时)。在这种情况下,主服务器会定期地接收更新消息,但在一段时间内只给副本