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