Database Reference
In-Depth Information
propagation is done in a lazy fashion. Moreover, this update propagation process may
encounter even more delays considering cases where network latency is of a high order
such as for georeplication. Eventual consistency is ensured through mechanisms that
will guarantee the propagation process will successfully terminate at a future (maybe
unknown) time. Furthermore, Vogels [23] judges that, if no failures occur, the size of
the inconsistency window can be determined based on factors such as communication
delays, the load on the system, and the number of replicas in the system.
Eventual consistency by the mean of lazy asynchronous replication may allow
better performance and faster accesses to data. Every client can read data from local
replicas located in a geographically close datacenter. However, if an update is per-
formed on one of the replicas and is yet to be propagated to others because of the
asynchronous replication mechanism, a client reading from a distant replica may
read stale data.
10.3.3.2 Updates Conflict Handling
Eventual consistency is most suitable for a given class of applications. Therefore, its
updates conflict management may present serious problems for other types of applica-
tions. In [25], two examples that illustrate the typical use case and show the potential
gains with this consistency model were presented. The worldwide domain name sys-
tem (DNS) is a perfect example of a system for which eventual consistency is the best
fit. The DNS namespace is partitioned into domains where each domain is assigned
to a naming authority. This is an entity that will be responsible for this domain and
is the only one that can update it. This scheme eliminates the update-update con-
flict. Therefore, only the read-update conflict needs to be handled. As updates are
less frequent, to maintain system availability and fast accesses for users read opera-
tions, lazy replication is the best fit solution. Another example is the World Wide Web.
In general, each web page is updated by a single authority, the webmaster. This also
avoids any update-update conflict. However, to improve performance and lower read
access latency, browsers, and web proxies are often configured to keep a fetched page
in a local cache for future requests. As a result, a stale out-of-date page may be read.
However, many users find this inconsistency acceptable (to a certain degree) [25].
Within many applications, many updates conflicts may not need a strict order-
ing between them but can be handled based on the application semantics instead. A
famous example of this case is the Amazon user shop cart application where updates
can be easily merged no matter their order of occurrence. In this context, eventually
consistent systems provide, generally, mechanisms to handle updates conflicts.
10.3.4 C ausal C onsistenCy
Causal consistency is another model that relax strong consistency ordering as to
reduce the performance overhead. It utilizes the causal relation between operations
to provide minimum causality guarantees.
10.3.4.1 System-Side Guarantees
Causal consistency is a consistency model where a sequential ordering is always
preserved only between operations that have causal relation. Operations that execute
Search WWH ::




Custom Search