1.分布式应用中的典型场景(一)
在一个web的分布式系统中,Web页面的更新通常是由某一个单一的授权机构Web管理员进行更新的。因此,不存在多个进程同时更新的写-写冲突。大部分的操作都是浏览器读取这个页面。
1.1上述场景的特点
- 不会发生同时发生的更新操作,或者当出现同时发生的更新操作时,比较容易解决。
- 大部分操作是读取数据的操作。
在分布式系统中,我们把具有上述特点的场景可以通过:分布式最终一致性模型解决。
在这个模型的特点要求客户可以容忍对较高程度的不一致性的分布式复制的数据。但是最终当没有更新操作时,所有副本逐渐成为相互完全相同的副本。
最终一致性模型在客户访问同一个副本时,工作的很好。但是在移动用户访问分布式数据库时会出现问题。
2 移动用户访问分布式数据库的原理
移动用户是以透明的方式连接到一个数据库副本来访问数据库的。假设用户执行几个更新操作,然后断开了与数据库的链接。后来,他要再次访问数据库时,他可能移动到了其他不同的副本。然而,如果先前执行的更新操作还没有传播到这个副本,那么用户不会注意到这一点。给用户造成错觉。
2.1 如何解决上面的不一致问题
引入以客户为中心的一致性,以客户为中心的一致性为单一的客户提供一致性,保证该客户对数据存储的访问的一致性。它不保证多个客户并发访问提供一致性保证。
3 以客户为中心的一致性模型
3.1 单调读
如果一个进程读取数据项X的值,那么该进程对X执行的任何后续读操作将总是得到第一次读取的那个值或更新的值。
u