15

CAP Theorem vs. BASE (NoSQL)

Hi, I’m trying to write a small paper for my work about NoSQL and have described the CAP Theorem as, if not all, then most NoSQL databases adheres to. I later read a paper about the difference between NoSQL and RDBMS which stated that NoSQL databases use the ACID counterpart BASE.

I know the properties of BASE, ACID, and CAP but I’ve a hard time figuring out what relation the CAP theorem and BASE has to each other. As I understand it, the CAP theorem leads to the BASE acronym but is it the right conclusion? Or is it two different approaches to “built” a database around which share some similar properties??

In this blog post (http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/) the author writes:

It’s harder to develop software in the fault-tolerant BASE world compared to the fastidious ACID world, but Brewer’s CAP theorem says you have no choice if you want to scale up. However, as Brewer points out in this presentation, there is a continuum between ACID and BASE. You can decide how close you want to be to one end of the continuum or the other according to your priorities.

In another article the author writes:

Many of the NOSQL databases above all have loosened up the requirements on Consistency in order to achieve better Availability and Partitioning. This resulted in systems know as BASE (Basically Available, Soft-state, Eventually consistent). These have no transactions in the classical sense and introduce constraints on the data model to enable better partition schemes (like the Dynamo system etc). A more comprehensive discussion of CAP, ACID and BASE is available in this introduction.

This clearly state that CAP results in BASE.

I hope someone can clarify this to me and remove my confusion..

Thanks
- Mestika

1 Answer 1

17

CAP is basically a continuum along which BASE and ACID are on opposite ends.

CAP Diagram

CAP is Consistency, Availability, and Partition tolerance. Basically you can pick 2 of those but you can't do all 3.

ACID focuses on Consistency and availability.

BASE focuses on Partition tolerance and availability and throws consistency out the window.

3
  • 1
    A good ACID database should focus on Consistency and Partition tolerance, because throwing partition tolerance out the window (to put it in your words) would break consistency whenever a partition occurs.
    – peter
    Commented Jun 9, 2016 at 13:41
  • 1
    ACID does not focus on availability. The 'A' stands for Atomicity and covers things like abort - rollback - restart.
    – momo
    Commented Dec 26, 2019 at 18:31
  • 1
    comment is correct (that "ACID does not focus on availability"); specifically (see link): ACID focuses on consistency, and "consistency hinders performance/availability" and "BASE was better (than ACID) at one specific thing, which was availabilty (at that time)" (see @ 16:45 infoq.com/presentations/NoSQL-History )
    – michael
    Commented Feb 20, 2021 at 13:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.