论文标题
可检测物体的空间复杂性的上限和下限
Upper and Lower Bounds on the Space Complexity of Detectable Object
论文作者
论文摘要
具有非易失性主内存(NVM)的系统的出现增加了对\ emph {可恢复的并发对象}设计的兴趣,这些杂物对崩溃失败是可靠的,因为它们的操作能够使用保留在NVM中的状态来从此类故障中恢复。特别有趣的是可恢复的算法,除了确保对象一致性外,还提供了\ emph {可检测性}的正确性条件,需要如果失败的操作是线性化的,并且在前一种情况下,需要恢复代码可以推断出。 在这项工作中,我们研究了可检测算法的空间复杂性及其所需的外部支持。我们做出以下三项贡献。首先,我们介绍了第一个可检测到的无限制空间的读取/写入和CAS对象实现。其次,我们证明,假设来自至少$ n $的域中的值是$ω(n)$,则每$ n $ process buffcestable可检测到的CAS实施的每$ n $ process cass实现的比特复杂性。最后,我们证明,以下几类对象的无障碍可检测实现:必须使用\ emph {辅助状态} - 状态提供其可回收操作,这是不可恢复的对应物实现所要求的 - 必须从操作外部或操作的呼叫者从外部操作中提供其价值。相反,如果无法检测到可回收算法,则不需要这种外部支持。
The emergence of systems with non-volatile main memory (NVM) increases the interest in the design of \emph{recoverable concurrent objects} that are robust to crash-failures, since their operations are able to recover from such failures by using state retained in NVM. Of particular interest are recoverable algorithms that, in addition to ensuring object consistency, also provide \emph{detectability}, a correctness condition requiring that the recovery code can infer if the failed operation was linearized or not and, in the former case, obtain its response. In this work, we investigate the space complexity of detectable algorithms and the external support they require. We make the following three contributions. First, we present the first wait-free bounded-space detectable read/write and CAS object implementations. Second, we prove that the bit complexity of every $N$-process obstruction-free detectable CAS implementation, assuming values from a domain of size at least $N$, is $Ω(N)$. Finally, we prove that the following holds for obstruction-free detectable implementations of a large class of objects: their recoverable operations must be provided with \emph{auxiliary state} -- state that is not required by the non-recoverable counterpart implementation -- whose value must be provided from outside the operation, either by the system or by the caller of the operation. In contrast, this external support is, in general, not required if the recoverable algorithm is not detectable.