MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

बहुसंख्यक और रैखिक के बीच का अंतर

"रैखिक करने योग्य "बहुमत के साथ संभावित समस्या को हल करने के लिए MongoDb 3.4 में पठन चिंता पेश की गई थी "चिंता पढ़ें।

आइए "बहुमत . के साथ समस्या को समझने का प्रयास करें " क्या "रैखिक करने योग्य . को समझने के लिए चिंता पढ़ें " हमारे पास लाता है।

मान लीजिए, हमारे पास 3 नोड्स का एक रेप्लिकासेट है, जो कुछ इस तरह दिखता है:

कहां, प्राथमिक है,बी माध्यमिक है,सी माध्यमिक है

आइए दो उपयोगकर्ता भी हैं ऐलिस और बॉब , जो "उपयोगकर्ताओं . में रहने वाले निम्नलिखित दस्तावेज़ पर कुछ संचालन करेगा "संग्रह।

{
 "_id": 100234,
 "name": "Katelyn"
}

समय पर तत्काल T0:

निम्नलिखित होता है,

  1. ऐलिस A . से जुड़ जाती है (प्राथमिक) और आदेश का पालन करने वाले मुद्दे।

आउटपुट:

  1. बी और सी पता चलता है कि प्रत्युत्तर देना बंद कर दिया है और चुनाव प्रक्रिया शुरू कर दी है।(नेटवर्क विभाजन के कारण हो सकता है )।

समय पर तत्काल T1:

निम्नलिखित होता है,

  1. चुनाव प्रक्रिया के कारण, B एक नए प्राथमिक के रूप में खड़ा है .

हालांकि, उस समय तक A संप्रेषित नहीं है या A खुद को पता चलता है कि उसे खुद को एक माध्यमिक में अवनत करने की आवश्यकता है, यह प्राथमिक के रूप में कार्य करना जारी रखता है (हालांकि यह आम तौर पर बहुत कम समय के लिए होता है)।

समय पर तत्काल T2:

  1. बॉब B . से जुड़ जाता है (नया प्राथमिक) और आदेश का पालन करने वाले मुद्दे।
  1. बॉब को लिखने के लिए स्वीकार किया जाता है।

समय पर तत्काल T3:

  1. ऐलिस A . से जुड़ जाती है (पुराना प्राथमिक) और आदेश का पालन करने वाले मुद्दे।

आउटपुट:

एलिस यहां बासी डेटा प्राप्त करती है, भले ही वह बहुसंख्यक पठन चिंता जारी करता है, अर्थात बॉब द्वारा किया गया लेखन ऐलिस को दिखाई नहीं देता है। इस प्रकार, "रैखिकता . की संपत्ति "इस मामले में मुआवजा दिया जाता है।

इसलिए, समाधान आता है अर्थात "रैखिक करने योग्य "चिंता पढ़ें। इस संपत्ति के साथ, मोंगोड अपने प्राथमिक की जांच करता है और रीड ऑपरेशन के परिणाम जारी करने से पहले अधिकांश नोड्स देख सकता है। हालांकि, "बहुमत" पर इस रीड कंसर्न का उपयोग करने के लिए एक प्रदर्शन लागत दंड है, इस प्रकार यह प्रतिस्थापन नहीं है "बहुमत" चिंता पढ़ें।

लिखेंConcernMajorityJournalDefault के संबंध में संपत्ति, यह केवल एक प्रतिकृति सेट विन्यास विकल्प है। यह बूलियन मान . को स्वीकार करता है ।

सच इसका मतलब है, अधिकांश मतदान सदस्यों द्वारा ऑन-डिस्क जर्नल को लिखे जाने के बाद MongoDB लेखन कार्य को स्वीकार करता है।

झूठा इसका मतलब है, अधिकांश मतदान सदस्यों द्वारा स्मृति में ऑपरेशन लागू करने के बाद MongoDB लेखन संचालन को स्वीकार करता है।

उपरोक्त संपत्ति केवल तभी लागू होती है, जब चिंता लिखें "बहुमत" का उपयोग किया जाता है और जर्नलिंग ध्वज निर्दिष्ट नहीं होता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. संग्रह वस्तु PyMongo के साथ प्रतिदेय त्रुटि नहीं है

  2. नेवला का उपयोग करके अनुक्रमणिका छोड़ने का अनुशंसित तरीका क्या है?

  3. Android ऐप्स में MongoDB स्टिच का उपयोग कैसे करें

  4. mongo-cxx-driver का उपयोग करके c++ प्रोजेक्ट बनाते समय त्रुटियों को जोड़ना

  5. विंडोज 8.1 पर मोंगो डीबी की स्थापना के साथ समस्या