4.1 Brewera সম্পর্কে ধারাবাহিকতা

শুরুতে, এরিক ব্রুয়ার একজন ডাটাবেস বিশেষজ্ঞ নন, এবং কখনও দাবি করেননি। তিনি বিতরণ করা সিস্টেমের সম্প্রদায়ের অন্তর্গত, এবং তার বিখ্যাত বক্তৃতা, যেখানে CAP "তত্ত্ব" উপস্থিত হয়েছিল, "প্রিন্সিপলস অফ ডিস্ট্রিবিউটেড কম্পিউটিং" সম্মেলনে দেওয়া হয়েছিল। (যাইহোক, দশ বছর পরে, 2010 সালে, তিনি আবার একই সম্মেলনে একটি আমন্ত্রিত বক্তৃতা দিয়েছিলেন এবং এই বক্তৃতায় তিনি বিশেষত, বিতরণ ব্যবস্থার বেশ কয়েকটি উদাহরণ দিয়েছেন, যার বিকাশকে বিবেচনায় নিয়েছিল " CAP এর উপপাদ্য"।) এই এলাকায় ডেটাবেসের ক্ষেত্রে ব্যবহৃত পদগুলির নিজস্ব ব্যাখ্যা রয়েছে।

বিশেষ করে, "তাত্ক্ষণিক সামঞ্জস্য" শব্দটির অর্থ হল যে ব্যবহারকারী কিছু ডেটা আপডেট অপারেশনের সফল সমাপ্তির বিষয়ে সিস্টেম থেকে বিজ্ঞপ্তি পাওয়ার পরে, এই অপারেশনের ফলাফল সমস্ত পর্যবেক্ষকদের কাছে তাত্ক্ষণিকভাবে দৃশ্যমান হয়ে ওঠে।

ঘটনাগত সামঞ্জস্যের অর্থ হল যে যদি কোনও নতুন ডেটা আপডেট অপারেশন যথেষ্ট দীর্ঘ সময়ের জন্য সিস্টেমে প্রবেশ না করে, তবে এটি আশা করা যেতে পারে যে সমস্ত পূর্ববর্তী ডেটা আপডেট অপারেশনের ফলাফল অবশেষে সিস্টেমের সমস্ত নোডে ছড়িয়ে পড়বে এবং সমস্ত প্রতিলিপি ডেটা সামঞ্জস্যপূর্ণ (আপাতদৃষ্টিতে, এটিকে "সমস্ত প্রতিলিপির একই অবস্থা হবে" হিসাবে বোঝা উচিত।

সামঞ্জস্যের এই বোধকে মাথায় রেখে, ব্রুয়ারের "তত্ত্ব" বেশ বোধগম্য এবং সুস্পষ্ট বলে বিবেচিত হতে পারে: ভাগ করা ডেটা সহ যে কোনও বিতরণ করা সিস্টেমে, নেটওয়ার্কের সামঞ্জস্য, প্রাপ্যতা এবং পার্টিশন সহনশীলতার যে কোনও দুটি বৈশিষ্ট্য একই সাথে নিশ্চিত করা যেতে পারে। এই বিষয়ে, ব্রিউয়ার এমনকি ACID বৈশিষ্ট্যের সেটকে তার প্রস্তাবিত BASE বৈশিষ্ট্যের সেটের সাথে বৈপরীত্য করেন (মূলত উপলব্ধ, সফট-স্টেট, ঘটনাগত সামঞ্জস্য - বেশিরভাগ ক্ষেত্রে উপলব্ধতা; অস্থির অবস্থা; চূড়ান্ত সামঞ্জস্য)। কিন্তু এই বিরোধিতা, আমার মতে, অযৌক্তিক, যেহেতু প্রথম ক্ষেত্রে আমরা লেনদেনের যৌক্তিক বৈশিষ্ট্য সম্পর্কে কথা বলছি, এবং দ্বিতীয়টিতে - বিতরণ করা সিস্টেমের শারীরিক বৈশিষ্ট্য সম্পর্কে।

4.2 "তত্ত্ব" এর প্রমাণ

অনেকে বিশ্বাস করেন যে ব্রুয়ারের "তত্ত্ব" আনুষ্ঠানিকভাবে প্রমাণিত হয়েছে। প্রকৃতপক্ষে, সেথ গিলবার্ট এবং ন্যান্সি লিঞ্চের গবেষণাপত্রটি এমন কিছু (প্রায়) আনুষ্ঠানিক সংজ্ঞা প্রবর্তন করে যার পরিপ্রেক্ষিতে "তত্ত্ব" সত্যিই একটি উপপাদ্য হয়ে ওঠে এবং প্রমাণিত হয়। যাইহোক, আসুন দেখি কিভাবে একটি বন্টন ব্যবস্থার ঐ তিনটি বৈশিষ্ট্য নির্ধারণ করা হয়, যার মধ্যে ব্রিওয়ারের "তত্ত্ব" অনুসারে, শুধুমাত্র দুটি বৈশিষ্ট্য একই সাথে সমর্থিত হতে পারে।

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

একটি অব্যর্থ নোড দ্বারা প্রাপ্ত প্রতিটি অনুরোধের উত্তর দিতে হলে একটি বিতরণ সিস্টেম সর্বদা উপলব্ধ থাকে। নেটওয়ার্ক পার্টিশনে সিস্টেমের স্থিতিস্থাপকতাকে এক নোড থেকে অন্য নোডে পাঠানো নির্বিচারে সংখ্যক বার্তা হারানোর ক্ষেত্রে সিস্টেমের কার্যকারিতা সংরক্ষণ হিসাবে মডেল করা হয়েছে।

এই সংজ্ঞাগুলির উপর ভিত্তি করে, হিলবার্ট এবং লিঞ্চ নিম্নলিখিত উপপাদ্য তৈরি করে (অসিঙ্ক্রোনাস নেটওয়ার্ক মডেলে কোনও ঘড়ি নেই, এবং নোডগুলি শুধুমাত্র প্রাপ্ত বার্তা এবং স্থানীয় গণনার ভিত্তিতে সিদ্ধান্ত নেওয়া উচিত):

একটি অ্যাসিঙ্ক্রোনাস নেটওয়ার্ক মডেলে, একটি পঠন/লেখা ডেটা অবজেক্ট বাস্তবায়ন করা সম্ভব নয় যা সমস্ত বৈধ মৃত্যুদন্ডের জন্য প্রাপ্যতা এবং পারমাণবিক সামঞ্জস্য বৈশিষ্ট্যের গ্যারান্টি দেয় (যারা বার্তা হারায়)।

এই উপপাদ্যটি সত্যিই খুব সহজভাবে আনুষ্ঠানিকভাবে "দ্বন্দ্ব দ্বারা" পদ্ধতি দ্বারা প্রমাণিত। নিবন্ধটি উপসংহারে যায় যে:

একটি অ্যাসিঙ্ক্রোনাস নেটওয়ার্ক মডেলে, একটি পঠন/লেখা ডেটা অবজেক্ট বাস্তবায়ন করা সম্ভব নয় যা সমস্ত বৈধ মৃত্যুদন্ডের জন্য অ্যাক্সেসযোগ্যতার বৈশিষ্ট্য এবং বৈধ মৃত্যুদন্ডের জন্য পারমাণবিক সামঞ্জস্যের গ্যারান্টি দেয় যেখানে বার্তাগুলি হারিয়ে যায় না।

উপরন্তু, মূল উপপাদ্যের সত্যতা একটি আংশিকভাবে সিঙ্ক্রোনাস নেটওয়ার্ক মডেলের জন্য প্রমাণিত হয়, যেখানে প্রতিটি নোডের একটি ঘড়ি থাকে, যে সময়টি একই হারে বৃদ্ধি পায়, কিন্তু যা সিঙ্ক্রোনাইজ করা হয় না, অর্থাৎ একই বাস্তব মুহূর্তে বিভিন্ন সময় দেখাতে পারে। এটি দেখানো হয়েছে যে এই ক্ষেত্রে একটি অনুরূপ পরিণতি প্রাপ্ত হয় না, এবং তাই, আংশিকভাবে সিঙ্ক্রোনাস নেটওয়ার্কগুলির জন্য "ভাল" বৈশিষ্ট্য সহ বিতরণ সিস্টেমগুলি সংগঠিত করার আরও সম্ভাবনা রয়েছে।

হ্যাঁ, এক অর্থে (ব্রুয়ারের অভিপ্রেত মতই নয়) গিলবার্ট এবং লিঞ্চকে প্রমাণ করা যেতে পারে যে একক বিতরণ ব্যবস্থায় একটি নেটওয়ার্কের পারমাণবিক ধারাবাহিকতা, প্রাপ্যতা এবং পার্টিশন সহনশীলতার বৈশিষ্ট্যগুলি একই সাথে নিশ্চিত করা অসম্ভব। কিন্তু সাধারণভাবে ডাটাবেস লেনদেন এবং বিশেষ করে এসিআইডি লেনদেনের সাথে এর কী সম্পর্ক?

4.3 ACID লেনদেন

এখানে জুলিয়ান ব্রাউন CAP এর "উপাদ্য" আলোচনার উপর তার নোটে এই সম্পর্কে লিখেছেন:

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

এটি খুব গুরুত্ব সহকারে নয়, তবে সততার সাথে লেখা হয়েছে। এবং, আসলে, পারমাণবিক সামঞ্জস্যের প্রয়োজনীয়তাকে এসিআইডি অর্থে লেনদেনগত সামঞ্জস্যের প্রয়োজনীয়তার সাথে মিশ্রিত করা উচিত নয়। ডাটাবেস অখণ্ডতা সীমাবদ্ধতা যৌক্তিক, যদি আপনি চান, ব্যবসার প্রয়োজনীয়তা. তারা অ্যাপ্লিকেশন ডোমেইন যুক্তি থেকে আসা. পারমাণবিক সামঞ্জস্যের প্রয়োজনীয়তা একটি খুব ভিন্ন ধরনের। এটি একটি বাস্তবায়নের প্রয়োজনীয়তা যা ঐতিহ্যগতভাবে ডাটাবেস শিল্পে শারীরিক সামঞ্জস্য হিসাবে উল্লেখ করা বিভাগে পড়ে (উদাহরণস্বরূপ, সূচক পরিবর্তনের ক্রিয়াকলাপ সম্পাদন করার সময়, সংশ্লিষ্ট B+ ট্রির সমস্ত ব্লকে অবশ্যই বৈধ মান থাকতে হবে এবং বৈধ রেফারেন্স দ্বারা লিঙ্ক করা উচিত। )

এবং এখানে ডাটাবেস সম্প্রদায়ের প্রতিনিধি ড্যানিয়েল আবাদি এবং আলেকজান্ডার থমসন তাদের নোটে বেশ গুরুত্ব সহকারে লিখেছেন:

... পরিমাপযোগ্য লেনদেন ব্যবস্থার উপলব্ধতার জন্য প্রয়োজনীয়তা ক্রমশ সমালোচনামূলক হয়ে উঠছে, এবং এটি সাধারণত নোডগুলির একটির ব্যর্থতার ক্ষেত্রে অনুরোধের প্রতিলিপি এবং স্বয়ংক্রিয় পুনর্নির্দেশের মাধ্যমে পূরণ করা হয়। অতএব, অ্যাপ্লিকেশন ডেভেলপাররা আশা করেন যে ACID সিস্টেমগুলির ধারাবাহিকতার গ্যারান্টিগুলি (মূলত ব্যবহারকারী-সংজ্ঞায়িত ইনভেরিয়েন্টগুলির জন্য স্থানীয় সমর্থন সমন্বিত) দৃঢ় সামঞ্জস্য নিশ্চিত করার জন্য প্রসারিত করা হবে (যে কোনও নির্দিষ্ট সময়ে একই ডেটার সমস্ত প্রতিলিপি অভিন্ন অনুলিপি হবে, যেমন এই ক্ষেত্রে সামঞ্জস্যতা CAP/PACELC অর্থে নিহিত।

অন্য কথায়, Brewer consistency এর সাথে ACID এর অর্থে সামঞ্জস্যের কোন সম্পর্ক নেই, কিন্তু এটি এমন সিস্টেমে যা ডেটা প্রতিলিপির মাধ্যমে উচ্চ প্রাপ্যতা প্রদানের উপর দৃষ্টি নিবদ্ধ করে যেটি শক্তিশালী প্রতিরূপ সামঞ্জস্য বজায় রাখা বাঞ্ছনীয়। এটি একটি ACID সম্পত্তি নয়, কিন্তু ব্যাপকভাবে সমান্তরাল DBMS-এর একটি প্রযুক্তিগত (শারীরিক) বৈশিষ্ট্য যা অ্যাপ্লিকেশন বিকাশকে সহজতর করে।

মাইকেল স্টোনব্রেকারের মতে, একটি উচ্চ-মানের আধুনিক ডিবিএমএস নির্মাণের চাবিকাঠি হল প্রযুক্তিগত সমঝোতার সঠিক পছন্দ। একটি নির্দিষ্ট প্রকৌশল সমাধান বাছাই করার সময়, অনেকগুলি বিষয়কে অবশ্যই বিবেচনায় নেওয়া উচিত - ভবিষ্যতের ব্যবহারকারীদের প্রয়োজনীয়তা, বিভিন্ন ব্যর্থতার পরিস্থিতির সম্ভাবনা ইত্যাদি, এবং কোন সাধারণ তাত্ত্বিক নির্দেশিকা (সিএপি "তত্ত্ব" সহ) দ্বারা গোঁড়াগতভাবে পরিচালিত হবে না।

স্টোনব্রেকার বিশ্বাস করে যে লেনদেনমূলক সমান্তরাল ডাটাবেস সিস্টেমের ক্ষেত্রে, উচ্চ প্রাপ্যতা এবং নেটওয়ার্ক পার্টিশন সহনশীলতা সমর্থন করার পক্ষে ব্রুয়ারের ধারাবাহিকতা ত্যাগ করা একটি দুর্বল ট্রেড-অফ কারণ (ক) রেপ্লিকা সামঞ্জস্য সিস্টেমের একটি খুব দরকারী বৈশিষ্ট্য; (b) লেনদেনের ব্যাপক সমান্তরাল DBMS-এর জন্য খুব বেশি সংখ্যক নোড সহ ক্লাস্টারের প্রয়োজন হয় না, তাই নেটওয়ার্ক বিভক্ত পরিস্থিতি অসম্ভাব্য; (c) সিস্টেমটি সহজেই অনুপলব্ধ হতে পারে, নেটওয়ার্ক পার্টিশনের কারণে নয়, উদাহরণস্বরূপ, নিয়মিত সফ্টওয়্যার ত্রুটির উপস্থিতির কারণে।

সুতরাং, NoSQL শিবিরের প্রতিনিধিদের উচ্চ কার্যকলাপ (পড়ুন NoACID), যারা প্রায়শই ব্রিওয়ারের "তত্ত্ব" উল্লেখ করে, ACID লেনদেনকে সমর্থন করে এমন ব্যাপক সমান্তরাল লেনদেনমূলক DBMS নির্মাণের তাত্ত্বিক অসম্ভবতার সাথে যুক্ত নয়, তবে সরলীকৃত সিস্টেমগুলির সাথে। যেগুলি শুধুমাত্র ACID লেনদেনকে সমর্থন করে না, একই সাথে প্রতিরূপ সঙ্গতিও সহজ এবং দ্রুত তৈরি করা হয়। তাদের সরল সংগঠনের কারণে, তারা খুব দ্রুত ডেটা প্রসেসিং করতে সক্ষম, এবং কিছু অ্যাপ্লিকেশনের জন্য এটি ডাটাবেস প্রযুক্তির অন্তর্নিহিত সমস্ত সুবিধার চেয়ে বেশি গুরুত্বপূর্ণ।

আসুন দেখি কিভাবে ডাটাবেস সম্প্রদায় এই চ্যালেঞ্জে সাড়া দেয়।