A system is consistent if an update is applied to all nodes at the same time. This pretty much means that standard database replication is not strongly consistent. Any system using a replica for reads runs the risk of using stale data.\n
A system in available if all clients can access some form of the data even during a partial failure.\n
\n
\n
\n
\n
\n
Since we need to maintain partition tolerance, what are we willing to sacrifice?\n
In the case of choosing consistency over availability, the cluster will maintain integrity by refusing some requests. It may shut down, refuse writes, or refuse reads/writes for the chunks of data that are unavailable. (hint: This is what Mongo does)\n
If a cluster chooses availability over consistency during a failure, it will still respond to all requests. Stale reads and conflicting writes are often the outcome of this.\n
\n
This means during times of failure, we are sacrificing availability\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Mongo handles this in a pretty simple way, avoid complex transactions.\n
\n
Once again, without complex transactions, this really isn’t a problem\n
\n
\n
\n
\n
Science of mongodb
1.
The Science ofMongoDB @ethangunderson MongoDC 2011
Be the first to comment