Database Reference
In-Depth Information
TABLE 10.1
Consistency Models
Consistency Model
Guarantees
Strong consistency
Serializability
Serial order of concurrent executions of a set of
serialization units (set of operations).
Linearizability
Global total order of operations (single operations), every
operation is perceived instantaneously.
Weak consistency
Read-your-writes
A process always sees its last update with read operations.
Session consistency
Read-your-writes consistency is guaranteed only within a
session.
Monotonic reads
Successive reads must always return the same or more
recent value than a previous read.
Monotonic writes
A write operation must always complete before any
successive writes.
Causal consistency
Total ordering between operations that have causal
relation.
Eventual consistency
In the absence of updates, all replicas will gradually and
eventually become consistent.
Timeline consistency
All replicas perform operations on one record in the same
“correct order.”
POSIX standard for file systems implies that data replicated in the system should
always be consistent. Strong consistency guarantees that all replicas are in a consis-
tent state immediately after an update, before it returns a success. In a perfect world,
such semantics and a strong consistency model are the properties that every storage
system should adopt. However, insuring strong consistency requires mechanisms
that are very costly in terms of performance and availability and limit the system
scalability. This was not an issue in the early years of distributed storage systems as
the scale and the performance needed at the time were not as important. However, in
the era of Big Data and cloud computing, this consistency model can be penalizing,
in particular if such a strong consistency is actually not required by the applications.
10.3.1.1 System-Side Guarantees
Several models and correctness conditions to insure strong data consistency have
been proposed over the years. Two of the most common models are serializability
[17] and linearizability [18].
10.3.1.1.1 Serializability
The execution of a set of concurrent actions on a set of objects is serializable if it
is equivalent to a serial execution. Every action is considered as a serialization unit
and consists of one or more operations. Each operation may be performed concur-
rently with other operations from different serialization units. Serialization units are
equivalent to transactions in RDBMs and a single file system call in the case of file
systems.
 
Search WWH ::




Custom Search