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

$inc संशोधक mongodb में समवर्ती अनुरोधों के साथ कैसे काम करता है?

यह वास्तव में थोड़ा चौड़ा है लेकिन मैं व्यापक स्ट्रोक की पेशकश कर सकता हूं। चूंकि MongoDB संग्रह स्तर लॉकिंग का उपयोग करता है डिफ़ॉल्ट भंडारण इंजन के साथ। WiredTiger स्टोरेज इंजन भी उपलब्ध है जो को लागू करता है। दस्तावेज़ स्तरीय लॉकिंग . लेकिन मूल रूप से सभी रिलीज में "लॉकिंग" का कुछ स्तर होता है जो प्रत्येक अनुरोध पर होता है। आपकी वास्तविक थ्रूपुट आवश्यकताओं के आधार पर स्तर जितना बेहतर होगा उतना ही बेहतर होगा।

अनिवार्य रूप से कोई भी दो अनुरोध वास्तव में एक ही समय में नहीं होते हैं क्योंकि वे जारी होने तक किए गए लॉक पर "ब्लॉक" करेंगे। तो वह मान जो लौटाया जाएगा (जैसे कि findAndModify() request ), उस अनुरोध के लिए "वर्तमान स्थिति" के रूप में होगा।

तो इस तरह के अनुरोध पर पहले निष्पादित किया गया कथन 2 का मान लौटाएगा, और अगला निष्पादित विवरण 3 का मान लौटाएगा। डेटाबेस में अंतिम स्थिति यह है कि मान वर्तमान में 3 होगा।

तो एक ही समय में कुछ "संशोधित" करने का कोई तरीका नहीं है, और अंतिम स्थिति वह होगी जो "सभी" अनुरोध जारी किए जाने के बाद होती है। तो $inc और अन्य ऑपरेटर ठीक वैसा ही करते हैं जैसा उन्हें करना चाहिए, और उस समय दस्तावेज़ की स्थिति के आधार पर सामग्री को संशोधित करते हैं जब वह वास्तव में इसे एक्सेस करने में सक्षम था।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सरणी mongodb में एकाधिक तत्वों को अद्यतन करें

  2. बैकअप प्रतिकृति के लिए MongoDB स्क्रिप्ट स्थानीय रूप से Windows सर्वर पर सेट की जाती है

  3. संदर्भ त्रुटि MongoDB कॉलबैक से नहीं फेंका गया है

  4. मोंगो फाइंड () फ़ंक्शन _id . को बाहर नहीं करेगा

  5. MongoDB को तुलनात्मक संचालन के साथ sudocuments से अलग-अलग गिनती मिलती है