मैं लुक्कास पोस्ट से सहमत हूं। आप बस यह नहीं कह सकते हैं कि MongoDB CP / AP / CA है, क्योंकि यह वास्तव में C, A और P के बीच का व्यापार है, जो डेटाबेस / ड्राइवर कॉन्फ़िगरेशन और आपदा के प्रकार पर निर्भर करता है : यहाँ एक दृश्य पुनरावृत्ति है, और नीचे एक अधिक विस्तृत विवरण।
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
संगति:
जब आप किसी एकल कनेक्शन या सही लिखें / पढ़ें चिंता का स्तर ( जो आपको निष्पादन गति का खर्च करेगा ) का उपयोग करते हुए MongoDB दृढ़ता से सुसंगत है । जैसे ही आप उन शर्तों को पूरा नहीं करते हैं (विशेषकर जब आप द्वितीयक-प्रतिकृति से पढ़ रहे हैं) MongoDB अंततः सुसंगत हो जाता है।
उपलब्धता:
MongoDB को प्रतिकृति-सेट के माध्यम से उच्च उपलब्धता मिलती है । जैसे ही प्राथमिक नीचे जाता है या अनुपलब्ध हो जाता है, तो दूसरा व्यक्ति फिर से उपलब्ध होने के लिए एक नया प्राथमिक निर्धारित करेगा। इसका एक नुकसान है: प्रत्येक लेखन जो पुराने प्राइमरी द्वारा किया गया था, लेकिन सेकेंडरी के लिए सिंक्रनाइज़ नहीं किया गया था, उसे वापस ले जाया जाएगा और एक रोलबैक-फाइल में सहेजा जाएगा, जैसे ही यह सेट पर फिर से जुड़ता है (पुराना प्राइमरी एक माध्यमिक है अभी)। तो इस मामले में उपलब्धता के लिए कुछ स्थिरता का त्याग किया जाता है।
विभाजन सहिष्णुता:
उक्त रेप्लिका-सेट्स के उपयोग के माध्यम से मोंगोबीडी भी विभाजन सहिष्णुता को प्राप्त करता है: जब तक एक प्रतिकृति-सेट के आधे से अधिक सर्वर एक दूसरे से जुड़े होते हैं, तब तक एक नया प्राथमिक चुना जा सकता है । क्यों? दो अलग नेटवर्क सुनिश्चित करने के लिए दोनों एक नया प्राथमिक नहीं चुन सकते। जब पर्याप्त सेकंडरी एक दूसरे से नहीं जुड़ी होती हैं तब भी आप उनसे पढ़ सकते हैं (लेकिन निरंतरता सुनिश्चित नहीं होती है), लेकिन लिखना नहीं। संगति के लिए सेट व्यावहारिक रूप से अनुपलब्ध है।