This paper studies the problem of asynchronous wait-free runtime verification of linearizability for concurrent shared memory implementations, where one seeks for an asynchronous wait-free concurrent shared memory algorithm for verifying at runtime that the current execution of a given concurrent implementation is linearizable. It proposes an interactive model for distributed runtime verification of correctness conditions, and shows that it is impossible to runtime verify linearizability for some common sequential objects such as queues, stacks, sets, priority queues, counters and the consensus problem, regardless of the consensus power of base objects. Then, the paper argues that actually a stronger version of the problem can be solved, if linearizability is indirectly verified. Namely, it shows that (1) linearizability of a class of concurrent implementations can be distributed runtime strongly verified using only read/write base objects (i.e. without the need of consensus), and (2) any implementation can be transformed to its counterpart in the class using only read/write objects too. As far as we know, this is the first distributed runtime verification algorithm for any correctness condition that is fully asynchronous and fault-tolerant. As a by-product, a simple and generic methodology for the design of self-enforced linearizable implementations is obtained. This type implementations produce outputs that are guaranteed linearizable, and are able to produce a certificate of it, which allows the design of concurrent systems in a modular manner with accountable and forensic guarantees. We are not aware of prior concurrent implementations in the literature with such properties. These results hold not only for linearizability but for a correctness condition that includes generalizations of it such as set-linearizability and interval-linearizability.
翻译:本文研究了对同时共享内存执行的线性运行不同步等待时间的运行时间核查问题, 即人们寻求对同时共享内存执行的线性进行无同步等待时间的运行时间对线性核查的问题, 即人们寻求一种不同步的等待时间同时共享内存算法, 以便在运行时核实当前同时执行的当前执行是线性可线性。 它为分布的运行时间对正确性运行时间对正确性进行不线性核查提出了一个互动模式, 并表明对于一些共同的连续序列对象, 如队列、 堆堆、 组、 优先队列、 计列、 计数和共识问题, 不论基础物体的协商一致能力如何。 然后, 该文件指出, 如果对线性能进行间接核查, 问题实际上可以解决更强的版本。 也就是说, (1) 一个同时同时执行的运行时间可以线性运行时间的线性, 只有读写/ 需要达成共识, 和 任何执行可以转换到类中的对应方, 只有读/ 线性物体。 我们知道, 对于任何正确性能的运行状态的运行过程的核查算算算, 它的正常的系统是正常的正常的。