अस्वीकरण यह मेरे सिर ऊपर से सभी को है, इसलिए मुझे कष्ट नहीं करते कृपया अगर मैं एक गलती की है। हालांकि, कृपया मुझे सही करें।
उन्हें क्यों चाहिए?
- परिसर: डेटाबेस परिभाषा के अनुसार परस्पर नहीं कर रहे हैं
- oplog entries are always idempotent
- Oplog एक capped collection, with a guarantee of preserving the insert order
के प्रश्नों का सही समानांतरवाद मान लेते हैं लागू किया जा रहा है। तो, हमारे पास एक ही समय में दो प्रश्न आ रहे हैं और हमें यह तय करना होगा कि पहले कौन सा ओप्लॉग डालना है। लॉक लेने वाला पहला व्यक्ति पहले लिख देगा, है ना? इसके अलावा, एक समस्या है। आइए मान लें कि पहली क्वेरी एक साधारण db.collection.update({_id:"foo"},{$set:{"bar":"baz"}})
है जबकि दूसरी क्वेरी अधिक जटिल है और इसमें शुद्धता के मूल्यांकन के लिए अधिक समय लगता है। इसलिए इसे रोकने के लिए, आगमन पर पर लॉक लेना पड़ा और idempotent oplog प्रविष्टि के बाद जारी किया गया था।
यहाँ जहां मैं अपने स्मृति
हालांकि, प्रश्नों समानांतर में लागू नहीं होती हैं का सहारा लेना पड़ रहा है। प्रश्न कतार हैं और आगमन के क्रम में मूल्यांकन किया गया है। क्वेरी ऑप्टिमाइज़र के माध्यम से चलने के बाद डेटाबेस क्वेरी के आवेदन पर लॉक हो जाता है। उस लॉक के दौरान idplpotent oplog प्रश्न oplog को लिखा जाता है। चूंकि डेटाबेस इंटरकनेक्टेड नहीं हैं और किसी भी समय किसी डेटाबेस पर केवल एक क्वेरी लागू की जा सकती है, डेटाबेस पर लॉक पर्याप्त है।
वैसे भी एक ही डेटाबेस में दो डेटा बदलते प्रश्नों को लागू किया जा सकता है, तो ओप्लॉग पर लॉक क्यों सेट किया जाना चाहिए?
जाहिर है, स्थानीय डेटाबेस पर एक ताला लगाया जाता है। हालांकि, चूंकि डेटा पर लॉक पहले ही लिया जा चुका है, इसलिए मुझे कारण नहीं दिख रहा है।* स्क्रैचिंग MyHead *
स्रोत
2015-11-16 22:43:42
एचएम, मैंने दस्तावेज़ पढ़े, लेकिन मैं अभी भी इसे विश्वास नहीं कर सकता। चूंकि ओप्लॉग प्रविष्टियां बेवकूफ हैं और डेटाबेस को एप्लिकेशन पर बंद कर दिया गया है, वास्तव में इसकी आवश्यकता नहीं होगी ... मुझे वास्तव में यह नहीं मिलता है। –
यह ब्लॉग पोस्ट भी पढ़ने के लायक है। रीयल-टाइम मीट्रिक सिस्टम विकसित करते समय लेखक को 'ग्लोबल लॉक' का सामना करना पड़ा। – Jaco
लिंक जोड़ने के लिए भूल गए: लिंक: http: //daprlabs.com/blog/blog/2014/04/19/mongodb/। कृपया ध्यान दें कि ब्लॉगर माइक्रोसॉफ्ट के लिए काम करता है और उसके कुछ निष्कर्ष कुछ पक्षपातपूर्ण प्रतीत होते हैं। – Jaco