Databases Reference
In-Depth Information
Single Transaction
X
write
A
V (v0 -> v1)
updated value of V
successfully replicated (copied over)
X'
V (v0 -> v1)
read
B
FIGURE 9-5
If the process of data replication between X and X' is asynchronous, there is no way of knowing the
exact time when it occurs. If one doesn't know when an event exactly occurs there is obviously no way
of guaranteeing if the event has occurred or not unless one seeks explicit consensus or confi rmation.
If you need to wait for a consensus or confi rmation, the impact on latency and availability of the
asynchronous operation is not very different from that of the synchronous operation. So one way or
the other where systems are distributed and faults can occur, the trade-off among data consistency,
system availability, and partition tolerance needs to be understood and choices need to be made where
two of these are favored over the third, and therefore, the third is compromised.
The choices could be as follows:
Option 1 — Availability is compromised but consistency and partition tolerance are
preferred over it.
Option 2 — The system has little or no partition tolerance. Consistency and availability
are preferred.
Option 3 — Consistency is compromised but systems are always available and can work
when parts of it are partitioned.
Search WWH ::




Custom Search