PACELC Theorem
CAP যা বলে না — normal time-ও trade-off আছে।
CAP Theorem-এ বলে — partition হলে C বা A choose। কিন্তু distributed system সাধারণ সময়ে (যখন partition নেই) তখন কি সব যথাযথ? না — তখনও Latency vs Consistency trade-off আছে। এটাই PACELC-এর প্রস্তাব।
PACELC Theorem কী?
PACELC (২০১২, Daniel Abadi) — CAP-এর সম্প্রসারিত রূপ:
If Partition (P), choose Availability (A) or Consistency (C);
Else (E), choose Latency (L) or Consistency (C).
সংক্ষেপে:
- P + A/C: Partition-এ — Availability vs Consistency।
- E + L/C: Else (normal)-এ — Latency vs Consistency।
কেন PACELC গুরুত্বপূর্ণ?
CAP partition (যা rare) ছাড়া কিছু বলে না। কিন্তু distributed DB-এ partition rare হলেও latency-consistency trade-off সবসময় থাকে। উদাহরণ:
- Strong consistency = sync replicate = wait → latency বেশি।
- Eventual consistency = async = fast response → latency কম, কিন্তু stale risk।
PACELC Categories
PA/EL
- Partition-এ Availability
- Else Latency
- সবচেয়ে relax
- Cassandra, DynamoDB
PC/EC
- সবসময় Consistency
- Latency বেশি
- Strong guarantee
- VoltDB, BigTable, HBase
PA/EC
- Partition-এ Availability
- Else Consistency
- Hybrid
- MongoDB (default config)
PC/EL
- Partition-এ Consistency
- Else Latency
- বিরল
- কম common
DB-এর PACELC Classification
- PA/EL: Cassandra, DynamoDB, Riak, Voldemort — speed prioritized।
- PC/EC: VoltDB, BigTable, HBase — consistency always।
- PA/EC: MongoDB (default) — partition-এ available, normal-এ consistent।
- PC/EL: Yahoo PNUTS — uncommon hybrid।
বাস্তব উদাহরণ
Cassandra (PA/EL)
- Partition: AP — available থাকে।
- Normal: এক replica respond → fast।
- Trade-off: stale data risk।
- Use: massive scale, social media।
HBase (PC/EC)
- Partition: CP — strong consistency।
- Normal: sync replicate → ধীর।
- Trade-off: latency higher।
- Use: financial-like accuracy।
MongoDB (PA/EC default)
- Partition-এ: minority side write reject (CP-leaning)।
- Normal: primary থেকে read, sync replicate within majority।
- Configurable: read concern, write concern।
কেন এটা practical গুরুত্বপূর্ণ?
সিস্টেম ডিজাইন করার সময় শুধু CAP-এর "CP vs AP" দেখলে অসম্পূর্ণ চিত্র পাওয়া যায়:
- Twitter feed — partition rare, কিন্তু প্রতি request-এ latency critical → PA/EL উপযুক্ত।
- Banking — partition-এ চলবে না, normal-এ accuracy → PC/EC।
- E-commerce search — মূলত eventual consistency OK → PA/EL।
CAP vs PACELC
CAP (১৯৯৯)
- ৩-এর মধ্যে ২
- শুধু partition-এর কথা
- Normal time silent
- সরল
PACELC (২০১২)
- ২ trade-off
- Partition + Normal
- Latency-consistency-ও cover
- Complete picture
সাধারণ ভুল ধারণা
- "PACELC CAP-কে replace করেছে": না — supplement।
- "All AP system PA/EL": না — কিছু AP system normal time-এ consistent (PA/EC)।
- "PACELC শুধু theory": না — DB choice-এ practical implication।
Best Practices
- Use case-এ partition behavior + normal-time behavior দুটোই ভাবুন।
- Documentation-এ DB-এর PACELC classification খুঁজুন।
- Tunable consistency থাকলে — query level-এ মেলান।
- Banking → PC/EC; Social → PA/EL।
- Latency budget আগে define — ms-level dependency বুঝুন।
📌 চ্যাপ্টার সারমর্ম
- PACELC = CAP + normal-time trade-off।
- P + A/C; Else + L/C।
- PA/EL: Cassandra, DynamoDB। PC/EC: HBase, VoltDB।
- MongoDB PA/EC (default)।
- Real DB choice-এ PACELC বেশি useful।