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