यह सिर्फ़ Cloud Firestore Enterprise वर्शन के लिए काम का है. |
इस पेज पर, MongoDB के साथ काम करने वाले Cloud Firestore में, mongoimport
जैसे टूल की मदद से डेटा को एक साथ लोड करने के सबसे सही तरीकों के बारे में बताया गया है.
Cloud Firestore एक ऐसा सिस्टम है जो कई सर्वर पर काम करता है. इसमें आपके कारोबार की ज़रूरतों के हिसाब से, अपने-आप स्केल होने की सुविधा मिलती है. Cloud Firestore सिस्टम को मिले लोड के आधार पर, आपके डेटा को डाइनैमिक तरीके से स्प्लिट और कंबाइन करता है.
लोड के आधार पर स्प्लिटिंग अपने-आप होती है. इसके लिए, पहले से कोई कॉन्फ़िगरेशन करने की ज़रूरत नहीं होती. Cloud Firestore के लोड के आधार पर डेटा को बांटने वाले सिस्टम की कुछ खास विशेषताएं हैं. ये विशेषताएं, अन्य दस्तावेज़ डेटाबेस की तुलना में अलग हैं. डेटा को मॉडल करते समय, इन विशेषताओं को ध्यान में रखना ज़रूरी है.
Cloud Firestore के डिस्ट्रिब्यूटेड नेचर की वजह से, कुछ डिज़ाइन विकल्पों में बदलाव करना पड़ सकता है. खास तौर पर, उन वर्कलोड के लिए जिन्हें उन डेटाबेस के लिए ऑप्टिमाइज़ किया गया था जहां प्राइमरी रेप्लिका, राइट थ्रूपुट के लिए बॉटलनेक है.
सबसे अच्छे तरीके
एक थ्रेड वाले क्लाइंट में ज़्यादा डेटा प्रोसेस करने वाले वर्कलोड, बॉटलनेक बना सकते हैं. क्लाइंट, एक साथ कई फ़ाइलों में डेटा लोड करने के लिए सिंगल थ्रेडिंग का इस्तेमाल कर सकते हैं. ऐसा इसलिए, क्योंकि क्लाइंट और सर्वर की थ्रूपुट क्षमता एक जैसी होती है. Cloud Firestore डेटाबेस, एक साथ कई अनुरोधों को प्रोसेस कर सकता है. हालांकि, इसके लिए आपको क्लाइंट को इस तरह कॉन्फ़िगर करना होगा कि वे एक साथ अनुरोध भेज सकें.
mongoimport
mongoimport
टूल का इस्तेमाल करते समय, अनुरोध डिफ़ॉल्ट रूप से क्रम से किए जाते हैं.
Cloud Firestore में लोड होने में लगने वाले समय को कम करने के लिए, --numInsertionWorkers
फ़्लैग का इस्तेमाल करके वर्कर की संख्या सेट करें.
आपके क्लाइंट के हिसाब से, सही सेटिंग में बदलाव करना पड़ सकता है. हालांकि, आम तौर पर हम कम से कम 32
से शुरुआत करने का सुझाव देते हैं.
एसिंक्रोनस प्रोग्रामिंग
MongoDB के साथ काम करने वाले एपीआई का इस्तेमाल करके अपना सॉफ़्टवेयर डेवलप करते समय, इन तरीकों से पैरललिज़्म को बेहतर बनाया जा सकता है:
- एसिंक फ़्रेमवर्क: एसिंक फ़्रेमवर्क का इस्तेमाल करने से, अनुरोधों को एक साथ प्रोसेस किया जा सकता है और उनके जवाब दिए जा सकते हैं. अपने डेटाबेस में कॉल करते समय, किसी जटिल पूलिंग या क्यूइंग को डेवलप करना ज़रूरी नहीं है. हर अनुरोध फ़्लो, अलग-अलग कनेक्शन का इस्तेमाल कर सकता है. साथ ही, डेटाबेस कॉल को एक साथ कर सकता है.
- पैरललाइज़्ड कंप्यूट ऑफ़रिंग का इस्तेमाल करें: Cloud Run जैसी सेवाओं का इस्तेमाल करके, आपका सिस्टम, डेटा को प्रोसेस करने के लिए ज़रूरी कंप्यूटेशन वर्कर की संख्या को बढ़ा सकता है.
कुछ समय के लिए गड़बड़ियां
Cloud Firestore जैसे बड़े डिस्ट्रिब्यूटेड सिस्टम के साथ काम करते समय, आपको कुछ समय के लिए होने वाली गड़बड़ियां दिख सकती हैं. जैसे, नेटवर्क में रुकावट या किसी दस्तावेज़ पर विवाद.
एक साथ कई फ़ाइलें अपलोड करते समय, यह ज़रूरी है कि फ़ाइलें अपलोड न होने पर फिर से कोशिश करने की रणनीति अपनाई जाए. इससे, एक साथ कई फ़ाइलें अपलोड करने की प्रोसेस पर कोई असर नहीं पड़ेगा.