Implications of Brewer’s Cap Theorem
Dr. Shannon Block, CFE
Board Director?3-time CEO?President?Chief Digital Officer?Chief Strategy Officer?COO?CBDO?Doctorate in Computer Science?M.S. Physics?B.S. Applied Mathematics?B.S. Physics
This isn't about my favorite baseball cap representing my team which is the Colorado Rockies. This is about CAP Theorem which is a really important topic in the field of computer science that was proposed in 2000.
New advances in computer science and mobile communications have provided users with the opportunity to better access information and services regardless of their physical location. Mobile users can now query and update databases virtually. Understanding the CAP Theorem is vital to understand key tradeoffs that need to be made in the design and implementation.
The challenges of distributed systems, especially as it relates to scaling up and down, are described by Brewer’s CAP Theorem. The CAP Theorem stands for consistency, availability, and partition tolerance. Consistency means that only factual information is stored. Availability implies there will always be a response by the system and there will never be an error or timeout regardless of load or network failures. Partition tolerance suggests the network is not 100% guaranteed.
As society has moved from mainframes to distributed servers, there is a problem where some servers are up but the network connecting them is not. If both sides are doing the wrong thing, the CAP theorem helps the practitioner know what can be changed and what cannot. Also, when the system is designed, the intent and use of database need to be thought through to ensure the right tradeoffs are made.
Figure 1.1 shows a diagram of the CAP Theorem where only two of the three conditions can be achieved in a given moment. For example, if a delay is okay, consistency might be able to be sacrificed. Or, for instance, if there is a sales processing system, availability and partition tolerance may not be the right trade-off. Some systems guarantee strong consistency and provide best effort availability, other systems guarantee availability and provide best effort consistency while other sacrifice both consistency and availability.
An example of consistency and availability includes standard databases like SQL Server, MySQL, Oracle, and PostgreSQL. An example of availability and partition tolerance includes databases like Cassandra, CouchDB, and DynamoDB. An example of partition tolerance and consistency includes databases like MongoDB, HBase, Memcache, and Redis.
The goal of understanding CAP Theorem includes understanding how to maximize consistency and the availability requirements. The professional can leverage CAP Theorem to create innovative strategies for partitions and recovery solutions.
#CapTheorem #ComputerScience #TradeOffs
?Written by
?Shannon Block Shannon Block is an entrepreneur, mother and proud member of the global community. Her educational background includes a B.S. in Physics and B.S. in Applied Mathematics from George Washington University, M.S. in Physics from Tufts University and she is currently completing her Doctorate in Computer Science. She has been the CEO of both for-profit and non-profit organizations. Her children’s books “What If” and “Finding Solutions” are available on Amazon.com and Barnes & Noble. She often blogs on the topics of artificial intelligence, machine learning, cybersecurity and big data analytics reaching millions of readers.
Visit www.ShannonBlock.org for more on technology tools and trends.