ঠিক আছে, আসুন কল্পনা করুন যে আপনার কাছে একটি বিতরণ করা ডাটাবেস রয়েছে। ধরা যাক আপনার ওরেগনে একটি নোড এবং ক্যালিফোর্নিয়ায় একটি রয়েছে। সিএপি তত্ত্বটি বলে যে এই জাতীয় ডাটাবেস সেট আপ করার সময় আপনি সমস্যার মধ্যে পড়বেন।
উদাহরণস্বরূপ, আপনি যদি একটি ডাটাবেস থেকে ডেটা জিজ্ঞাসা করেন তবে এটি অন্য ডাটাবেসের ডেটার মতো হওয়া দরকার। এটি নিশ্চিত করে যে আপনার একটি ডাটাবেসে যা কিছু মান আছে তা অন্যটিতে ( সিএপি তত্ত্বের ধারাবাহিকতা ) গ্যারান্টিযুক্ত । এটি করার ফলে আপনি একই ডাটাবেসে একটি ডেটাবেজে ডেটা আপডেট করতে এবং অন্য থেকে এটি জিজ্ঞাসা করতে পারবেন।
আমরা যখন অরেগন নোডে ডেটা আপডেট করি তখন ডেটাটি ক্যালিফোর্নিয়া নোডে প্রেরণ করা হয় যাতে ডাটাবেসগুলি সামঞ্জস্যপূর্ণ থাকে। সত্যিকারের ধারাবাহিকতা বজায় রাখার জন্য, আমাদের অবশ্যই তা নিশ্চিত করতে হবে যে উভয় ডাটাবেসই সত্যই ডেটা সংরক্ষণের অনুমতি দেওয়ার আগেই (ডিস্ট্রিবিউটেড লেনদেনের মাধ্যমে দ্বি-পর্বের কমিট) আপডেট করে। অন্য কথায়, ক্যালিফোর্নিয়া ডাটাবেস যদি কোনও কারণে ডেটা সংরক্ষণ করতে না পারে (যেমন হার্ডড্রাইভ ব্যর্থতা), তবে ওরেগনের ডাটাবেস ডেটা সংরক্ষণ করবে না এবং লেনদেনকে ব্যর্থ করবে।
উপরের মতো বিতরণ লেনদেনের সমস্যাটি তখনই আসে যখন আমরা উচ্চ প্রাপ্যতা পেতে চাই। উপরের এই দৃশ্যে, উভয় ডাটাবেস সিঙ্কে পাওয়ার চেষ্টা করার প্রক্রিয়াটি একটি খুব, খুব ধীর প্রক্রিয়া। (কল্পনা করুন, আমাদের ওরেগন থেকে ক্যালিফোর্নিয়ায় ডেটা প্রেরণ করতে হবে, এটি সেখানে পৌঁছেছে কিনা তা নিশ্চিত করে ফেলুন, উভয় ডাটাবেসে ডেটাতে লক রয়েছে কিনা তা নিশ্চিত করুন।) আমরা যখন এমন একটি সিস্টেম চাই যা দ্রুত এবং প্রতিক্রিয়াশীল থাকে তখনও উচ্চ চাহিদা সময়। (এটি সিএপি উপপাদ্যের উপলভ্যতা ।
সাধারণত, উচ্চ প্রাপ্যতার জন্য বীমা করার জন্য আমরা যা করি তা হ'ল আমরা বিতরণ লেনদেনের পরিবর্তে প্রতিলিপি ব্যবহার করি। সুতরাং ক্যালিফোর্নিয়া ডেটা গ্রহণ করতে পারে তার গ্যারান্টি না দিয়ে আমরা কেবল এগিয়ে গিয়ে ওরেগন নোডে এটি সংরক্ষণ করি এবং তারপরে আমরা যখন তথ্যটি পাই তখন ক্যালিফোর্নিয়ায় ডেটা প্রেরণ করি। এটি গ্যারান্টি দেয় যে ক্যালিফোর্নিয়া ডেটা সঞ্চয় করতে প্রস্তুত কিনা তা নির্বিশেষে আমরা সর্বদা ডেটা সংরক্ষণ করতে পারি।
এটি উপলভ্যতা উন্নত করে, তবে ধারাবাহিকতায় ব্যয় করে। দেখুন, কেউ যদি অরেগনে ডেটা আপডেট করেন এবং তারপরে কেউ (একই সময়ে) ক্যালিফোর্নিয়ায় ডেটা পড়েন তবে তারা নতুন ডেটা পাচ্ছেন না - ডাটাবেসগুলি আর সুসংগত নয়। আসলে, অরেগন ক্যালিফোর্নিয়ায় ডেটা না পাঠানো পর্যন্ত এগুলি সুসংগত হবে না!
সুতরাং, এটি উপলভ্যতা -vs- ধারাবাহিকতা বাণিজ্য বন্ধ।
পার্টিশন টলারেন্স সিএপি তত্ত্বের তৃতীয় দিক। বিভাজন, এই প্রসঙ্গে, এই ধারণাটি যে কোনও ডাটাবেস (বা অন্যান্য বিতরণকারী সিস্টেম) পৃথক বিভাগে বিভক্ত হতে পারে এবং এখনও সঠিকভাবে কাজ করে function
প্রশ্নটি হয়ে ওঠে, যখন উভয় ডাটাবেস সঠিকভাবে চলতে থাকে, তবে ওরেগন থেকে ক্যালিফোর্নিয়ার লিঙ্কটি বিচ্ছিন্ন হয়ে যায়?
যদি আমরা অরেগনে ডাটাবেস আপডেট করি তবে আমাদের ক্যালিফোর্নিয়ায় একরকম বা অন্য কোনও উপায়ে (বিতরণ লেনদেন বা প্রতিলিপি) পাওয়া দরকার। যাইহোক, যদি উভয়ের মধ্যে লিঙ্কটি বিভক্ত হয়, তবে সিস্টেমটি বিভাজন হয়ে গেছে এবং ডাটাবেসগুলি আর একসাথে লিঙ্ক করা হবে না।
যখন এটি ঘটে তখন আপনার পছন্দগুলি হ'ল উপলভ্যের ব্যয়ে আপডেটগুলি (ধারাবাহিকতা বজায় রাখতে) বা সামঞ্জস্যতার ব্যয়ে আপডেটগুলি (উপলভ্যতা বজায় রাখার জন্য) অনুমতি দেওয়া বন্ধ করে দেওয়া।
আপনি দেখতে পাচ্ছেন, পার্টিশন সহনশীলতা ধারাবাহিকতা এবং উপলভ্যতার মধ্যে সরাসরি বাণিজ্য-অফগুলি তৈরি করে।
এটির থেকে স্পষ্টতই এর থেকে আরও অনেক কিছু রয়েছে তবে বিতরণ ব্যবস্থার এই তিনটি প্রধান দিক একে অপরের পক্ষে ও বিপক্ষে কীভাবে কাজ করে সে সম্পর্কে উদাহরণ দুটি। জুলিয়ান ব্রাউন এর সিএপি তত্ত্বের ব্যাখ্যা আরও জানার জন্য একটি দুর্দান্ত জায়গা।