যদি এফএলপি উপপাদ্য প্রমাণ করে থাকে যে অ্যাসিঙ্ক্রোনাস নেটওয়ার্কে ঐকমত্যের নিখুঁত গ্যারান্টি অসম্ভব, তবে লেসলি ল্যাম্পোর্টের প্যাক্সোস প্রোটোকল (Paxos Protocol) দেখিয়ে দিয়েছে কীভাবে বাস্তব জগতে নিরঙ্কুশ গাণিতিক নিরাপত্তা বজায় রেখে ঐকমত্য অর্জন করা যায়। ১৯৯০ সালে প্রাচীন এজিয়ান সাগরের কাল্পনিক সংসদীয় ব্যবস্থার রূপক হিসেবে উপস্থাপিত প্যাক্সোস আজ গুগল স্প্যানার, গুগল চাবি ও অ্যাপাচি জুকিপারের মতো আধুনিক ক্লাউড অবকাঠামোর মূল মেরুদণ্ড।
১. প্যাক্সোসের নোড ভূমিকা
ক্লাসিক সিঙ্গেল-ডিক্রি প্যাক্সোসে নোডগুলো তিনটি তাত্ত্বিক ভূমিকায় কাজ করে:
- প্রপোজার (Proposers): ক্লায়েন্টের পক্ষ থেকে মান প্রস্তাব করে এবং অনন্য প্রস্তাব সংখ্যা $n$ জারি করে ক্লাস্টারকে ঐকমত্যের দিকে চালিত করে।
- অ্যাকসেপ্টর (Acceptors): এরা হলো কনসেনসাসের স্মৃতি। এরা প্রতিশ্রুতি দেয় এবং মান গ্রহণ করে। এদের সংখ্যাগরিষ্ঠ কোরামই কোনো সিদ্ধান্ত নিশ্চিত করে।
- লার্নার (Learners): সিদ্ধান্ত চূড়ান্ত হওয়ার পর ফলাফল কার্যকরকারী নিষ্ক্রিয় নোড।
২. প্যাক্সোস সিনড প্রটোকলের দুই ধাপ
একটি মান চূড়ান্তভাবে নির্ধারণ করতে প্যাক্সোস দুটি ধাপে সম্পন্ন হয়:
ফেজ ১: প্রিপেয়ার ও প্রমিজ (নেতৃত্ব গ্রহণ ও অতীত ইতিহাস জানা)
- ফেজ ১ক (Prepare): প্রপোজার একটি অনন্য ও ক্রমবর্ধমান প্রস্তাব সংখ্যা $n$ তৈরি করে অ্যাকসেপ্টরদের সংখ্যাগরিষ্ঠ কোরামের কাছে পাঠায়।
- ফেজ ১খ (Promise): অ্যাকসেপ্টর যদি দেখে যে $n$ তার দেখা পূর্বের যেকোনো প্রস্তাবের চেয়ে বড়, তবে সে প্রতিশ্রুতি দেয় যে সে $n$-এর চেয়ে ছোট কোনো প্রস্তাব আর গ্রহণ করবে না। একই সাথে অতীতে সে যদি কোনো মান গ্রহণ করে থাকে, তবে সেই গৃহীত মান ও তার নম্বর প্রপোজারকে ফেরত পাঠায়।
ফেজ ২: অ্যাকসেপ্ট ও অ্যাকসেপ্টেড (মান চূড়ান্তকরণ)
- ফেজ ২ক (Accept Request): সংখ্যাগরিষ্ঠ অ্যাকসেপ্টরের কাছ থেকে প্রমিজ পাওয়ার পর প্রপোজার তার মান $v$ নির্বাচন করে। যদি কোনো অ্যাকসেপ্টর পূর্বে গৃহীত কোনো মান পাঠিয়ে থাকে, তবে প্রপোজার বাধ্যতামূলকভাবে সর্বোচ্চ প্রস্তাব সংখ্যার সেই মানটিকেই গ্রহণ করে। আর যদি কেউ কোনো মান না পাঠিয়ে থাকে, তবে প্রপোজার তার নিজস্ব মান প্রস্তাব করতে পারে। এরপর সে $text{Accept}(n, v)$ বার্তা পাঠায়।
- ফেজ ২খ (Accepted): অ্যাকসেপ্টর যদি ইতোমধ্যে $n$-এর চেয়ে বড় কোনো প্রস্তাবের প্রমিজ না দিয়ে থাকে, তবে সে প্রস্তাবটি গ্রহণ করে এবং সিদ্ধান্ত চূড়ান্ত হয়।
৩. প্যাক্সোসের নিরাপত্তার গাণিতিক প্রমাণ
প্যাক্সোসের নিরাপত্তা পুরোপুরি দাঁড়িয়ে আছে পিজিয়নহোল নীতি (Pigeonhole Principle) এবং সংখ্যাগরিষ্ঠ কোরামের সমাপতনের (Intersection) ওপর। যদি মোট নোড সংখ্যা $N$ হয় এবং যেকোনো দুটি কোরাম $Q_1$ ও $Q_2$ হয়, তবে তাদের সাধারণ নোড থাকবেই:
$$|Q_1 cap Q_2| ge 1$$
এর ফলে নতুন কোনো প্রপোজার যদি ভবিষ্যতে নেতৃত্ব নিতে চায়, তবে তার ফেজ ১-এর কোরামে এমন অন্তত একজন অ্যাকসেপ্টর থাকবেই যে পূর্ববর্তী নেতার অনুমোদিত মানটি গ্রহণ করেছিল। ফলে নতুন নেতা অতীতে গৃহীত মানটিকে বাতিল করতে পারে না, বরং সেটিকে সামনে এগিয়ে নিতে বাধ্য হয়।
৪. ডুয়েলিং প্রপোজার ও লাইভলক
প্যাক্সোস নিরাপত্তা নিশ্চিত করলেও দুটি প্রপোজার যদি একসাথে একে অপরের প্রস্তাবের চেয়ে বড় সংখ্যা নিয়ে প্রতিযোগিতা শুরু করে, তবে একে অপরের ফেজ ২ আটকে দিয়ে লাইভলক (Livelock) সৃষ্টি করতে পারে।
৫. মাল্টি-প্যাক্সোস: বাস্তব ক্লাউড ইঞ্জিনিয়ারিং
প্রতিটি ডেটা এন্ট্রির জন্য দুই ধাপের প্রোটোকল চালানো অত্যন্ত ধীরগতির। তাই বাস্তব সিস্টেমে ব্যবহৃত হয় মাল্টি-প্যাক্সোস (Multi-Paxos):
- ফেজ ১ শুধুমাত্র একবার চালিয়ে একজন স্থায়ী লিডার নির্বাচিত হয়।
- পরবর্তী সব ট্রানজ্যাকশন সরাসরি ফেজ ২-এর মাধ্যমে মাত্র ১টি নেটওয়ার্ক রাউন্ড-ট্রিপে (Single RTT) সম্পন্ন হয়।
- টাইম-বাউন্ডেড লিডার লিজ (Leader Lease) ব্যবস্থার মাধ্যমে লিডার নোড নেটওয়ার্কে কোনো বার্তা না পাঠিয়েও লোকাল মেমোরি থেকে তাৎক্ষণিকভাবে রিড কোয়েরি সম্পন্ন করতে পারে।