C, A আর P - কোনটা কী?
বল্টু ভাই একটা মার্কার নিয়ে হোয়াইটবোর্ডে বড় বড় করে লিখলেনঃ C, A, P.
— “শোন মন্টু, ইন্টারনেটে বা অনেক বইপত্রে লেখা থাকে CAP থিওরি মানে হলো এই ৩টার মধ্যে যেকোনো দুইটা বেছে নেওয়া। কিন্তু ডিস্ট্রিবিউটেড সিস্টেমের দুনিয়ায় এটা এক্কেবারে ডাহা মিথ্যে কথা।”
মন্টু অবাক হয়ে বললো, “মিথ্যে কথা মানে? ভাই আপনিই তো একটু আগে…”
“আরে গাধা, পুরোটা শোন!” বল্টু ভাই ধমক দিলেন। “ডিস্ট্রিবিউটেড সিস্টেম মানেই হলো তোর একাধিক সার্ভার বা ওই গল্পের মত একাধিক বাস কাউন্টার থাকবে। আর একাধিক সার্ভার থাকলে তাদের মধ্যে নেটওয়ার্ক কেবল কাটা পড়বেই, রাউটার নষ্ট হবেই, অথবা স্যাটেলাইটে পানি ঢুকবেই। অর্থাৎ, Partition (P) ঘটবেই, এটা তুই চাইলেও ঠেকাতে পারবি না।”

বল্টু ভাই P-এর নিচে একটা আন্ডারলাইন করলেন।
— “যেহেতু নেটওয়ার্কের তার কাটা পড়া বা মেসেজ ড্রপ হওয়া তুই ঠেকাতে পারবি না, তাই ডিস্ট্রিবিউটেড সিস্টেমে পার্টিশন (P) ঘটবেই। আর পার্টিশন চলাকালীন তুই সিস্টেমকে বলবি যে, সে একসাথে কনসিস্টেন্সি (C) এবং অ্যাভেইলেবিলিটি (A) দুটোর গ্যারান্টি দেবে, সেটা জীবনেও হবে না। চল, ব্যাপারগুলো আরেকটু নিখুঁতভাবে বুঝাই।”
- P - Partition Tolerance (পার্টিশন টলারেন্স): তোর সার্ভারগুলোর মধ্যে যোগাযোগে কোনো কারণে দেরি হলে, মেসেজ ড্রপ করলে বা নেটওয়ার্ক বিচ্ছিন্ন হয়ে গেলেও সিস্টেম যেন পুরোপুরি ক্র্যাশ না করে নিজের কাজ চালিয়ে যেতে পারে। ডিস্ট্রিবিউটেড সিস্টেমে এটা থাকতেই হবে।
- A - Availability (অ্যাভেইলেবিলিটি): সিস্টেমের যে সার্ভারগুলো সচল আছে, তারা ইউজারের রিকোয়েস্ট পেলে একটা ভ্যালিড (নন-এরর) রেসপন্স দেবেই। সিস্টেম কখনো ইউজারকে 'সার্ভার ডাউন' বা এরর দেখিয়ে বসে থাকবে না। (অবশ্য পার্টিশনের সময় সার্ভারগুলো লেটেস্ট ডাটার বদলে একটু পুরোনো ডাটাও দিতে পারে, কিন্তু কাস্টমারকে খালি হাতে ফেরাবে না!)
- C - Consistency (কনসিস্টেন্সি): ইউজার রিকোয়েস্ট করলে তাকে একদম লেটেস্ট আপডেটটাই দিতে হবে, আর তা না পারলে সোজা এরর (Error) দেখিয়ে দিতে হবে। ঢাকা হোক বা সিলেট, সিস্টেম গ্যারান্টি দেবে যে কেউ কোনো পুরোনো বা ব্যাকডেটেড ডাটা দেখবে না। ডাটা দিলে একদম ফ্রেশটা দেবে, নইলে কাজই করবে না!
মন্টু মাথা নেড়ে বলল, “তার মানে ভাই যেকোনো ডিস্ট্রিবিউটেড সিস্টেমের জন্য আমার হয় CP (Consistency + Partition Tolerance) অথবা AP (Availability + Partition Tolerance) এর মধ্যে থেকে যেকোনো একটা বেছে নিতে হবে?”
“একদম ঠিক ধরেছিস!” বল্টু ভাই খুশি হয়ে বললেন। “এবার চল তোকে রিয়েল লাইফের দুইটা উদাহরণ দিই। তাহলেই বুঝবি কখন CP বানাতে হয়, আর কখন AP বানাতে হয়।”