ডিস্ট্রিবিউটেড সিস্টেম হল এমন একটি কম্পিউটারের ব্যর্থতা যার অস্তিত্ব আপনি জানেন না তা আপনার নিজের কম্পিউটারকে অব্যবহারযোগ্য করে তুলতে পারে।
লেসলি ল্যামপোর্টের এই বিখ্যাত উদ্ধৃতি, একজন এএম টুরিং অ্যাওয়ার্ড বিজয়ী, একটি বিতরণ ব্যবস্থা তৈরি এবং বজায় রাখার ক্ষেত্রে চ্যালেঞ্জগুলির সংক্ষিপ্ত বিবরণ দেয়৷ কিন্তু এত জটিল ব্যবস্থার প্রয়োজন কেন?
ইন্টারনেট এবং স্মার্ট ডিভাইসের আবির্ভাবের সাথে, যে পরিমাণ ডেটা প্রক্রিয়াকরণ করা দরকার তা বিস্ফোরিত হয়েছে। একটি Uber অর্ডার করা, Netflix-এ একটি শো দেখা, একটি সাধারণ Google অনুসন্ধান, অনলাইন কেনাকাটা, বা সোশ্যাল মিডিয়ার সাথে ইন্টারঅ্যাক্ট করার মতো সাধারণ দৈনন্দিন ক্রিয়াকলাপগুলি, সমস্ত তুচ্ছ কাজ যা আমরা গ্রহণ করি সেগুলি শত শত বিতরণ পরিষেবা দ্বারা চালিত হয়৷ এই সমস্ত পরিষেবাগুলি বিতরণ করা সিস্টেমে কিছু মৌলিক কাগজপত্রের ভিত্তির উপর নির্মিত।
যদিও এই তালিকাটি অবশ্যই বিস্তৃত নয়, এখানে আমার কিছু প্রিয় কাগজ রয়েছে যা বিতরণ সিস্টেমের জগতে ব্যাপক প্রভাব ফেলেছে।
প্রথাগত কাগজ না হলেও, এরিক ব্রুয়ার প্রথমে 2000 এসিএম সিম্পোজিয়াম অন প্রিন্সিপলস অফ ডিস্ট্রিবিউটেড কম্পিউটিং (পিওডিসি) এ একটি মূল বক্তব্যে একটি অনুমান হিসাবে এটি চালু করেছিলেন। কাগজটি পরবর্তীতে ন্যান্সি লিঞ্চ এবং শেঠ গিলবার্ট দ্বারা ব্রিউয়ারের অনুমান এবং সামঞ্জস্যপূর্ণ, উপলব্ধ, পার্টিশন-সহনশীল ওয়েব পরিষেবাগুলির সম্ভাব্যতাতে আনুষ্ঠানিকভাবে প্রমাণিত হয়েছিল।
এরিক ব্রুয়ারের CAP উপপাদ্য হল বিতরণ করা সিস্টেম তত্ত্বের একটি মৌলিক ধারণা, যা বলে যে একটি বিতরণ করা ডেটা স্টোরের পক্ষে একই সাথে তিনটি গ্যারান্টির মধ্যে দুটির বেশি প্রদান করা অসম্ভব: ধারাবাহিকতা, প্রাপ্যতা এবং পার্টিশন সহনশীলতা। এখানে উল্লিখিত অন্যান্য সমস্ত কাগজপত্র উপরের নীতি প্রয়োগ করে এবং তাদের সিস্টেমে প্রয়োজনীয় ট্রেডঅফ করে।
CAP থিওরেম সবসময়ই পেপার সম্পর্কে পাঠকদের বোঝার উপর ভিত্তি করে অনেক আলোচনার দিকে নিয়ে যায়। মার্টিন ক্লেপম্যানের " এ ক্রিটিক অফ দ্য সিএপি থিওরেম " ট্রেডঅফ নিয়ে আলোচনা করার জন্য একটি ভাল কাঠামো প্রদান করে।
2001 থেকে এই সেমিনাল পেপারে , লেসলি ল্যামপোর্ট একটি সহজ এবং অ্যাক্সেসযোগ্য উপায়ে একটি বিতরণ ব্যবস্থায় ঐক্যমত্য অর্জনের জন্য প্যাক্সোস অ্যালগরিদম উপস্থাপন করে। প্যাক্সোস-ভিত্তিক ঐকমত্য প্রোটোকলগুলি অনেকগুলি বিতরণ করা ডেটাবেস, স্টোরেজ সিস্টেম, মেসেজিং প্ল্যাটফর্ম এবং অনেক প্রযুক্তি কোম্পানি দ্বারা ব্যবহৃত সমন্বয় পরিষেবাগুলির মেরুদণ্ড গঠন করে। এটি অন্যান্য প্রযুক্তি যেমন Google এর চবি, Google এর স্প্যানার, Apache ZooKeeper, Apache BookKeeper ইত্যাদিকে ব্যাপকভাবে প্রভাবিত করেছে।
Google ফাইল সিস্টেম (GFS) পেপার কমোডিটি হার্ডওয়্যারে বৃহৎ বিতরণকৃত ডেটা-ইনটেনসিভ অ্যাপ্লিকেশনের জন্য একটি স্কেলযোগ্য বিতরণ করা ফাইল সিস্টেম প্রবর্তন করে, যা পরবর্তীতে অনেক বিতরণ করা ফাইল সিস্টেমের ভিত্তি। GFS HDFS-এর জন্য একটি প্রধান অনুপ্রেরণা হিসাবে কাজ করেছে, Apache Hadoop ফ্রেমওয়ার্ক দ্বারা ব্যবহৃত বিতরণকৃত ফাইল সিস্টেম এবং অবশেষে Amazon S3 (যদিও s3 মৌলিকভাবে আলাদা)।
এই কাগজটি MapReduce প্রোগ্রামিং মডেল প্রবর্তন করে, যা বিতরণকৃত কম্পিউটিং অবকাঠামো ব্যবহার করে বৃহৎ-স্কেল ডেটাসেট প্রক্রিয়াকরণের জন্য একটি মাপযোগ্য পদ্ধতির প্রদর্শন করে। MapReduce "বিগ ডেটা" বিপ্লবে একটি মুখ্য ভূমিকা পালন করেছে, যা সংস্থাগুলিকে বিশাল ডেটাসেটগুলি থেকে বিশ্লেষণ এবং অন্তর্দৃষ্টি অর্জনের জন্য বিতরণকৃত কম্পিউটিং শক্তি ব্যবহার করতে সক্ষম করে। আপনি দেখতে পাচ্ছেন কিভাবে GFS এবং MapReduce এর সমন্বয়ে Google কে "ইন্টারনেট" এর ডেটা সংগঠিত করতে পেটাবাইট ডেটা প্রক্রিয়া করার অনুমতি দেয়।
MapReduce কাগজ (GFS সহ) Apache Hadoop এর আশেপাশে নির্মিত টুলস এবং লাইব্রেরির একটি সম্পূর্ণ বাস্তুতন্ত্রের বিকাশে অনুপ্রাণিত করেছে যেমন Apache Hive (Hadoop-এ নির্মিত ডেটা গুদাম পরিকাঠামো), Apache Pig (Hadoop-এর জন্য উচ্চ-স্তরের ডেটা প্রবাহ ভাষা), Apache স্পার্ক (ইন-মেমরি ডেটা প্রসেসিং ইঞ্জিন), অ্যাপাচি এইচবেস (ডিস্ট্রিবিউটেড নোএসকিউএল ডাটাবেস), এবং আরও অনেক।
Bigtable পেপার Google-এ স্ট্রাকচার্ড ডেটা পরিচালনার জন্য একটি বিতরণ করা স্টোরেজ সিস্টেমের প্রতিনিধিত্ব করে। একবার MapReduce এবং GFS Google-কে খরচ-কার্যকর পদ্ধতিতে ডেটা প্রসেস করার অনুমতি দিলে, পরবর্তী ধাপটি ছিল নির্ভরযোগ্য এবং অত্যন্ত উপলব্ধ পদ্ধতিতে ডেটা অ্যাক্সেস সক্ষম করা। বিগটেবল ওয়েব ইন্ডেক্সিং, গুগল আর্থ এবং গুগল ফাইন্যান্সের মতো অ্যাপ্লিকেশনগুলির জন্য একটি নমনীয়, উচ্চ-পারফরম্যান্স সমাধান সরবরাহ করতে সক্ষম হয়েছিল।
MapReduce যেমন "বিগ ডেটা" যুগে বিপ্লব ঘটিয়েছে, বিগটেবল পেপার ছিল "NoSQL" যুগের চলমান শক্তি। বিগটেবল পেপারে প্রবর্তিত অনেক ডিজাইনের নীতি এবং স্থাপত্য ধারণাগুলি "Apache HBase", "Cassandra", "MongoD" ইত্যাদির মতো প্রযুক্তিতে ব্যবহার করা হয়েছিল। যদিও এই অ্যাপ্লিকেশনগুলির মধ্যে কিছু বিভিন্ন ডেটা মডেল ব্যবহার করতে পারে (যেমন, MongoDB), তারা অনুভূমিক পরিমাপযোগ্যতা, ত্রুটি সহনশীলতা এবং স্বয়ংক্রিয় শার্ডিংয়ের মতো সাধারণ নীতিগুলি ভাগ করে।
ডায়নামো পেপার অ্যামাজন দ্বারা বিকাশিত একটি অত্যন্ত উপলব্ধ কী-মূল্য স্টোরের নকশা এবং বাস্তবায়ন উপস্থাপন করে। ডায়নামো আপনার শপিং কার্টের আইটেমগুলির মতো অত্যন্ত গতিশীল ডেটাতে রিয়েল-টাইম অ্যাক্সেসের প্রয়োজনীয়তাকে সম্বোধন করেছে। গবেষণাপত্রটি বিতরণকৃত সিস্টেম ডিজাইনের একটি মূল নীতি হিসাবে "আন্তরিক ধারাবাহিকতা" ধারণাটি চালু করেছে, যা উচ্চ প্রাপ্যতা এবং কর্মক্ষমতা অর্জনের জন্য স্বাচ্ছন্দ্যের ধারাবাহিকতার গ্যারান্টি দেয় (হাই CAP উপপাদ্য!)।
কাগজ থেকে নিজেই, "বিগটেবলের তুলনায়, ডায়নামো এমন অ্যাপ্লিকেশনগুলিকে লক্ষ্য করে যেগুলি উচ্চ প্রাপ্যতার উপর প্রাথমিক ফোকাস সহ শুধুমাত্র কী/মান অ্যাক্সেসের প্রয়োজন যেখানে নেটওয়ার্ক পার্টিশন বা সার্ভার ব্যর্থতার পরিপ্রেক্ষিতে আপডেটগুলি প্রত্যাখ্যান করা হয় না।"
বিগটেবলের মতই, ডায়নামো পেপারটি রিয়াক, ভলডেমর্ট, ক্যাসান্দ্রা এবং এমনকি অ্যাপাচি কাফকার মতো ইভেন্ট স্ট্রিমিং প্রযুক্তির মতো পরবর্তী প্রযুক্তিগুলিকে অত্যন্ত প্রভাবিত করেছিল।
Facebook-এর দ্রুত বৃদ্ধির জন্য একটি ডাটাবেস সমাধান প্রয়োজন যা বিপুল পরিমাণ ডেটা পরিচালনা করতে এবং বিপুল সংখ্যক সমসাময়িক ব্যবহারকারীদের সমর্থন করতে সক্ষম। যদিও বিগটেবল এবং ডায়নামো তাদের নিজস্বভাবে বেশ প্রভাবশালী ছিল, ক্যাসান্দ্রা ছিল প্রথম প্রযুক্তি যা অন্যদের থেকে এক ধাপ এগিয়ে গিয়েছিল। পেপারটি প্রকাশের সাথে Apache লাইসেন্সের অধীনে একটি ওপেন-সোর্স অবদান হিসাবে এটি প্রকাশ করার মাধ্যমে, Facebook সমগ্র শিল্পে এই ধরনের প্রযুক্তির অ্যাক্সেস সক্ষম করার ক্ষেত্রে সহায়ক ছিল।
ক্যাসান্ড্রা একটি টিউনযোগ্য ধারাবাহিকতা মডেল প্রদান করে আগের দুটি থেকে নিজেকে আলাদা করেছে, ব্যবহারকারীদের তাদের প্রয়োগের প্রয়োজনীয়তার উপর ভিত্তি করে শক্তিশালী ধারাবাহিকতা (যেমন বিগটেবল) এবং চূড়ান্ত ধারাবাহিকতা (যেমন ডায়নামো) এর মধ্যে বেছে নিতে দেয়।
এই কাগজটি Apache ZooKeeper এর সাথে পরিচয় করিয়ে দেয় এবং বিতরণ করা সিস্টেমে অত্যন্ত নির্ভরযোগ্য এবং স্কেলযোগ্য সমন্বয় পরিষেবা প্রদানের জন্য এর নকশা নীতি এবং অ্যালগরিদম উপস্থাপন করে। ZooKeeper প্রবর্তনের আগে, সফ্টওয়্যার বিকাশকারীদের প্রায়শই বিতরণ করা সিস্টেমে বিতরণ সমন্বয় এবং ঐক্যমতের জন্য তাদের নিজস্ব অ্যাড-হক সমাধানগুলি বাস্তবায়ন করতে হয়েছিল।
ZooKeeper বিতরণ করা সমন্বয়ের জন্য একটি কেন্দ্রীভূত পরিষেবার প্রস্তাব করেছে, যেমন বিতরণ করা লক, নেতা নির্বাচন, এবং কনফিগারেশন পরিচালনার মতো আদিম অফার করে এটি ZooKeeper-এ জটিল সমন্বয় যুক্তি অফলোড করে বিতরণ করা অ্যাপ্লিকেশনগুলির বিকাশকে সহজ করার অনুমতি দেয়। Zookeeper ব্যবহার করার ক্ষেত্রে সবচেয়ে সাধারণ ব্যবহার হল পরিষেবা আবিষ্কারের জন্য।
এই কাগজটি Apache Kafka, একটি বিতরণ করা মেসেজিং সিস্টেমের সাথে পরিচয় করিয়ে দেয় যা ইভেন্ট স্ট্রিমগুলির উচ্চ-থ্রুপুট, ত্রুটি-সহনশীল প্রক্রিয়াকরণের জন্য ডিজাইন করা হয়েছে। একটি গবেষণা পত্র হিসাবে কাফকার প্রকাশনা এবং অ্যাপাচি প্রকল্প হিসাবে এটির মুক্ত-উৎস প্রকাশ এটিকে অত্যন্ত মাপযোগ্য এবং ত্রুটি-সহনশীল রিয়েল-টাইম ডেটা প্রক্রিয়াকরণ এবং ইভেন্ট-চালিত আর্কিটেকচারের জন্য একটি মানক বার্তাপ্রেরণ ব্যবস্থা হিসাবে প্রতিষ্ঠিত করেছে।
কাফকা রিয়েল টাইমে প্রচুর পরিমাণে ডেটা স্ট্রীম পরিচালনা করার জন্য ডিজাইন করা একটি অত্যন্ত মাপযোগ্য এবং ত্রুটি-সহনশীল মেসেজিং সিস্টেম চালু করেছেন। কাফকা ল্যাম্বডা আর্কিটেকচারের বিকাশে যথেষ্ট প্রভাবশালী ছিলেন, যা ব্যাচ প্রসেসিং এবং স্ট্রিম প্রসেসিংকে একত্রিত করে কম লেটেন্সি এবং উচ্চ থ্রুপুট সহ বিপুল পরিমাণ ডেটা পরিচালনা করতে।
এই কাগজটি রেসিলিয়েন্ট ডিস্ট্রিবিউটেড ডেটাসেট (RDDs), অ্যাপাচি স্পার্কের মূল বিমূর্ততা প্রবর্তন করে, যা বিতরণ করা ক্লাস্টার জুড়ে ত্রুটি-সহনশীল, ইন-মেমরি ডেটা প্রক্রিয়াকরণ সক্ষম করে। স্পার্কের ইন-মেমরি এক্সিকিউশন ইঞ্জিনটি MapReduce (যার একটি ডিস্ক-ভিত্তিক এক্সিকিউশন মডেল রয়েছে) তুলনায় উল্লেখযোগ্যভাবে দ্রুত কর্মক্ষমতা প্রদান করে, বিশেষ করে পুনরাবৃত্তিমূলক অ্যালগরিদম, মেশিন লার্নিং এবং ইন্টারেক্টিভ বিশ্লেষণের জন্য।
এই কাগজপত্রগুলি বিতরণ করা সিস্টেমে বিস্তৃত বিষয়গুলি কভার করে, যার মধ্যে স্টোরেজ সিস্টেম, ঐক্যমত্য অ্যালগরিদম, ত্রুটি সহনশীলতা এবং মাপযোগ্যতা রয়েছে। এগুলি পড়া বিতরণ ব্যবস্থা তৈরি এবং পরিচালনার নীতি এবং অনুশীলনের একটি শক্ত ভিত্তি প্রদান করবে।
আপনি যদি ডিস্ট্রিবিউটেড সিস্টেমে আপনার যাত্রা শুরু করেন এবং আরও শিখতে চান, অথবা আপনি ইতিমধ্যেই একজন বিশেষজ্ঞ হন এবং কেবল আপনার মৌলিক বিষয়গুলিকে রিফ্রেশ করতে চান, তবে বিতরণ করা সিস্টেমগুলিতে এই মৌলিক কাগজগুলির কিছু পড়ার চেয়ে শেখার ভাল উপায় আর নেই।