|8. CAP Theorem आणि Consistency
Chapter 8System Design~1 min read

CAP Theorem आणि Consistency

Distributed Systems चा मूलभूत नियम

CAP Theorem सांगतो की कोणताही distributed system एकाच वेळी तिन्ही properties देऊ शकत नाही — Consistency, Availability, Partition Tolerance — फक्त दोनच मिळतात.

CAP Triangle

text
         Consistency
             /\
            /  \
           /    \
          / CA  CP\
         /    /\   \
        /    /  \   \
       ─────────────
   Availability    Partition
                   Tolerance

C = Consistency: सगळ्या nodes वर same data दिसतं
A = Availability: System नेहमी respond करतो
P = Partition Tolerance: Network failures असतानाही चालतं

CAP चे तीन combinations

  • CP (Consistency + Partition Tolerance): Network partition झाल्यावर availability sacrifice होतो. Example: HBase, Zookeeper, MongoDB (default settings)
  • AP (Availability + Partition Tolerance): Network partition झाल्यावर stale data मिळू शकतो. Example: Cassandra, CouchDB, DNS
  • CA (Consistency + Availability): Partition Tolerance नाही — single node databases. Example: Traditional RDBMS (single node)
📌

Modern distributed systems मध्ये Network Partition inevitable आहे — म्हणून प्रत्येकाला CP किंवा AP निवडावं लागतं. CA practically impossible आहे distributed systems मध्ये.

ACID vs BASE

Two consistency models

text
ACID (SQL Databases):
A = Atomicity: Transaction पूर्ण होतं किंवा काहीच नाही
C = Consistency: Database valid state मध्येच राहतो
I = Isolation: Concurrent transactions एकमेकांना affect नाही
D = Durability: Committed data survive करतो (crash नंतरही)

BASE (NoSQL Databases):
BA = Basically Available: नेहमी respond करतो (stale data ok)
S  = Soft State: Time नुसार data change होऊ शकतो
E  = Eventually Consistent: काही वेळाने सगळ्या nodes consistent होतात

Example: Instagram like count — exact count real-time दाखवणं
critical नाही. Eventual consistency ok.
Bank balance — ACID हवं, exact consistency critical.

Key Points — लक्षात ठेवा

  • CAP: Consistency, Availability, Partition Tolerance — फक्त 2 मिळतात
  • CP: Zookeeper, MongoDB | AP: Cassandra, DynamoDB
  • Partition Tolerance: always needed in distributed systems
  • ACID: SQL databases — strong consistency
  • BASE: NoSQL — eventual consistency, high availability
0/11 chapters पूर्ण