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??
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..
I'll try to answer your question without using any of your acronyms, but with an example.
You have an income from employment of 2000 dollars on the 15th and last day of the month.
You have expenses of 5000 dollars per month. To make up the difference, you take on part time jobs writing programs that pays about 1000 every month, but the average invoice is 200 to 500 dollars.
You have expenses of mortgage 1600 due on the first, car loan 400 on the 16, car insurance 300 on the 18, the balance of your expenses are somewhat flexible, credit cards, cable tv, telephone, etc are net 21, so you can decide exactly which day to pay.
So let us consider: if you carry a minimum balance of 10000 in your account, then your only concern is to wait for the bank statement once a month and confirm the balance. However, as your minimum balance approaches zero, your need to know the exact balance, and when the next deposit will arrive becomes more critical.
What this example shows us is that aggravation times system cost is a constant. Carry a large balance (minimum inventory) and just check once a month, or carry no balance and check constantly, along with expediting payment.