Optimistic replication, also known as lazy replication, is a strategy for replication, in which replicas are allowed to diverge.
Traditional pessimistic replication systems try to guarantee from the beginning that all of the replicas are identical to each other, as if there was only a single copy of the data all along. Optimistic replication does away with this in favor of eventual consistency, meaning that replicas are guaranteed to converge only when the system has been quiesced for a period of time. As a result, there is no longer a need to wait for all of the copies to be synchronized when updating data, which helps concurrency and parallelism. The trade-off is that different replicas may require explicit reconciliation later on, which might then prove difficult or even insoluble.
An optimistic replication algorithm consists of five elements:
Operation submission: Users submit operations at independent sites.
Propagation: Each site shares the operations it knows about with the rest of the system.
Scheduling: Each site decides on an order for the operations it knows about.
Conflict resolution: If there are any conflicts among the operations a site has scheduled, it must modify them in some way.
Commitment: The sites agree on a final schedule and conflict resolution result, and the operations are made permanent.
There are two strategies for propagation: state transfer, where sites propagate a representation of the current state, and operation transfer, where sites propagate the operations that were performed (essentially, a list of instructions on how to reach the new state).
Scheduling and conflict resolution can either be syntactic or semantic. Syntactic systems rely on general information, such as when or where an operation was submitted. Semantic systems are able to make use of application-specific information to make smarter decisions. Note that state transfer systems generally have no information about the semantics of the data being transferred, and so they have to use syntactic scheduling and conflict resolution.
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. Replication in computing can refer to: Data replication, where the same data is stored on multiple storage devices Computation replication, where the same computing task is executed many times.
This course is intended for students who want to understand modern large-scale data analysis systems and database systems. It covers a wide range of topics and technologies, and will prepare students
Flapping wings produce lift and thrust in bio-inspired aerial robots, leading to quiet, safe and efficient flight. However, to extend their application scope, these robots must perch and land, a feat widely demonstrated by birds. Despite recent progress, f ...
Modern large-scale data platforms manage colossal amount of data, generated by the ever-increasing number of concurrent users. Geo-replicated and sharded key-value data stores play a central role when building such platforms. As the strongest consistency m ...
This paper presents a novel simulation approach for generating synthetic households, addressing several literature gaps from the methodological viewpoint. The generation of hierarchical datasets such as complete households is challenging since it must guar ...