Verifying Pipelined-RAM Consistency over Read/Write Traces of Data Replicas

Hengfeng Wei,Marzio De Biasi,Yu Huang,Jiannong Cao,Jian Lu
DOI: https://doi.org/10.1109/tpds.2015.2453985
IF: 5.3
2016-01-01
IEEE Transactions on Parallel and Distributed Systems
Abstract:Data replication technologies enable efficient and highly-available data access, thus gaining more and more interests in both the academia and the industry. However, data replication introduces the problem of data consistency. Modern commercial data replication systems often provide weak consistency for high availability under certain failure scenarios. An important weak consistency is Pipelined-RAM (PRAM) consistency. It allows different processes to hold different views of data. To determine whether a data replication system indeed provides PRAM consistency, we study the problem of Verifying PRAM Consistency over read/write traces (or VPC, for short). We first identify four variants of VPC according to a) whether there are Multiple shared variables (or one Single variable), and b) whether write operations can assign Duplicate values (or only Unique values) for each shared variable; the four variants are labeled VPC-SU, VPC-MU, VPC-SD, and VPC-MD. Second, we present a simple VPC-MU algorithm, called RW-CLOSURE. It constructs an operation graph $\mathcal{G}$ by iteratively adding edges according to three rules. Its time complexity is $O(n^5)$, where n is the number of operations in the trace. Third, we present an improved VPC-MU algorithm, called READ-CENTRIC, with time complexity $O(n^4)$. Basically it attempts to construct the operation graph $\mathcal{G}$ in an incremental and efficient way. Its correctness is based on that of RW-CLOSURE. Finally, we prove that VPC-SD (so is VPC-MD) is $\sf{NP}$-complete by reducing the strongly $\sf{NP}$-complete problem 3-PARTITION to it.
What problem does this paper attempt to address?