Skip to main content
QUICK REVIEW

[论文解读] Brief Announcement: Recoverable and Detectable Self-Implementations of Swap

T. Lehman, Hagit Attiya|arXiv (Cornell University)|Jan 1, 2023
Distributed systems and fault tolerance被引用 1
一句话总结

本论文首次实现了在系统级故障模型和独立故障模型下均可恢复且可检测的 SWAP 操作自实现,仅使用读取、写入和不可恢复的 SWAP 原语。关键贡献在于证明了在独立故障模型中,对于可区分操作(如 SWAP)而言,无锁恢复是不可能的,因此所提出的算法必须包含阻塞恢复代码。

ABSTRACT

Recoverable algorithms tolerate failures and recoveries of processes by using non-volatile memory. Of particular interest are self-implementations of key operations, in which a recoverable operation is implemented from its non-recoverable counterpart (in addition to reads and writes). This paper presents two self-implementations of the SWAP operation. One works in the system-wide failures model, where all processes fail and recover together, and the other in the independent failures model, where each process crashes and recovers independently of the other processes. Both algorithms are wait-free in crash-free executions, but their recovery code is blocking. We prove that this is inherent for the independent failures model. The impossibility result is proved for implementations of distinguishable operations using interfering functions, and in particular, it applies to a recoverable self-implementation of swap.

研究动机与目标

  • 设计一种在进程故障与恢复并发系统中可恢复且可检测的 SWAP 操作自实现。
  • 解决在系统级与独立故障模型中,仅使用其不可恢复版本以及读取和写入操作来实现 SWAP 的挑战。
  • 证明在独立故障模型中,使用干扰函数时,可区分操作(如 SWAP)的无锁实现是不可能的。
  • 通过提供一个符合 NRL 标准的 SWAP 原语,为更高层次的可恢复数据结构奠定基础。

提出的方法

  • 在系统级故障模型中提出一种自实现 SWAP 的方法,使用单一恢复协调者,确保在无崩溃执行中具有等待自由性并具备可检测性。
  • 在独立故障模型中设计一种自实现,基于仅使用读取和写入操作的可恢复互斥锁(RME 锁),并引入阻塞恢复代码。
  • 提出一种新颖的不可能性证明,用于证明在独立故障模型中,使用干扰函数实现可区分操作的无锁实现是不可能的。
  • 利用配置和可判定性论证,表明在无锁假设下会生成无限非终止执行,与进度要求相矛盾。
  • 将不可能性结果具体应用于 SWAP 的自实现,推广了先前关于 test&set 和 fetch&add 的结果。
  • 依赖可检测性和线性化规范(NRL)以确保在可恢复并发系统中正确性和嵌套安全性。

实验结果

研究问题

  • RQ1能否仅使用读取、写入和不可恢复的 SWAP 原语,在系统级故障模型中实现一种既可恢复又可检测的 SWAP 操作自实现?
  • RQ2在独立故障模型中,是否可以设计一种 SWAP 的自实现,使其在正常执行期间为无等待(wait-free),并在恢复时具备可检测性?
  • RQ3为何在独立故障模型中 SWAP 的自实现需要阻塞恢复代码?这是否是固有特性?
  • RQ4在独立故障模型中,能否存在一种使用干扰函数的可区分操作的无锁实现?
  • RQ5所提出的自实现算法在空间复杂度和正确性方面,与现有通用构造或手工实现的持久数据结构相比如何?

主要发现

  • 本论文首次实现了在系统级故障模型中既可恢复又可检测的 SWAP 操作自实现,仅使用读取、写入和不可恢复的 SWAP 原语。
  • 还为独立故障模型提出了一种 SWAP 的自实现,其在正常执行期间为无等待,但需要阻塞恢复代码。
  • 论文证明了在独立故障模型中,使用干扰函数实现可区分操作的无锁实现是不可能的,这意味着在该模型中 SWAP 的自实现必须采用阻塞恢复机制。
  • 该不可能性结果推广并统一了先前关于 test&set 和 fetch&add 的结果,表明此类限制广泛适用于具有干扰函数的操作。
  • 所提出的算法使用 O(m × n) 的空间,其中 m 为 SWAP 调用次数,论文尚未解决该空间是否可降低至 o(m),或 Ω(m) 是否为固有下限。
  • 本工作通过提供一个基础的 NRL 兼容 SWAP 原语,为未来构建更高层次的可恢复数据结构铺平了道路。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。