Large-scale replicated data type stores often resort to eventual consistency to guarantee low latency and high availability. It is widely accepted that programming over eventually consistent data stores is challenging, since arbitrary divergence among replicas is allowed. Moreover, pragmatic protocols actually achieve consistency guarantees stronger than eventual consistency, which can be and need to be utilized to facilitate the reasoning of and programming over replicated data types. Toward the challenges above, we propose the ViSearch framework for precise measurement of eventual consistency semantics. ViSearch employs the visibility-arbitration specification methodology in concurrent programming, which extends the linearizability-based specification methodology with a dynamic visibility relation among operations, in addition to the standard dynamic happen-before and linearization relations. The consistency measurement using ViSearch is NP-hard in general. To enable practical and efficient consistency measurement in replicated data type stores, the ViSearch framework refactors the existing brute-force checking algorithm to a generic algorithm skeleton, which further enables efficient pruning of the search space and effective parallelization. We employ the ViSearch framework for consistency measurement in two replicated data type stores Riak and CRDT-Redis. The experimental evaluation shows the usefulness and cost-effectiveness of consistency measurement based on the ViSearch framework in realistic scenarios.
翻译:广泛接受的观点是,最终一致的数据储存的方案编制具有挑战性,因为允许复制者之间任意存在差异; 此外,实用协议实际上实现了一致性,保证了比最终的一致性更强,这可以而且需要加以利用,以便利对复制数据类型的推理和编程; 为了应对上述挑战,我们提议ViSearch框架以精确衡量最终一致性的语义。 ViSearch在同时编程中采用可见度-仲裁规格方法,在两个复制的数据类型仓库Riak和CRIDT-Reserve中,我们采用ViSearch框架来测量一致性,在两个复制的数据类型仓库Riak和CRIDT-Reserva中,我们采用ViSearch框架来测量一致性。