উত্তর:
মঙ্গোডিবি ডিফল্টরূপে দৃ strongly়ভাবে সামঞ্জস্যপূর্ণ - আপনি যদি কোনও লেখার কাজ করেন এবং তারপরে একটি পঠন করেন তবে ধরে নিই যে লেখাটি সফল হয়েছে আপনি সবেমাত্র পড়েছেন এমন লেখার ফলাফল আপনি সর্বদা পড়তে সক্ষম হবেন। এটি কারণ মঙ্গোডিবি একটি একক-মাস্টার সিস্টেম এবং সমস্ত পাঠ প্রাথমিকভাবে প্রাথমিক হয়। যদি আপনি ariesচ্ছিকভাবে দ্বিতীয়টি থেকে পড়া সক্ষম করে থাকেন তবে মোংগোডিবি শেষ অবধি সামঞ্জস্যপূর্ণ হয়ে ওঠে যেখানে পুরানো ফলাফল পড়া সম্ভব হয়।
মঙ্গোডিবি প্রতিলিপি সেটগুলিতে স্বয়ংক্রিয় ব্যর্থতার মাধ্যমে উচ্চ-প্রাপ্যতা পেয়েছে: http://www.mongodb.org/display/DOCS/Replica+Sets
আমি লুস্কাস পোস্টের সাথে একমত আপনি কেবল এটি বলতে পারবেন না যে মঙ্গোডিবি হ'ল সিপি / এপি / সিএ, কারণ এটি আসলে সি, এ এবং পি এর মধ্যে একটি বাণিজ্য বন্ধ, যা উভয় ডাটাবেস / ড্রাইভার কনফিগারেশন এবং বিপর্যয়ের ধরণের উপর নির্ভর করে : এখানে একটি ভিজ্যুয়াল রেকাপ, এবং নীচে আরও বিস্তারিত ব্যাখ্যা।
Scenario | Main Focus | Description
---------------------------|------------|------------------------------------
No partition | CA | The system is available
| | and provides strong consistency
---------------------------|------------|------------------------------------
partition, | AP | Not synchronized writes
majority connected | | from the old primary are ignored
---------------------------|------------|------------------------------------
partition, | CP | only read access is provided
majority not connected | | to avoid separated and inconsistent systems
আপনি যখন কোনও একক সংযোগ বা সঠিক লিখন / পড়ুন কনসার্ন স্তর ( যা আপনাকে কার্যকর করার গতি ব্যয় করবে ) ব্যবহার করার সময় মঙ্গোডিবি দৃ strongly়ভাবে সামঞ্জস্যপূর্ণ । যতক্ষণ না আপনি এই শর্তগুলি পূরণ করেন না (বিশেষত যখন আপনি দ্বিতীয়-রেপ্লিকা থেকে পড়ছেন) মঙ্গোডিবি ঘটনাচক্রে সামঞ্জস্যপূর্ণ হয়।
মঙ্গোডিবি রেপ্লিকা-সেটের মাধ্যমে উচ্চ প্রাপ্যতা পেয়েছে । যত তাড়াতাড়ি প্রাথমিক নেমে যায় বা অন্যটি অনুপলব্ধ হয়ে যায়, তারপরে সেকেন্ডারিগুলি আবার উপলব্ধ হওয়ার জন্য একটি নতুন প্রাথমিক নির্ধারণ করবে। এর একটি অসুবিধা আছে: পুরানো প্রাথমিক দ্বারা সম্পাদিত প্রতিটি লেখা, তবে দ্বিতীয় স্তরের সাথে সিঙ্ক্রোনাইজ করা না হয়ে সেটটি পুনরায় সংযুক্ত হওয়ার সাথে সাথেই এটি পুনরায় ঘুরিয়ে ফেলা হবে এবং একটি রোলব্যাক-ফাইলে সংরক্ষণ করা হবে (পুরানো প্রাথমিকটি মাধ্যমিক এখন)। সুতরাং এক্ষেত্রে প্রাপ্যতার খাতিরে কিছু ধারাবাহিকতা উত্সর্গ করা হয়।
উল্লিখিত রেপ্লিকা-সেটের ব্যবহারের মাধ্যমে মঙ্গোডিবি পার্টিশন সহনশীলতা অর্জন করে: যতক্ষণ পর্যন্ত কোনও রেপ্লিকা-সেটের অর্ধেকেরও বেশি সার্ভার একে অপরের সাথে সংযুক্ত থাকে, ততক্ষণ একটি নতুন প্রাথমিক বাছাই করা যায় । কেন? দুটি পৃথক নেটওয়ার্ক নিশ্চিত করতে উভয়ই একটি নতুন প্রাথমিক চয়ন করতে পারে না। যখন পর্যাপ্ত সেকেন্ডারি একে অপরের সাথে সংযুক্ত না থাকে আপনি তখনও সেগুলি থেকে পড়তে পারেন (তবে ধারাবাহিকতা নিশ্চিত করা হয় না), তবে লিখবেন না। ধারাবাহিকতার স্বার্থে সেটটি কার্যত অনুপলব্ধ।
একটি জমকালো নতুন নিবন্ধ যেমন প্রকাশিত হয়েছে এবং কাইলের এই ক্ষেত্রটিতে কিছু দুর্দান্ত পরীক্ষাও করেছে , মংডোডিবি এবং অন্যান্য ডাটাবেসগুলি সি বা এ হিসাবে লেবেল দেওয়ার সময় আপনার যত্নবান হওয়া উচিত you
অবশ্যই সিএপি অনেক শব্দ ছাড়াই ট্র্যাক করতে সহায়তা করে যা ডাটাবেস সম্পর্কে এটির প্রভাব রয়েছে, তবে লোকেরা প্রায়শই ভুলে যায় যে সিএপ-এর সি অর্থ পারমাণবিক ধারাবাহিকতা (লিনিয়ারাইজিবিলিটি), উদাহরণস্বরূপ। এবং এটি শ্রেণিবদ্ধ করার চেষ্টা করার সময় আমাকে বুঝতে প্রচুর ব্যথা পেয়েছিল। সুতরাং, মঙ্গোডিবির পাশাপাশি দৃ strong় ধারাবাহিকতা দেওয়া, এর অর্থ এই নয় যে সি। এইভাবে, যদি কেউ এই শ্রেণিবদ্ধকরণ করে তবে আমি সন্দেহ কী এড়াতে এটি আসলে কীভাবে কাজ করে সে সম্পর্কে আরও গভীরতা দেওয়ার পরামর্শ দিই।
হ্যাঁ, এটি ব্যবহার করার সময় সিপি হয় safe=true
। এর সহজ অর্থ হল, ডেটা এটি মাস্টার্স ডিস্কে তৈরি করেছে। যদি আপনি এটি নিশ্চিত করতে চান যে এটি কিছু প্রতিলিপিতে এসেছিল, তবে 'ডাব্লু = এন' প্যারামিটারটি দেখুন যেখানে এনটি সেই রেপ্লিক্সের সংখ্যা যেখানে ডেটা সংরক্ষণ করতে হয়।
আমি মঙ্গোর জন্য পি সম্পর্কে নিশ্চিত নই। পরিস্থিতিটি কল্পনা করুন:
এখানে সমস্যাটি হ'ল ডাম্প ফাইলের আকার সীমাবদ্ধ এবং যদি আপনার দীর্ঘকাল পার্টিশন থাকে তবে আপনি চিরকালের জন্য আপনার ডেটা আলগা করতে পারেন।
আপনি বলতে পারেন যে এটি হওয়ার সম্ভাবনা নেই - হ্যাঁ, যদি না এমন মেঘ না থাকে যেখানে এটি মনে করার চেয়ে সাধারণ হয় common
এই উদাহরণটি হ'ল কেন কোনও ডাটাবেসে কোনও চিঠি দেওয়ার আগে আমি খুব সাবধানতা অবলম্বন করব। অনেক পরিস্থিতিতে আছে এবং বাস্তবায়ন নিখুঁত হয় না।
কেউ যদি জানেন যে এই দৃশ্যটি মঙ্গোর পরবর্তী প্রকাশগুলিতে সম্বোধন করা হয়েছে কিনা দয়া করে মন্তব্য করুন! (আমি কিছু সময়ের জন্য যা ঘটেছিল সব অনুসরণ করি না ..)
মংডব কখনই মাধ্যমিককে লেখার অনুমতি দেয় না। এটি মাধ্যমিক থেকে alচ্ছিক পড়ার অনুমতি দেয় তবে লেখায় না। সুতরাং আপনার প্রাথমিকটি যদি নিচে চলে যায় তবে আপনি কোনও মাধ্যমিক আবার প্রাথমিক হওয়া পর্যন্ত লিখতে পারবেন না। এইভাবে, আপনি সিএপি উপপাদ্যে উচ্চ উপলভ্যতা ত্যাগ করেন। কেবলমাত্র প্রাথমিক থেকে আপনার পাঠাগুলি রাখলে আপনার দৃ strong় ধারাবাহিকতা থাকতে পারে।
মোঙ্গোডিবি যখনই কোনও পার্টিশন রয়েছে তখন উপলভ্যতার উপর ধারাবাহিকতা নির্বাচন করে। এর অর্থ যা হ'ল যখন কোনও পার্টিশন (পি) থাকে তখন এটি উপলব্ধতা (এ) এর তুলনায় ধারাবাহিকতা (সি) চয়ন করে।
এটি বুঝতে, আসুন বুঝতে পারি যে মঙ্গোডিবি কীভাবে প্রতিলিপি সেটটি কাজ করে। একটি প্রতিরূপ সেট একটি একক প্রাথমিক নোড আছে। ডেটা প্রতিশ্রুতি দেওয়ার একমাত্র "নিরাপদ" উপায়টি হল সেই নোডে লিখুন এবং তারপরে সেটের বেশিরভাগ নোডের কাছে ডেটা করার জন্য অপেক্ষা করুন। (লেখার সময় পাঠানোর সময় আপনি ডাব্লু = সংখ্যাগরিষ্ঠের জন্য পতাকাটি দেখতে পাবেন)
বিভাগ হিসাবে দুটি পরিস্থিতিতে ঘটতে পারে:
মূলত, যখনই কোনও বিভাজন ঘটে এবং মঙ্গোডিবির সিদ্ধান্ত নেওয়ার দরকার হয় তবে এটি উপলব্ধতার উপর ধারাবাহিকতা বেছে নেবে। এটি সিস্টেমে লেখাগুলি গ্রহণ করা বন্ধ করে দেবে যতক্ষণ না এটি বিশ্বাস করে যে সেগুলি নিরাপদে সেই লেখাগুলি সম্পূর্ণ করতে পারে।
মংডোব ধারাবাহিকতা এবং পার্টিশন সহনশীলতা সরবরাহ করে ।
বিতরণকৃত (নোএসকিউএল) ডাটাবেসের প্রসঙ্গে, এর অর্থ হ'ল ধারাবাহিকতা এবং উপলভ্যতার মধ্যে সর্বদা বাণিজ্য বন্ধ হয়ে যায়। এটি কারণ কারণ বিতরণ করা সিস্টেমগুলি সর্বদা অবিচ্ছিন্নভাবে পার্টিশন সহনশীল হয় (যেমন এটি পার্টিশন সহনীয় না হলে এটি কেবল কোনও বিতরণ ডাটাবেস হত না))
ধারাবাহিকতা - সিস্টেমটি শেষ পর্যন্ত সুসংগত হয়ে উঠবে। যত তাড়াতাড়ি বা পরে এটি হওয়া উচিত ডেটা সর্বত্র ছড়িয়ে পড়ে, তবে সিস্টেমটি ইনপুট পেতে থাকবে এবং পরবর্তীটিতে যাওয়ার আগে প্রতিটি লেনদেনের ধারাবাহিকতা পরীক্ষা করছে না।
উপলভ্যতা - ডিফল্টরূপে, মঙ্গো ডিবি ক্লায়েন্ট (মঙ্গোডিবি ড্রাইভার), লিডার / প্রাথমিক নোডে সমস্ত পড়ার / লেখার অনুরোধ পাঠায়। এটি সিস্টেমটিকে সামঞ্জস্যপূর্ণ করে তোলে কিন্তু কারণে উপলভ্য নয় - কোনও নেতা যদি ক্লাস্টার থেকে সংযোগ বিচ্ছিন্ন করেন তবে নতুন নেতা নির্বাচন করতে কয়েক সেকেন্ড সময় লাগে। সুতরাং, লেখার জন্য অনুপলব্ধ করে এবং সেই সময়কালে এটি পড়ে।