NoSql Tutorial 3 : CAP Theorm
In theoretical
computer science , the CAP theorem, also known as Brewer's theorem. In order to talk about NoSQL databases or when designing any distributed
system. CAP theorem states that there are three basic requirements which exist
in a special relation when designing applications for a distributed
architecture.
Consistency - This means that the data in the database remains
consistent after the execution of an operation. For example after an update
operation all clients see the same data.
Availability - This means that the system is always on (service
guarantee availability), no downtime.
Partition
Tolerance -
This means that the system continues to function even the communication among
the servers is unreliable, i.e. the servers may be partitioned into multiple
groups that cannot communicate with one another.
In theoretically it is impossible to fulfill all 3
requirements. CAP provides the basic requirements for a distributed system to
follow 2 of the 3 requirements. Therefore all the current NoSQL database follow
the different combinations of the C, A, P from the CAP theorem. Here is the
brief description of three combinations CA, CP, AP :
CA
- Single
site cluster, therefore all nodes are always in contact. When a partition
occurs, the system blocks.
CP - Some data may not be accessible, but the rest is still consistent/accurate.
AP - System is still available under partitioning, but some of the data returned may be inaccurate.
CP - Some data may not be accessible, but the rest is still consistent/accurate.
AP - System is still available under partitioning, but some of the data returned may be inaccurate.
The BASE
A
BASE system gives up on consistency.
·
Basically Available indicates that the
system does guarantee availability, in terms of the CAP
theorem.
·
Soft state indicates that the state of the system may change
over time, even without input. This is because of the eventual consistency
model.
Eventual
consistency indicates that the system will become consistent over time,
given that the system doesn't receive input during that time
Comments
Post a Comment