Commenting on Software Technology Trends & Market Dynamics

Jnan Dash

Subscribe to Jnan Dash: eMailAlertsEmail Alerts
Get Jnan Dash: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Enterprise Mashups, Twitter on Ulitzer, Entrepreneurs and Innovators

Blog Feed Post

The CAP Theorem

CAP stands for Consistency, Availability, and Partitioning or Distributability

Eric Brewer, professor at UC Berkeley came up with the CAP theorem.

CAP stands for Consistency, Availability, and Partitioning or Distributability.

He says out of the 3, the maximum you can achieve is 2.

For example, if you’re Amazon and you want various servers distributed all over the world for better availability, then you must forfeit consistency. If you buy a book in New York while I buy one in Singapore from two different servers, then these two databases are out of sync and not consistent. Eric calls this “eventually consistent”, as they will be synchronized later.

Another example is of a major bank, where billions of dollars get transferred between accounts. Consistency is so important besides availability that you forfeit “distributability”. Hence you centralize everything out of one data center.

I somehow like this “maximum 2 out 3″ theorem. A friend who went to MIT for undergraduate as well as graduate school had told me that between sleep, grades, and friends you can only have two. If you want to sleep and do well in studies, then forget friends. If you like to socialize and also sleep, then forget grades. If you like friends and want to keep good grades, then forget sleep.

Another “2 out of 3″ example is an entrepreneur who has to pick two out of the 3 variables – work, family, and socializing. It’s well-known that founders of start-ups with families have to give up socializing. Some do the mistake of too much work and socializing and neglect the family.

In the new world of Web 2.0, Eric’s CAP theorem is very insightful. He defined BASE as opposed to ACID (atomicity, consistency, isolation, durability) as another end of the spectrum. BASE stands for Basically Available, Soft state, Eventually consistent. One must examine where the application fits in the scale between ACID and BASE and decide accordingly.

Read the original blog entry...

More Stories By Jnan Dash

Jnan Dash is Senior Advisor at EZShield Inc., Advisor at ScaleDB and Board Member at Compassites Software Solutions. He has lived in Silicon Valley since 1979. Formerly he was the Chief Strategy Officer (Consulting) at Curl Inc., before which he spent ten years at Oracle Corporation and was the Group Vice President, Systems Architecture and Technology till 2002. He was responsible for setting Oracle's core database and application server product directions and interacted with customers worldwide in translating future needs to product plans. Before that he spent 16 years at IBM. He blogs at http://jnandash.ulitzer.com.