论文标题
持久线性化的途径
The Path to Durable Linearizability
论文作者
论文摘要
越来越多的文献提出了并发数据结构的新的,有效的持续版本,以确保在电源故障或崩溃后可以恢复一致的状态。它们的正确性通常按\ emph {持久的线性化}(DL)表示,该}(DL)要求单个库操作似乎以与实时顺序一致的顺序进行原子执行,此外,从崩溃返回的状态返回与该顺序的前缀相对应的状态。可悲的是,几乎没有任何正式的DL证明,而确实存在的DL证明涵盖了对特定(简化的)持久性模型的相当简单持久算法的正确性。 作为回应,我们提出了一种通用,强大的,模块化的和增量的证明技术,该技术可用于指导开发和建立DL。我们的技术是(1)一般,因为它与特定的持久性和/或一致性模型无关,(2)功能强大,它可以处理文献中最先进的持续算法,(3)模块化,因为它允许重新使用现有的线性化参数,并且(4)递增的要求,以便于建立Al dl dl dl dl dl dl dl dl dl extern dl dl dl n a and dl dl dl n a and dl。我们在持久集的各种版本上说明了这一技术,从而导致了Zuriel等人的无连接集。
There is an increasing body of literature proposing new and efficient persistent versions of concurrent data structures ensuring that a consistent state can be recovered after a power failure or a crash. Their correctness is typically stated in terms of \emph{durable linearizability} (DL), which requires that individual library operations appear to be executed atomically in a sequence consistent with the real-time order and, moreover, that recovering from a crash return a state corresponding to a prefix of that sequence. Sadly, however, there are hardly any formal DL proofs, and those that do exist cover the correctness of rather simple persistent algorithms on specific (simplified) persistency models. In response, we propose a general, powerful, modular, and incremental proof technique that can be used to guide the development and establish DL. Our technique is (1) general, in that it is not tied to a specific persistency and/or consistency model, (2) powerful, in that it can handle the most advanced persistent algorithms in the literature, (3) modular, in that it allows the reuse of an existing linearizability argument, and (4) incremental, in that the additional requirements for establishing DL depend on the complexity of the algorithm to be verified. We illustrate this technique on various versions of a persistent set, leading to the link-free set of Zuriel et al.