首页 理论教育分布式数据库技术会晤一致性解读

分布式数据库技术会晤一致性解读

【摘要】:在常规无副本平台里,使用封锁机制可以观察到会晤一致性。这样一个完全透明的复制系统也应当提供会晤一致性。为了提供会晤一致性,需要对协议进行扩展。其他协议如使用2PL和2PC的积极协议自动提供会晤一致性。虽然Tj的第一个操作提交时Ti可能尚未提交,但必须保证Ti处于准备状态,或者后续状态维持所有必要的封锁。

会晤一致性(session consistency)是另一种正确性的观点,正交于原子性、数据一致性或隔离性。它从用户的角度来定义正确性。用户常以会晤形式与系统交互。例如,数据库应用打开一个与数据库的连接,然后提交一系列事务。从用户来看,这些事务构成一个逻辑序。因此,如果客户提交一个事务Ti,然后提交事务Tj,Ti将某个数据项x写入数据库,Tj读这个数据项,则Tj可以观察到Ti写的效果(除非其他事务重写了Ti提交的结果)。这意味着非正式的、会晤一致性能保证客户端可观察到自己写的效果。简单来说,一致性的单位不再是一个事务,而是一次会晤。一般来说,观察的颗粒更大了。

可串行化和单副本可串行化不包含会晤一致性,因为它们要求执行等价串行序,所以不能与会晤里的提交序匹配。在常规无副本平台里,使用封锁机制可以观察到会晤一致性。这样一个完全透明的复制系统也应当提供会晤一致性。

复制系统里没有特殊机制,副本控制不保证会晤一致性。例如,懒主本模式里,客户端可以向主本提交更新事务,在更新事务的写集传递到其他副本前向其余副本提交只读事务。此时,它观察不到自己的写操作。为了提供会晤一致性,需要对协议进行扩展。(www.chuimin.cn)

其他协议如使用2PL和2PC的积极协议自动提供会晤一致性。假设还是使用主本模式,客户端首先向主本提交一个更新事务Ti,然后向其他副本提交只读事务Tj。虽然Tj的第一个操作提交时Ti可能尚未提交,但必须保证Ti处于准备状态,或者后续状态维持所有必要的封锁。这样,在Ti提交前,Tj处于阻塞状态。