আরডিবিএমের গুচ্ছ নোএসকিউএল যেভাবে পারে না?


88

এনএসকিএল ডিবিএমএসের জন্য একটি বড় গুণফল হ'ল তারা আরও সহজে ক্লাস্টার করতে পারে। অনুমান হিসাবে নোএসকিউএল দিয়ে আপনি কয়েকশত সস্তা মেশিন তৈরি করতে পারেন যা বিভিন্ন টুকরো ডেটা সঞ্চয় করে এবং একবারে এগুলি সব জিজ্ঞাসা করে।

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


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

6
+ আরএসি এখনও একটি শেয়ারড ডিস্ক আর্কিটেকচার। এটি এখনও একটি কেন্দ্রীয় SAN সুইচ প্রয়োজন তাই ডিবিএমএস নোড যে কোনও স্টোরেজ দেখতে পারেন। যদিও আপনি এটি এম: এম আর্কিটেকচার তৈরি করে একাধিক এসএএন নিয়ন্ত্রণকারী থাকতে পারেন। টেরাদাতা হ'ল একটি শেয়ার্ড আর্কিটেকচার তবে এটি ডেটা গুদাম অ্যাপ্লিকেশনগুলির জন্য অনুকূলিত এবং আপনি এখনও সমস্ত নোড জুড়ে ডাটাবেসের অংশ (যেমন ডাইমেনশন টেবিল) প্রতিলিপি করতে পারেন। নেটেজা আরও কম সহায়ক। আপনাকে বিভাজনযুক্ত টেবিলের পৃথক বিভাগ পৃথকভাবে লোড করতে হবে।
কনসার্নড

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

6
@ ফ্রেগাস - নোএসকিউএলের কোনও আনুষ্ঠানিক সংজ্ঞা নেই। এটি কেবলমাত্র একটি বজওয়ার্ড যা বিভিন্ন ডাটাবেস পরিচালনা সিস্টেমে প্রয়োগ করা হয়। কোরামের প্রতিলিপি (একে একে ইভেন্টের ধারাবাহিকতা) এমন অনেকগুলি সিস্টেম (যদিও কোনও উপায়ে নয়) পারফরম্যান্স অপটিমাইজেশন হিসাবে ব্যবহার করে। আমি এমন কোনও আরডিবিএমএস পণ্য সম্পর্কে অবগত নই যা কোরামের প্রতিরূপ ব্যবহার করে - মূলধারার কোনওটিই এটি করে না। এটি কেন করা যায়নি তার তাত্ত্বিক কোনও কারণ নেই, তবে এটি ভাগ ও ডিস্ক সিস্টেমগুলি যেভাবেই ভাগ করে নেওয়া যায় এমন স্কেলাবিলিটির স্তরের কারণে এটি জটিল এবং সন্দেহজনক মানের হতে পারে।
কনসার্নড

@ কনসার্নডঅফটুনব্রিজেওয়েলস কোরামের প্রতিলিপি এসিডি-র সাথে বেমানান যদিও এই কারণেই এটি করা হবে না।
ক্রিস ট্র্যাভারস

উত্তর:


141

বিতরণ ডাটাবেস সিস্টেম 101

অথবা, বিতরণ করা ডেটাবেস - এফকে ' ওয়েব স্কেল ' বলতে আসলে কী বোঝায়?

বিতরণ করা ডাটাবেস সিস্টেমগুলি জটিল সমালোচক এবং বিভিন্ন স্বাদে আসে। আমি যদি বিশ্ববিদ্যালয়ে এই বিষয়ে আমার স্মরণে পড়া স্মৃতির পড়াশোনার গভীরতা সন্ধান করি তবে আমি বিতরণকৃত ডাটাবেস সিস্টেম গঠনের মূল ইঞ্জিনিয়ারিংয়ের কিছু সমস্যা ব্যাখ্যা করার চেষ্টা করব।

প্রথমত, কিছু পরিভাষা

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

পারমাণবিকতার জন্য লেনদেন সম্পূর্ণরূপে বা রোলব্যাকের সম্পূর্ণ প্রয়োজন। আংশিক সমাপ্ত লেনদেনগুলি কখনই দৃশ্যমান হওয়া উচিত নয় এবং সিস্টেমটি এমনভাবে তৈরি করতে হবে যা এটি ঘটতে বাধা দেয়।

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

বিচ্ছিন্নতা প্রয়োজন যে লেনদেন একে অপরের সাথে হস্তক্ষেপ করা উচিত নয়। সমান্তরাল বা ধারাবাহিকভাবে লেনদেনগুলি কার্যকর করা হলে সিস্টেমের একই ফলাফলের গ্যারান্টি দেওয়া উচিত। অনুশীলনে বেশিরভাগ আরডিবিএমএস পণ্য এমন মোডগুলিকে অনুমতি দেয় যা পারফরম্যান্সের বিরুদ্ধে বিচ্ছিন্নতার বাণিজ্য করে।

স্থায়িত্বের প্রয়োজন যে একবার প্রতিশ্রুতিবদ্ধ হয়ে গেলে, লেনদেনটি এমনভাবে স্থির স্টোরেজ থেকে যায় যা হার্ডওয়্যার বা সফ্টওয়্যার ব্যর্থতার পক্ষে শক্ত।

আমি নীচে বিতরণ করা সিস্টেমগুলিতে এই প্রয়োজনীয়তাগুলির কয়েকটি প্রযুক্তিগত বাধা কিছু ব্যাখ্যা করব।

শেয়ার্ড ডিস্ক আর্কিটেকচার: এমন একটি আর্কিটেকচার যেখানে ক্লাস্টারের সমস্ত প্রসেসিং নোডের সমস্ত স্টোরেজ অ্যাক্সেস থাকে। এটি ডেটা অ্যাক্সেসের জন্য একটি কেন্দ্রীয় বাধা উপস্থাপন করতে পারে। শেয়ারড ডিস্ক সিস্টেমের উদাহরণ হ'ল ওরাকল আরএসি বা এক্সাডেটা

অংশীদারি কিছুই নয় আর্কিটেকচার: একটি আর্কিটেকচার যেখানে ক্লাস্টারের নোডগুলির প্রসেসিং নোডের স্থানীয় স্টোরেজ থাকে যা অন্যান্য ক্লাস্টার নোডগুলিতে দৃশ্যমান হয় না। ভাগ করা কিছুই নেই সিস্টেমের উদাহরণগুলি হল টেরাদাতা এবং নেটিজা

শেয়ার্ড মেমোরি আর্কিটেকচার: এমন একটি আর্কিটেকচার যেখানে একাধিক সিপিইউ (বা নোড) মেমরির একটি ভাগ করা পুল অ্যাক্সেস করতে পারে। বেশিরভাগ আধুনিক সার্ভারগুলি একটি ভাগ করা মেমরির ধরণের। ভাগ করা মেমরি কিছু নির্দিষ্ট ক্রিয়াকলাপ যেমন: ক্যাশে বা পারমাণবিক সিঙ্ক্রোনাইজেশন আদিমগুলি সহজতর করে যা বিতরণকারী সিস্টেমে করা আরও কঠিন।

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

আধা-যোগ: একটি বিতরণ সিস্টেমের দুটি পৃথক নোডে রাখা ডেটা যোগদানের জন্য ব্যবহৃত একটি আদিম। মূলত এটিতে সারিটি সংযুক্ত হওয়ার জন্য জড়িত হওয়ার এবং এক নোড দিয়ে অন্য নোডের সাথে যোগ দেওয়ার সমাধানের জন্য পর্যাপ্ত তথ্য রয়েছে। একটি বড় প্রশ্নে এটি উল্লেখযোগ্য নেটওয়ার্ক ট্র্যাফিক জড়িত হতে পারে।

পরিণামের ধারাবাহিকতা: একটি শব্দটি লেনদেনের শব্দার্থবিজ্ঞানের বর্ণনা দেওয়ার জন্য ব্যবহৃত হয় যা লেখার সময় পারফরম্যান্সের জন্য বিতরণ করা সিস্টেমের সমস্ত নোডগুলিতে তাত্ক্ষণিক আপডেট (পড়ার বিষয়ে ধারাবাহিকতা) বন্ধ করে দেয় writes অবশেষে ধারাবাহিকতা হ'লবিতরণকৃত ডাটাবেসে লেনদেনের গতি বাড়ানোর জন্য পারফরম্যান্স অপটিমাইজেশন হিসাবে কোরামের প্রতিরূপ ব্যবহার করার একটি পার্শ্ব প্রতিক্রিয়াযেখানে পৃথক নোডগুলিতে একাধিক তথ্যের অনুলিপি রাখা হয়।

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

টু ফেজ কমিট (২ পিসি): প্রোটোকলের একটি পরিবার যা নিশ্চিত করে যে একাধিক শারীরিক সিস্টেমের সাথে জড়িত ডেটাবেস আপডেটগুলি ধারাবাহিকভাবে প্রতিশ্রুতিবদ্ধ বা রোল ব্যাক করে। কোনও সিস্টেমের মধ্যে বা একাধিক সিস্টেমে লেনদেন পরিচালকের মাধ্যমে 2PC ব্যবহৃত হয় তা তা উল্লেখযোগ্য ওভারহেড বহন করে।

দ্বি-পর্বের কমিট প্রোটোকলে লেনদেন পরিচালক অংশগ্রহীতা নোডকে লেনদেনকে এমনভাবে চালিয়ে যেতে বলে যাতে তারা গ্যারান্টি দিতে পারে যে এটি প্রতিশ্রুতিবদ্ধ হবে, তারপরে এই স্থিতিটি সংকেত করুন। সমস্ত নোড যখন একটি 'হ্যাপি' স্থিতি ফিরিয়ে দেয় তবে তা নোডগুলি কমিট করার সংকেত দেয়। সমস্ত নোডের প্রতিশ্রুতি সম্পূর্ণ হওয়ার ইঙ্গিত দিয়ে একটি উত্তর প্রেরণ না করা পর্যন্ত লেনদেনটি এখনও উন্মুক্ত হিসাবে বিবেচিত হয়। কমিটের সিগন্যাল দেওয়ার আগে যদি কোনও নোড নেমে যায় তবে লেনদেন পরিচালক নোডটি পুনরায় জিজ্ঞাসা করবেন যখনই এটি ইতিবাচক উত্তর না পাওয়া পর্যন্ত লেনদেনটি প্রতিশ্রুতিবদ্ধ নির্দেশ করে।

মাল্টি-ভার্সন কনকুরেন্সি কন্ট্রোল (এমভিসিসি): ডেটার নতুন সংস্করণটিকে আলাদা আলাদা জায়গায় লিখে কনটেন্ট পরিচালনা করা এবং অন্যান্য লেনদেনকে নতুন সংস্করণ প্রতিশ্রুতি না দেওয়া পর্যন্ত ডেটার পুরাতন সংস্করণটি দেখার অনুমতি দেয়। এটি নতুন সংস্করণটি লেখার জন্য অতিরিক্ত কিছু লেখার ট্রাফিকের ব্যয় করে ডাটাবেস বিষয়বস্তু হ্রাস করে এবং পুরানো সংস্করণটিকে অপ্রচলিত হিসাবে চিহ্নিত করে।

নির্বাচন অ্যালগরিদম: ব্যর্থতার আরও মোড থাকায় একাধিক নোড জড়িত বিতরণকারী সিস্টেমগুলি একক সিস্টেমের চেয়ে সহজাতভাবে কম নির্ভরযোগ্য। নোডের ব্যর্থতা মোকাবেলায় ক্লাস্টার্ড সিস্টেমগুলির জন্য বেশ কয়েকটি ক্ষেত্রে কিছু প্রক্রিয়া প্রয়োজন। নির্বাচনী অ্যালগরিদমগুলি এমন এক শ্রেণীর অ্যালগরিদম যেখানে 'লিডার' নোড 100% নির্ধারিত বা নির্ভরযোগ্য নয় এমন পরিস্থিতিতে বিতরণকৃত গণনার সমন্বয় করতে নেতা নির্বাচন করতে ব্যবহৃত হয়।

অনুভূমিক পার্টিশন: একটি টেবিলটি তার কী দ্বারা একাধিক নোড বা স্টোরেজ ভলিউম জুড়ে বিভক্ত হতে পারে। এটি একটি বড় ডেটা ভলিউমকে ছোট অংশগুলিতে বিভক্ত করতে এবং স্টোরেজ নোডগুলিতে বিতরণ করতে দেয়।

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

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

মাল্টি-মাস্টার প্রতিলিপি: একটি কৌশল যা একটি ক্লাস্টারে একাধিক নোড জুড়ে অন্য নোডগুলিতে প্রতিলিপি করতে দেয় allows এই কৌশলটি কিছু টেবিলগুলি পার্টিশনযুক্ত বা সার্ভারগুলি জুড়ে শার্ড করার বা অন্যকে ক্লাস্টার জুড়ে সিঙ্ক্রোনাইজ করার অনুমতি দিয়ে স্কেলিংয়ের সুবিধা দেয়। কোরামের বিপরীতে সমস্ত নোডে লিখিত প্রতিলিপি তৈরি করতে হবে, সুতরাং কোরামের প্রতিলিপি করা ব্যবস্থার চেয়ে মাল্টি-মাস্টার প্রতিলিপিযুক্ত আর্কিটেকচারে লেনদেন কমিটগুলি বেশি ব্যয়বহুল।

নন-ব্লকিং স্যুইচ: একটি নেটওয়ার্ক সুইচ যা কোনও অভ্যন্তরীণ বাধা ছাড়াই পোর্টগুলির সংখ্যার সাথে আনুপাতিক থ্রুপুট অর্জনের জন্য অভ্যন্তরীণ হার্ডওয়্যার সমান্তরালতা ব্যবহার করে। একটি নিষ্পাপ বাস্তবায়ন ক্রসবার মেকানিজম ব্যবহার করতে পারে, তবে এটি এন বন্দরগুলির জন্য ও (N ^ 2) জটিলতা রয়েছে, এটি ছোট স্যুইচগুলিতে সীমাবদ্ধ করে। বৃহত্তর সুইচগুলি O (N ^ 2) হার্ডওয়্যার প্রয়োজন ছাড়াই লিনিয়ার থ্রুপুট স্কেলিং অর্জনের জন্য একটি অ-ব্লকিং ন্যূনতম স্প্যানিং সুইচ নামে আরও একটি জটিল অভ্যন্তরীণ টপোলজি ব্যবহার করতে পারে।

বিতরণ করা ডিবিএমএস করা - এটি কতটা কঠিন হতে পারে?

বেশ কয়েকটি প্রযুক্তিগত চ্যালেঞ্জ অনুশীলনে এটি করা বেশ কঠিন করে তোলে। বিতরণ ব্যবস্থা তৈরির অতিরিক্ত জটিলতা ছাড়াও একটি বিতরণ করা ডিবিএমএসের স্থপতিটিকে কিছু জটিল ইঞ্জিনিয়ারিং সমস্যা কাটিয়ে উঠতে হবে।

বিতরণ সিস্টেমে পারমাণবিকতা: যদি কোনও লেনদেনের মাধ্যমে আপডেট হওয়া ডেটা একাধিক নোডে ছড়িয়ে থাকে তবে নোডের কমিট / রোলব্যাক সমন্বিত করতে হবে। এটি ভাগ করা-কিছুই নয় সিস্টেমগুলিতে একটি উল্লেখযোগ্য ওভারহেড যুক্ত করে। শেয়ার্ড-ডিস্ক সিস্টেমে এটি কোনও সমস্যা কম কারণ সমস্ত স্টোরেজ সমস্ত নোডের দ্বারা দেখা যায় তাই একটি একক নোড কমিটিকে সমন্বয় করতে পারে।

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

সীমাবদ্ধতা বিলম্বিত প্রয়োগের (অর্থাত্ ডিআরআই অনুমোদনের অপেক্ষায় অপেক্ষা করা) লেনদেনের সময়কালের জন্য লকটি রাখা দরকার। এই ধরণের বিতরণ লকিং একটি উল্লেখযোগ্য ওভারহেড সহ আসে।

যদি উপাত্তের একাধিক অনুলিপি রাখা হয় (আধা-যুক্ত হতে অপ্রয়োজনীয় নেটওয়ার্ক ট্র্যাফিক এড়ানোর জন্য এটি ভাগ করা-কিছুই নয় এমন সিস্টেমে প্রয়োজনীয় হতে পারে) তবে অবশ্যই ডেটার সমস্ত অনুলিপি আপডেট করতে হবে।

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

বিতরণ সিস্টেমে স্থায়িত্ব: একটি শেয়ার্ড ডিস্ক সিস্টেমে স্থায়িত্ব ইস্যুটি মূলত একটি শেয়ার্ড-মেমরি সিস্টেমের মতোই ব্যতিক্রম হয় যে বিতরণ করা সিঙ্ক্রোনাইজেশন প্রোটোকলগুলি নোড জুড়ে এখনও প্রয়োজনীয় still ডিবিএমএস অবশ্যই জগতে লগতে লিখতে এবং অবিচ্ছিন্নভাবে ডেটা লিখতে হবে। কোনও ভাগ করা-না থাকা সিস্টেমে ডেটা বা একাধিক নকল বিভিন্ন নোডে সঞ্চিত ডেটার অংশবিশেষ থাকতে পারে। নোডগুলি জুড়ে কমিটগুলি সঠিকভাবে ঘটে তা নিশ্চিত করার জন্য একটি দ্বি-ফেজ কমিট প্রোটোকল প্রয়োজন। এটি উল্লেখযোগ্য ওভারহেডও অনুপ্রবেশ করে।

একটি ভাগ করা-না-করা সিস্টেমে নোডের ক্ষতি হ্রাসের অর্থ সিস্টেমে ডেটা উপলব্ধ নেই। এই ডেটা প্রশমিত করতে একাধিক নোড জুড়ে প্রতিলিপি করা যেতে পারে। এই পরিস্থিতিতে ধারাবাহিকতার অর্থ হ'ল ডেটাটি সমস্ত নোডে প্রতিলিপি করা উচিত যেখানে এটি সাধারণত থাকে। এটি লেখার উপর যথেষ্ট ওভারহেড ব্যয় করতে পারে।

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

নোট করুন যে 'ইভেন্টের ধারাবাহিকতা' ধারাবাহিকতার উপর একটি বড় বাণিজ্য-অফ যা লেনদেনের প্রতিশ্রুতি হওয়ার সাথে সাথে ডেটা ধারাবাহিকভাবে দেখতে হবে যদি তা গ্রহণযোগ্য হবে না। উদাহরণস্বরূপ, একটি আর্থিক অ্যাপ্লিকেশনটিতে একটি আপডেট ব্যালেন্স অবিলম্বে পাওয়া উচিত।

শেয়ারড-ডিস্ক সিস্টেম

একটি ভাগ করা ডিস্ক সিস্টেম এমন এক যেখানে সমস্ত নোডের সমস্ত স্টোরেজে অ্যাক্সেস থাকে। সুতরাং, গণনা অবস্থানের থেকে পৃথক। অনেক ডিবিএমএস প্ল্যাটফর্মও এই মোডে কাজ করতে পারে - ওরাকল আরএসি যেমন একটি স্থাপত্যের উদাহরণ is

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

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

শেয়ারড-কিছুই না সিস্টেম

অংশীদারি-কিছুই নেই সিস্টেমগুলি এমন সিস্টেম যেখানে কমপক্ষে কিছু ডেটা স্থানীয়ভাবে কোনও নোডে রাখা হয় এবং অন্য নোডের কাছে সরাসরি দৃশ্যমান হয় না। এটি একটি কেন্দ্রীয় স্যুইচ এর বাধাটি সরিয়ে দেয়, নোডের সংখ্যা সহ ডাটাবেসকে স্কেল করতে (কমপক্ষে তত্ত্বে) allowing অনুভূমিক পার্টিশনটি নোডগুলিতে ডেটা বিভক্ত করতে দেয়; এটি ক্লায়েন্টের কাছে স্বচ্ছ বা নাও হতে পারে (উপরে ভাগ করে নেওয়া দেখুন)।

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

প্রায়শই, অর্ধ-যোগদানের প্রয়োজনীয়তা হ্রাস করার জন্য কোনও ভাগ করা-না-করা সিস্টেমের নোডগুলিতে ডেটাগুলি প্রতিলিপি করা হয়। এটি ডেটা গুদাম সরঞ্জামগুলিতে বেশ ভালভাবে কাজ করে কারণ মাত্রাগুলি হ'ল ফ্যাক্ট টেবিলের চেয়ে ছোট আকারের অনেকগুলি অর্ডার এবং সহজেই নোড জুড়ে অনুলিপি করা যায়। এগুলি সাধারণত ব্যাচে লোড করা হয় যাতে প্রতিলিপি ওভারহেড কোনও ট্রান্সজেকশনাল অ্যাপ্লিকেশনটির চেয়ে কম সমস্যার থাকে।

কোনও অংশীদারি আর্কিটেকচারের অন্তর্নিহিত সমান্তরালতা এগুলি ডেটা গুদামের বৈশিষ্ট্যযুক্ত টেবিল-স্ক্যান / সামগ্রিক প্রশ্নের বৈশিষ্ট্যগুলিতে ভালভাবে উপযুক্ত করে তোলে। এই ধরণের ক্রিয়াকলাপটি প্রসেসিং নোডের সংখ্যার সাথে প্রায় রৈখিকভাবে স্কেল করতে পারে। নোডগুলি জুড়ে বড় বড় যোগগুলিতে বেশি ওভারহেড জড়িত থাকে কারণ আধা-যোগদানের ক্রিয়াকলাপ প্রচুর নেটওয়ার্ক ট্র্যাফিক তৈরি করতে পারে।

লেনদেন প্রক্রিয়াজাতকরণ অ্যাপ্লিকেশনগুলির জন্য বৃহত ডেটা ভলিউম সরিয়ে নেওয়া কম দরকারী, যেখানে একাধিক আপডেটের ওভারহেড এই ধরণের আর্কিটেকচারকে একটি ভাগ করা ডিস্কের চেয়ে কম আকর্ষণীয় করে তোলে। সুতরাং, এই ধরণের আর্কিটেকচারটি ডেটা গুদাম অ্যাপ্লিকেশনগুলির বাইরে ব্যাপকভাবে ব্যবহৃত হয় না।

ভাগ করে নেওয়া, কোরামের প্রতিরূপ এবং পরিণামের ধারাবাহিকতা

কোরামের প্রতিলিপি এমন একটি সুবিধা যেখানে কোনও ডিবিএমএস উচ্চ প্রাপ্যতার জন্য ডেটার প্রতিলিপি করে। এটি স্যানের মতো বিল্ট-ইন উচ্চ-প্রাপ্যতা বৈশিষ্ট্যগুলি না থাকা সস্তা পণ্য হার্ডওয়্যারটিতে কাজ করার উদ্দেশ্যে তৈরি সিস্টেমগুলির জন্য দরকারী। এই ধরণের সিস্টেমে সিস্টেমটি কোনও নোডের হার্ডওয়্যার ব্যর্থতার জন্য সিস্টেমকে স্থিতিশীল করতে রিড পারফরম্যান্স এবং রিডান্ট্যান্ট স্টোরেজ করার জন্য একাধিক স্টোরেজ নোড জুড়ে ডেটা প্রতিলিপি করা হয়।

যাইহোক, সমস্ত নোডে লেখার অনুলিপি হ'ল এম (নোডের জন্য এন (এক্স)) এবং এন লিখেছেন। লেনদেনের প্রতিশ্রুতি দেওয়ার আগে লেখাকে অবশ্যই সমস্ত নোডে প্রতিলিপি তৈরি করতে হবে যদি তা লেখাগুলিকে ব্যয়বহুল করে তোলে। কোরামের প্রতিলিপিটি হ'ল একটি সমঝোতা যা লিখনকে সঙ্গে সঙ্গে নোডের একটি সাবসেটে অনুলিপি করা যায় এবং তারপরে অলসভাবে একটি পটভূমি টাস্ক দ্বারা অন্যান্য নোডে লিখিত হয়। ক্লায়েন্টের কাছে লেনদেনের প্রতিবেদন করার আগে নোদের একটি ন্যূনতম সাবসেট (কোরাম) এ প্রতিলিপি করা হয়েছে তা নিশ্চিত করে একটি নিখরচু ডিগ্রী সরবরাহ করার সময় রাইটগুলি আরও দ্রুত প্রতিশ্রুতিবদ্ধ হতে পারে।

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

ভাগ করে নেওয়ার জন্য ক্লায়েন্টকে ডেটাবেসগুলির মধ্যে ডেটা বিভাজন সম্পর্কে সচেতন হওয়া প্রয়োজন, প্রায়শই 'ধারাবাহিক হ্যাশিং' নামে পরিচিত এক ধরণের অ্যালগরিদম ব্যবহার করে। একটি তীক্ষ্ণ ডাটাবেসে ক্লায়ারটি ক্লাস্টারে কোন সার্ভারে কোয়েরি ইস্যু করতে হবে তা নির্ধারণ করার জন্য কীটি হ্যাশ করে। অনুরোধগুলি ক্লাস্টারে নোডগুলিতে বিতরণ করার সাথে সাথে একক কোয়েরি সমন্বয়কারী নোডের সাথে কোনও বাধা নেই।

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

উদাহরণস্বরূপ, গুগলের বিগ টেবিল নিজেই কোরামের প্রতিলিপি প্রয়োগ করে না, যদিও এটি জিএফএসে বসে, একটি ক্লাস্টারযুক্ত ফাইল সিস্টেম যা কোরামের প্রতিলিপি ব্যবহার করে। বিগ টেবিল (বা কোনও ভাগ করা-কিছুই নয়) একাধিক নিয়ামক সহ একটি নির্ভরযোগ্য স্টোরেজ সিস্টেম ব্যবহার করতে পারে এবং নিয়ন্ত্রণকারীদের মধ্যে ডেটা বিভাজন করে। সমান্তরাল অ্যাক্সেস তখন ডেটা বিভাজন মাধ্যমে অর্জন করা হবে।

আরডিবিএমএস প্ল্যাটফর্মগুলিতে ফিরে যান

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

ভাগ করা-ডিস্ক এবং ভাগ করে নেওয়া-তেমন সিস্টেমগুলি খুব বড় কাজের চাপ পর্যন্ত স্কেল করতে পারে। উদাহরণস্বরূপ, ওরাকল আরএসি 63৩ টি প্রসেসিং নোডগুলি (যা তাদের নিজস্ব ডানদিকে বড় এসএমপি মেশিন হতে পারে) এবং এসএএন-তে স্ট্রোচার কন্ট্রোলারের একটি নির্বিচার সংখ্যক সমর্থন করতে পারে। একটি আইবিএম সিসপ্লেক্স (জেডরিজ মেইনফ্রেমগুলির একটি ক্লাস্টার) একাধিক মেইনফ্রেমগুলি (প্রতিটি নিজস্ব প্রসেসিং পাওয়ার এবং I / O ব্যান্ডউইথের নিজস্ব) এবং একাধিক SAN নিয়ামককে সমর্থন করতে পারে। এই আর্কিটেকচারগুলি ACID শব্দার্থবিজ্ঞানের সাহায্যে খুব বড় লেনদেনের পরিমাণকে সমর্থন করতে পারে, যদিও তারা নির্ভরযোগ্য স্টোরেজ অনুমান করে। টেরাদাতা, নেতেজা এবং অন্যান্য বিক্রেতারা অত্যন্ত বড় ডেটা ভলিউমকে স্কেল করে এমন কিছু ভাগ করে নেওয়ার ভিত্তিতে উচ্চ-কর্মক্ষমতা বিশ্লেষণ প্ল্যাটফর্ম তৈরি করে।

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

একটি আকর্ষণীয় বিতর্ক

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

এই আর্কিটেকচারটি টেরাদাতার সাথে তুলনা করুন, যার স্টোরেজ এবং প্রসেসিংয়ের মধ্যে শারীরিক সখ্যতা রয়েছে (যেমন নোডগুলিতে ভাগ করা স্যানের পরিবর্তে স্থানীয় স্টোরেজ রয়েছে) আপনি যুক্তি দিতে পারেন যে বিশ্বব্যাপী দৃশ্যমান সমান্তরাল স্টোরেজ সিস্টেমের মাধ্যমে বিগ টেবিল / ম্যাপ্রেডুস একটি ভাগ করা ডিস্ক আর্কিটেকচার।

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

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

1 অবশ্যই প্রসেসিং এবং আই / ও থ্রুপুট উপলব্ধ কর্মক্ষমতা একটি সীমা গঠন করে কিন্তু নেটওয়ার্ক সুইচ একটি কেন্দ্রীয় পয়েন্ট যার মাধ্যমে সমস্ত ট্র্যাফিক পাস হয়।


10
এপিক। ভাল কাজ বুড়ো ছেলে।
মার্ক স্টোরি-স্মিথ

8
আশ্চর্য উত্তর!
ফিলি

1
বাহ, আমি মনে করি আপনি সেখানে এটি বেশ কভার করেছেন!
মিঃ ব্রাউনস্টোন

2
@ মিশেল হাউসনব্লাস দ্বিতীয় ভাবার বিষয়ে, আপনি যদি বিগ টেবিল ডিবিকে বিচ্ছিন্নভাবে গ্রহণ করেন তবে আমি কিছু ভাগ করে নেওয়ার দাবিতে যাব না। আমি এই নিবন্ধে এটি পুরো ম্যাপ্রেডিউস / হ্যাডোপ স্ট্যাকের সাথে (যেখানে প্রক্রিয়াজাতকরণ এবং স্টোরেজগুলির মধ্যে কোনও নির্দিষ্ট সখ্যতা নেই) এর সাথে সঙ্কলিত করেছি। আপনি এই যুক্তির অনুপযুক্তির পক্ষে যথেষ্ট যুক্তিযুক্তভাবে বিতর্ক করতে পারেন।
কনসার্নড

3
কিছু প্রযুক্তিগত চিন্তা। প্রকৃতপক্ষে কোরামের প্রতিলিপিটি হ'ল মাস্টার / স্লেভ সেটআপগুলির জন্য পোস্টগ্রেএসকিউএল এর স্ট্রিমিং প্রতিরূপে কি করা হয়। ডেটা কেবলমাত্র ডিফল্টরূপে মাস্টারের কাছে প্রতিশ্রুতিবদ্ধ তবে আপনার এটিও প্রয়োজন হতে পারে যে প্রতিশ্রুতি ফিরে আসার আগে এটি n দাসদের কাছেও লেখা হয়েছিল।
ক্রিস ট্র্যাভারস

21

সম্পর্কিত ডেটাবেসগুলি নোএসকিউএল সমাধানগুলির মতো ক্লাস্টার করতে পারে। এসিডি বৈশিষ্ট্য বজায় রাখা এটিকে আরও জটিল করে তুলতে পারে এবং এই বৈশিষ্ট্যগুলি বজায় রাখার জন্য ট্রেডঅফগুলি সম্পর্কে অবশ্যই সচেতন হওয়া উচিত। দুর্ভাগ্যক্রমে, ট্রেড-অফগুলি ঠিক কী কাজের চাপ এবং ডেটাবেস সফ্টওয়্যার ডিজাইনের সময় অবশ্যই নেওয়া সিদ্ধান্তের উপর নির্ভর করে।

উদাহরণস্বরূপ, ক্লাস্টারের থ্রুপুট স্কেলগুলি সুন্দরভাবে স্কেল করার পরেও প্রাথমিকভাবে ওয়ালটিপি ওয়ার্কলোডের অতিরিক্ত একক ক্যোয়ারী বিলম্ব থাকতে পারে। এই অতিরিক্ত বিলম্বটি অ্যাপ্লিকেশনটির উপর নির্ভর করে সমস্ত নজরে পড়তে পারে বা সত্যিকারের চুক্তি ভঙ্গকারী হতে পারে। সাধারণভাবে, ক্লাস্টারিং থ্রুপুট এবং ক্ষতিকারক বিলম্বকে উন্নত করবে, তবে কোনও অ্যাপ্লিকেশন এর প্রশ্নগুলি সমান্তরাল প্রক্রিয়াকরণে বিশেষভাবে জবাবদিহি করার ক্ষেত্রেও 'নিয়ম' সন্দেহ হয়।

ক্লাস্ট্রিক্স , আমি যে সংস্থার জন্য কাজ করি তা হ'ল তুলনামূলকভাবে উচ্চ গতির নেটওয়ার্কের সাথে সংযুক্ত একজাতীয় গণনা এবং স্টোরেজ নোডগুলির একটি সিরিজ। রিলেশনাল ডেটা হ্যাডগুলি নোডগুলি জুড়ে বিতরণ করা হয় প্রতি সূচক ভিত্তিতে খণ্ডগুলিতে আমরা 'স্লাইস' বলি। নোড বা ডিস্ক ব্যর্থতার ক্ষেত্রে স্থিরতার জন্য প্রতিটি স্লাইসে ক্লাস্টারে দুটি বা আরও বেশি প্রতিলিপি ছড়িয়ে থাকবে। মাইএসকিউএল ওয়্যার প্রোটোকল ব্যবহার করে ক্লায়াররা ক্লোস্টারটির যে কোনও নোডের সাথে সংযোগ করতে পারে qu

কোনও এসআইডি ডাটাবেসের উপাদানগুলি স্বাধীনভাবে বিবেচনা করা কিছুটা অপ্রাকৃতিক, কারণ এটির অনেকগুলি একসাথে ডভেটেল রয়েছে, তবে এখানে যায়:

পারমাণবিক - Clustrix পারমাণবিক পরিমাণ নিশ্চিত করার দুই ফেজ করে ব্যবহার করে। আপডেট এবং ডিলিট অপারেশনগুলি আমাদের বিতরণ করা লক ম্যানেজারের মাধ্যমেও সারিগুলিকে লক করে দেবে কারণ আমরা অভ্যন্তরীণভাবে সেই অপারেশনগুলি নির্বাচন করে সঠিকভাবে আপডেট / ডিলিট অপারেশনগুলির পরে নির্বাচন করুনকে নির্বাচন করুন।

পারমাণবিকতা স্পষ্টতই একটি লেনদেনে অংশ নেওয়া নোডগুলির মধ্যে বার্তাপ্রেরণের পরিমাণকে বাড়িয়ে তোলে এবং প্রতিশ্রুতি প্রোটোকল প্রক্রিয়া করার জন্য সেই নোডগুলিতে লোড বৃদ্ধি করে। এটি একটি বিতরণ সিস্টেম থাকার জন্য ওভারহেডের অংশ এবং প্রতিটি নোড প্রতিটি লেনদেনে অংশ নিলে স্কেলাবিলিটি সীমাবদ্ধ হবে তবে নোডগুলি কেবল একটি লেনদেনে অংশ নেয় যদি তাদের একটির প্রতিলিপি লেখা থাকে।

ধারাবাহিকতা - বিদেশী কীগুলি ট্রিগার হিসাবে প্রয়োগ করা হয়, যা প্রতিশ্রুতিবদ্ধ সময়ে মূল্যায়ন করা হয়। বড় পরিসরে আপডেট এবং ডিলিট অপারেশনগুলি লক হওয়ার কারণে আমাদের পারফরম্যান্সকে আঘাত করতে পারে, তবে আমরা ভাগ্যক্রমে এগুলি প্রায়শই দেখতে পাই না। কোনও লেনদেন আপডেট / কয়েকটি সারি মুছুন এবং তারপরে প্রতিশ্রুতিবদ্ধ হওয়া আরও বেশি সাধারণ।

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

বিচ্ছিন্নতা - ক্লাস্ট্রিক্স ধারক স্তরে এমভিসিসি বিচ্ছিন্নতা সরবরাহ করে। আমাদের পারমাণবিকতা গ্যারান্টি দেয় যে সমস্ত প্রযোজ্য প্রতিলিপিগুলি একটি নির্দিষ্ট লিখিত প্রতিবেদনগুলি প্রতিবেদন করার আগে আমরা প্রতিশ্রুতিবদ্ধ লেনদেনটি বেশিরভাগ ক্ষেত্রে বিচ্ছিন্নতার সমস্যা হ্রাস করে যা আপনার অ-গুচ্ছযুক্ত ক্ষেত্রে থাকে have

স্থায়িত্ব - নোড বা ডিস্ক ব্যর্থতার ক্ষেত্রে স্থিতিস্থাপকতা সরবরাহের জন্য প্রতিটি সম্পর্কিত রিলেশনাল ডেটা দুটি বা তার বেশি নোডে সংরক্ষণ করা হয়। এখানে সম্ভবত এটি লক্ষণীয় যে আমাদের পণ্যের অ্যাপ্লায়েন্স সংস্করণটির একটি এনভিআরএএম কার্ড রয়েছে যেখানে ওয়াল কার্য সম্পাদনের কারণে সংরক্ষণ করা হয়। একক দৃষ্টান্তের ডাটাবেসগুলি প্রতিটি প্রতিশ্রুতির পরিবর্তে অন্তরগুলিতে চেকপয়েন্ট করে তাদের ওএলএলগুলির কার্যকারিতা উন্নত করবে। এই পদ্ধতির কোনও বিতরণ ব্যবস্থায় সমস্যা রয়েছে কারণ এটি 'কোথায় রিপ্লে করে?' একটি জটিল প্রশ্ন। আমরা কঠোর স্থায়িত্বের গ্যারান্টি সরবরাহ করে এটিকে অ্যাপ্লায়েন্সে পাশ কাটা করি।


2
ধন্যবাদ @ ম্যাট - এটি কেবল আমাদের পরে উত্তর ছিল। একদিকে যেমন আমি সম্মত হই যে এসিডের উপাদানগুলি পৃথক করা খুব স্বাভাবিক নয় কারণ আমি আমার নিবন্ধটি লেখার সময় অনুরূপ কিছু পেয়েছি। আবার আপনার সময়টির জন্য ধন্যবাদ এবং আমরা এবং আপনার দলের আরও অবদানগুলি দেখে আমরা খুশি হব।
কনসার্নড অফফুনব্রিজওয়েলস

14

মৌলিক উত্তর হ'ল ধারাবাহিকতা মডেলটি আলাদা। আমি কনসার্নড অফ টিউনব্রিজের উত্তরটি প্রসারিত করতে এটি লিখছি যা সত্যই এর জন্য রেফারেন্স পয়েন্ট হওয়া উচিত।

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

ভিত্তি ধারাবাহিকতা মডেল অ-সমালোচনামূলক তথ্যের জন্য উদ্দিষ্ট দুর্বল ধারাবাহিকতা মডেল। গ্যারান্টিগুলি উল্লেখযোগ্যভাবে দুর্বল হওয়ার কারণে, মাল্টি-মাস্টার সিস্টেমে এ জাতীয় দুর্বল গ্যারান্টি সরবরাহের ক্ষমতা আরও সহজেই অর্জনযোগ্য কারণ গ্যারান্টিগুলি ভাল, দুর্বল।

আরডিবিএমএস এর স্কেল পাশাপাশি নোএসকিউএল সমাধানগুলি করতে পারে এবং করতে পারে!

তবে এমন কিছু ক্ষেত্রে রয়েছে যেখানে আরডিবিএমএস এমন একটি পরিমাণে স্কেল করতে পারে এবং করতে পারে যে নোএসকিউএল এমনকি মেলাতে সক্ষম নাও হতে পারে। এটি ঠিক তাই ভিন্নভাবে না। দৃ strong় ধারাবাহিকতা গ্যারান্টি না দিয়ে স্কেলিং আউট করা কীভাবে সম্ভব তার উদাহরণ হিসাবে আমি পোস্টগ্রেস-এক্সসিকে দেখব।

এই বিশেষ আরডিবিএমএস যেভাবে এটি করে তা হ'ল একটি প্রক্সি সহ একটি শার্পিং সলিউশন জাতীয় ধরণের প্রয়োগ এবং একটি ভাগ করে নেওয়া ডিস্ক আর্কিটেকচারের মতো তবে কোনওটির চেয়ে উল্লেখযোগ্য জটিল। এগুলি নোএসকিউএল সমাধানগুলির মতো একইভাবে স্কেল করে না এবং তাই ট্রেড অফগুলি আলাদা।

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

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

এই ক্ষেত্রে, পোস্টগ্রাস-এক্সসি কিছুটা নোএসকিউএল স্কেলিং বিকল্পগুলির মতো কিছু প্রস্তাব দেয় তবে অতিরিক্ত ধারাবাহিকতা গ্যারান্টি কারণে কিছু যুক্ত জটিলতা রয়েছে। আমি বুঝতে পারি যে সেখানে বাণিজ্যিক আরডিবিএমএস রয়েছে যা এই ধরণের স্কেলেবেলিটি অফার করে। টেরাদাতা এটা করে। অতিরিক্তভাবে ভাগ করা ডিস্ক সিস্টেমগুলি একইভাবে স্কেল আউট করতে পারে এবং ডিবি 2 এবং ওরাকল উভয়ই এই জাতীয় সমাধান সরবরাহ করে। সুতরাং এটি বলা মোটেও অন্যায় যে আরডিবিএমএস এর কাজটি করতে পারে না। তারা পারে. প্রয়োজন অবশ্য অতীতে এত ছোট ছিল যে বেশিরভাগ খেলোয়াড়ের মালিকানা সমাধানগুলি খুব সাশ্রয়ী মূল্যে তৈরি করতে স্কেলের অর্থনীতিগুলি অপর্যাপ্ত ছিল।

অবশেষে ভোল্টডিবি-তে একটি নোট। নোএসকিউএল সমাধানগুলির মতো, আমি ভোল্টডিবিকে একটি খুব বিশেষ সরঞ্জাম হিসাবে দেখছি। এটি খুব দ্রুত তবে বহু-রাউন্ড-ট্রিপ লেনদেন এবং ডিস্কে স্থায়িত্বের ব্যয়ে। এর অর্থ আপনার উদ্বেগগুলির একটি খুব আলাদা সেট। আরডিবিএমএসের অগ্রগামীগণ কোনও নুএসকিউএল সমাধান তৈরি করেন; ভোল্টডিবি হ'ল ;-)। ভোল্টডিবি অংশে দ্রুত কারণ এটি সমীকরণের স্থিতি এবং স্থায়িত্ব সংজ্ঞা দেয়। স্থায়িত্ব একটি নেটওয়ার্ক সম্পত্তি হয়ে ওঠে, কোনও আন্তঃ-হোস্ট সম্পত্তি নয় এবং একযোগে ক্রমানুসারে ক্রমানুসারে পরিচালিত হয় একযোগে একের পর এক ক্রিয়াকলাপ, অভ্যন্তরীণভাবে সমান্তরালভাবে, ক্রমানুসারে order এটি কোনও traditionalতিহ্যবাহী আরডিবিএমএস নয় (এবং এটি বিটিডব্লিউটি যেহেতু এটি placesতিহ্যবাহী আরডিবিএমএস রাখতে পারে না এমন জায়গায় এটি খুব ভাল বিষয় তবে রূপান্তরটিও খুব সত্য)।

সম্পাদনা: যোগদানের বিষয়টি সম্পর্কে বিবেচনা করাও গুরুত্বপূর্ণ। একটি ক্লাস্টার্ড সিস্টেমে, খুব আলাদা পারফরম্যান্স ইস্যুতে যোগদান করে। যদি সবকিছু একই নোডে থাকে তবে তারা পারফরম্যান্সের উন্নতি করতে পারে তবে যদি আপনাকে কোনও ভিন্ন নোডে রাউন্ড ট্রিপ করতে হয় তবে এটি খুব উচ্চ ব্যয় বহন করে। সুতরাং ডেটা মডেলগুলি পার্থক্য করে এবং ক্লাস্টারিংয়ের পদ্ধতির কার্যকারিতা প্রভাব থাকে। পোস্টগ্র্রেস-এক্সসি এবং পোস্টগ্রিস-এক্সএল এর মত দৃষ্টিভঙ্গি ধরে নিয়েছে যে আপনি জিনিসগুলি চিন্তা করতে মোটামুটি সময় ব্যয় করতে পারেন যাতে আপনি আপনার ডেটা যথাযথভাবে প্রসারিত করতে এবং একসাথে যুক্ত ডেটা রাখতে পারেন। কিন্তু এটি ডিজাইন ওভারহেড চাপিয়ে দেয়। অন্যদিকে, এই সংখ্যাগুলি অনেক নুএসকিউএল সমাধানগুলির চেয়ে অনেক ভাল sc উদাহরণস্বরূপ আমরা পোস্টগ্র্রেএসকিউএলে আমাদের 3.5PB ডেটার জন্য মূলত লগ বিশ্লেষণের জন্য কোনও নুএসকিউএল-এর মতো ক্লাস্টারিং কৌশল ব্যবহার করি। এবং আমাদের প্রচুর নকশা নোএসকিউএল ক্লাস্টারিং কৌশলগুলি দ্বারা গভীরভাবে অনুপ্রাণিত। তাই কখনও কখনও ডেটা মডেল পাশাপাশি ক্লাস্টারিং মডেলটিকেও সীমাবদ্ধ করে।


6

আমার উত্তর আগেরটির মতো লিখিত হবে না, তবে এখানে রয়েছে।

ইনগ্রেস খ্যাতির মাইকেল স্টোনব্রেকার একটি এমপিপি শেয়ারড-কিছুই না কলাম-স্টোর (ভার্টিকা) এবং একটি এমপিপি শেয়ারড-কিছুই নেই নতুন এসকিউএল ডাটাবেস (ভোল্টডিবি) তৈরি করেছেন যা একটি ক্লাস্টারে বিভিন্ন নোডের মধ্যে ডেটা বিতরণ করে এবং এসিডি বজায় রাখে। ভার্টিকা তখন থেকে এইচপি কিনেছিল।

আমি বিশ্বাস করি যে অন্যান্য নতুন এসকিউএল ডাটাবেসগুলি এসিডিও বজায় রাখে, যদিও আমি নিশ্চিত নই যে তাদের মধ্যে কতগুলি একটি ক্লাস্টারের উপর দিয়ে তাদের সারিগুলি বিতরণ করে ইত্যাদি।

স্টোনব্রেকার নো এসকিউএল এবং "ওল্ড এসকিউএল" এর সাথে সম্পর্কিত নতুন এসকিউএল-এ একটি আলোচনা দিয়েছেন। http://www.youtube.com/watch?v=uhDM4fcI2aI


2
এই "নতুন এসকিউএল" এবং "ওল্ড এসকিউএল" কী? আপনি কি স্পষ্ট করতে যত্ন নেবেন?
ypercubeᵀᴹ

1
"ওল্ড এসকিউএল" হবে এসকিউএল সার্ভার, ওরাকল, মাইএসকিউএল, পোস্টগ্রিজ এসকিউএল ইত্যাদি। এখানে নিউএসকিউএল-এর উইকিপিডিয়া থেকে সংজ্ঞা দেওয়া হয়েছে যা বেশ ভাল: "নিউএসকিউএল আধুনিক রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেমগুলির একটি শ্রেণি যা নোএসকিউএলের একই স্কেলেবল পারফরম্যান্স সরবরাহ করতে চায় seek ওলটিপি ওয়ার্কলোডের সিস্টেমগুলি এখনও একটি traditionalতিহ্যবাহী একক নোড ডাটাবেস সিস্টেমের এসিডি গ্যারান্টি বজায় রাখার সময়। আরও শিখতে আগ্রহী হলে আমি পোস্ট করা ভিডিওটি আমি অত্যন্ত সুপারিশ করি।
জিওফ্রোবিনসন

এখানে একটি নোট হিসাবে, এবং আমি আমার উত্তরে যেমন ব্যাখ্যা করেছি, ভোল্টডিবি সমীকরণের বাইরে স্থায়িত্ব এবং একচ্ছত্রতা নির্ধারণ করে স্কেলিবিলিটি পরিচালনা করে। ভোল্টডিবি'র সংক্ষেপে আপনি কোনও আন্তঃব্যবস্থা স্থায়িত্ব পাবেন না এবং ডেটাতে একত্রে অ্যাক্সেস পাবেন না। নতুন এসকিউএল একটি ইন্ডি 500 রেস গাড়ির মতো, তবে ওল্ড এসকিউএল এখনও আধা ট্রাক বা সম্ভবত ফ্রেইট ট্রেনের ইঞ্জিন।
ক্রিস ট্র্যাভারস

1

মাইএসকিউএল ক্লাস্টারিং ক্লাস্টার জুড়ে মাল্টি মাস্টারিং প্রতিলিপি এবং হ্যাশিং শারড ব্যবহার করে তীক্ষ্ণ হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.