Eventual consistency

Very interesting post by Werner Vogels about building scalable and fault-tolerant systems.

The operative paragraph from the post is this one:

In the mid-nineties, with the rise of larger internet systems, these practices were revisited. At that time one started to give consideration to the idea that maybe availability was the more important property of these systems. As a result people were struggling what it should be traded-off against. Eric Brewer, Berkeley systems professor and at that time head of Inktomi, brought the different trade-offs together in a keynote to the PODC conference in 2000. Eric presented the CAP theorem, which states that of three properties of shared-data systems; data consistency, system availability and tolerance to network partition one can only achieve two at any given time. A more formal confirmation can be found in a paper by Gilbert and Lynch.

The post presents a very good introduction to the problem, possible solutions and trade-offs, but we need to dig into more complex cases to see how to handle the fiddly cases. For example, if you have multiple clients updating the same data with different values, how do you know which value is ‘correct’ value? Do you use some kind of counter? Or do you timestamp the data? If you timestamp the data, who is the timestamp authority?

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: