Add Consistency patterns section
This commit is contained in:
parent
3f20a5fafb
commit
156ddb11b7
26
README.md
26
README.md
@ -591,3 +591,29 @@ AP is a good choice if the business needs allow for [eventual consistency](#even
|
|||||||
* [CAP theorem revisited](http://robertgreiner.com/2014/08/cap-theorem-revisited/)
|
* [CAP theorem revisited](http://robertgreiner.com/2014/08/cap-theorem-revisited/)
|
||||||
* [A plain english introduction to CAP theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
|
* [A plain english introduction to CAP theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
|
||||||
* [CAP FAQ](https://github.com/henryr/cap-faq)
|
* [CAP FAQ](https://github.com/henryr/cap-faq)
|
||||||
|
|
||||||
|
## Consistency patterns
|
||||||
|
|
||||||
|
With multiple copies of the same data, we are faced with options on how to synchronize them so clients have a consistent view of the data. Recall the definition of consistency from the [CAP theorem](#cap-theorem) - Every read receives the most recent write or an error.
|
||||||
|
|
||||||
|
### Weak consistency
|
||||||
|
|
||||||
|
After a write, reads may or may not see it. A best effort approach is taken.
|
||||||
|
|
||||||
|
This approach is seen in systems such as memcached. Weak consistency works well in real time use cases such as VoIP, video chat, and realtime multiplayer games. For example, if you are on a phone call and lose reception for a few seconds, when you regain connection you do not hear what was spoken during connection loss.
|
||||||
|
|
||||||
|
### Eventual consistency
|
||||||
|
|
||||||
|
After a write, reads will eventually see it (typically within milliseconds). Data is replicated asynchronously.
|
||||||
|
|
||||||
|
This approach is seen in systems such as DNS and email. Eventual consistency works well in highly available systems.
|
||||||
|
|
||||||
|
### Strong consistency
|
||||||
|
|
||||||
|
After a write, reads will see it. Data is replicated synchronously.
|
||||||
|
|
||||||
|
This approach is seen in file systems and RDBMSes. Strong consistency works well in systems that need transactions.
|
||||||
|
|
||||||
|
### Source(s) and further reading
|
||||||
|
|
||||||
|
* [Transactions across data centers](http://snarfed.org/transactions_across_datacenters_io.html)
|
||||||
|
Loading…
Reference in New Issue
Block a user