中文

高效的部分快照实现

分布式、并行与集群计算 2020-06-12 v1 数据结构与算法

摘要

本文中,我们提出 λ\lambda-scanner 快照,它是快照对象的一种变体,支持任意固定数量 0<λn0 < \lambda \leq n 的不同 SCANSCAN 操作在任意时刻同时处于活跃状态。当 λ\lambda 等于系统中进程数 nn 时,λ\lambda-scanner 对象实现多扫描器对象;而当 λ\lambda 等于 11 时,λ\lambda-scanner 对象实现单扫描器对象。我们提出 λSnap\lambda-Snap 快照对象,一种无等待的 λ\lambda-scanner 快照实现,其 UPDATEUPDATE 操作步复杂度为 O(λ)O(\lambda)SCANSCAN 操作步复杂度为 O(λm)O(\lambda m)λSnap\lambda-Snap 的空间复杂度为 O(λm)O(\lambda m)λSnap\lambda-Snap 在步/空间复杂度与系统在任何给定时刻可承受的活跃 SCANSCAN 操作最大数量之间提供了权衡。我们的实现所具有的低空间复杂度使其在真实系统应用中更具吸引力。此外,我们提供了 λSnap\lambda-Snap 实现的一个稍作修改的版本,称为 partial λSnap\lambda-Snap,能够支持动态部分扫描操作。在此类对象中,进程可执行称为 PARTIAL_SCANPARTIAL\_SCAN 的修改后的 SCANSCAN 操作,其可获取快照对象的一部分而避免读取全部组件。本文中,我们首先给出 λSnap\lambda-Snap 的一个简单单扫描器版本,称为 1Snap1-Snap。我们提供 1Snap1-Snap 仅出于展示目的,因为它比 λSnap\lambda-Snap 更简单。1Snap1-Snap 中的 UPDATEUPDATE 步复杂度为 O(1)O(1),而 SCANSCAN 步复杂度为 O(m)O(m)。该实现使用 O(m)O(m)CASCAS 寄存器。

关键词

引用

@article{arxiv.2006.06048,
  title  = {Efficient Partial Snapshot Implementations},
  author = {Nikolaos D. Kallimanis and Eleni Kanellou and Charidimos Kiosterakis},
  journal= {arXiv preprint arXiv:2006.06048},
  year   = {2020}
}

备注

18 pages