On Reading Fresher Snapshots in Parallel Snapshot Isolation
2020 IEEE第40届分布式计算系统国际会议(ICDCS)

关键字:事务;一致性;快照隔离
快照隔离 (SI) [1] 是一种广泛采用的一致性级别,在构建事务系统 [3]、[4] 时,通常用作可串行化 [2] 的实用替代方案,这是并发控制实现的黄金标准标准。提供 SI 的并发控制显着提高了可序列化并发控制的并发级别和性能,因为它允许多个事务访问同一组共享对象的执行,只要它们的写入对象组是不相交的。
SI 的一大优点是,即使在执行期间读取(所谓的读取快照)和未写入的一组值已被并发事务 [1] 覆盖,事务也不应中止。通过利用此属性以及多版本数据存储库,大多数 SI 并发控制 [4]、[5] 只需将读取快照定义为事务开始时可用的所有版本。
当部署在节点不共享同步时钟并且它们之间的通信是异步的分布式系统上时,SI 事务不能简单地在它们开始时定义一个类似的(最新的)读取快照,因为没有共享节点之间的时间概念。事实上,在这样的分布式系统中,确定性地识别版本是在某个时间点之前还是之后创建是非常具有挑战性的 [4]、[6]、[5]。
Walter [4] 是最先进的分布式事务系统,其并发控制实现了 SI 的变体,称为并行快照隔离(或 PSI),其中事务读取快照可以在为了处理前面提到的节点之间没有共享时钟。 Walter 在逻辑上将对象分配给所谓的首选节点,因此如果事务从首选节点读取版本,则将保证其读取快照是最新的。对非首选节点的任何访问都可能导致版本过时。
Walter 尝试使用在事务关键路径之外发送的异步消息来修补与访问非首选节点相关的上述问题,旨在定期更新系统中非首选节点的逻辑时钟。如果没有这些信息,可能会出现两个负面影响。首先,尝试从非首选节点写入对象的事务将被反复中止,直到上述异步消息被传递。其次,从非首选节点读取的事务可以返回任意旧版本。
在本文中,我们简要介绍了 Fresher Parallel Snapshot Isolation(或 FPSI),这是一种分布式事务系统,它使用逻辑(矢量)时钟 [7] 来实现原始 Walter 并发控制的改进版本,以提高数据新鲜度。使事务能够访问最新的快照可以减轻不良行为,即 i) 引导只读事务(即不写入的事务)读取过时的值,如前面的示例所示,以及 ii) 引导更新事务通过实施一种称为可见读取的技术来持续中止(降低整体进度)[8]。
实现数据新鲜度的主要算法挑战是处理 Walter 用于在事务提交时更新节点的逻辑(向量)时钟的技术。事实上,由于 Walter 的事务读取快照可以是任意旧的,因此向量时钟的更新不会传播与并发事务的因果依赖关系(相反,这将需要保持事务后续读取操作的安全性)。 Walter 可以忽略这一点,因为它的事务不会从并发事务中读取。
FPSI 使用称为版本访问集的附加元数据丰富了 Walter 的矢量时钟,旨在捕获与并发事务的依赖关系,以便在首次访问时可以安全地读取访问对象的最新版本。这个目标是通过将跟踪事务的读后写(反)依赖性的版本访问集与沃尔特现有的矢量时钟[7]相结合来实现的,以确保事务的一致性。
更具体地说,版本访问集与版本相关联,它包含读取该特定版本的只读事务的标识符。在更新事务的提交阶段,收集并发冲突只读事务的标识符集。该集合被传播到这些更新事务的新创建版本的版本访问集。
在下文中,我们概述了 FPSI 用于处理更新和只读事务的读取操作的两种策略。
在本文中,我们简要介绍了 FPSI,这是一种新颖的分布式并发控制,它提供了 PSI 正确性级别的实现,我们在其中提高了更新和只读事务的新鲜度。使用 FPSI,可以防止交易读取任意旧版本,这是当前最先进解决方案的一个重大缺点。
本材料基于空军科学研究办公室资助的工作,奖励编号为 FA9550-17-1-0367,国家科学基金会的资助编号为 CNS-1814974。