Part 2 · ডেটাবেস 📖 ১১ মিনিট পড়া 📝 ২০টি কুইজ

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

সাধারণ ভুল ধারণা

  1. "PACELC CAP-কে replace করেছে": না — supplement।
  2. "All AP system PA/EL": না — কিছু AP system normal time-এ consistent (PA/EC)।
  3. "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।