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

लाखों छवियों के लिए संग्रहण

मैंने अपने जीवन में, S3 (रैकस्पेस क्लाउडफाइल्स शामिल) और MongoDB दोनों के साथ वीडियो वितरण किया है।

ज्यादातर लोग, दूसरी नज़र के बिना, S3 के लिए जाते हैं, हालांकि मैंने पाया है कि दोनों के अपने डाउनसाइड्स हैं। बड़ी समस्याओं में से एक यह है कि S3 एक सीडीएन नहीं है, यह वास्तव में एक विशिष्ट क्षेत्र के भीतर एक अनावश्यक भंडारण है जिसे अन्य एस 3 क्षेत्रों में दोहराया नहीं जाता है, इसका मतलब है कि आपको अपनी छवियों को पिंग करने के लिए एस 3 के शीर्ष पर क्लाउडफ्रंट जैसे कुछ का उपयोग करने की आवश्यकता होगी। यदि आप अपनी साइट पर गंभीर लोड प्राप्त करना चाहते हैं तो एक प्रकार का कैश।

S3 में अन्य विशेषताएं भी हैं जो इसे कम सीडीएन-ईश और अधिक भंडारण गोदाम बनाती हैं। कहा जा रहा है कि, अक्सर एक्सेस की जाने वाली फ़ाइलों के लिए S3 बहुत तेज़ होता है।

बेशक यह दोहरी परत रखरखाव जैसी जटिलताएं पैदा करती है। इतना ही नहीं बल्कि एक सीडीएन टीटीएल पर काम करेगा और भले ही आजकल कई सीडीएन में एज पर्ज क्षमताएं हैं, फिर भी वे यह सुनिश्चित करने का 100% सुनिश्चित तरीका नहीं हैं कि आपकी फाइलें पहुंच योग्य नहीं हैं।

तो सेट-अप और एक्सेस (फाइलों की संभावित पहुंच जिन्हें भी हटा दिया जाना चाहिए) के कारण यह काफी महंगा हो सकता है।

यहीं पर MongoDB सकता जीत। MongoDB, आपके परिदृश्य के आधार पर, वास्तव में यहाँ सस्ता हो सकता है क्योंकि आप AWS पर सूक्ष्म उदाहरणों के एक पूरे समूह का उपयोग वास्तव में अपनी जानकारी रखने के लिए कर सकते हैं, इन उदाहरणों में स्पॉट इंस्टेंस आरक्षण जोड़ सकते हैं (गंदगी सस्ते) और आप सभी की जरूरत है एक मशीन पर एक बड़ी डिस्क है।

नरक, आप छवियों को संग्रहीत करने के लिए S3 और फिर MongoDB को क्लाउडफ़्रंट प्रतिस्थापन के रूप में उपयोग कर सकते हैं।

जब आप विभिन्न क्षेत्रों में छवियों को पिंग करना चाहते हैं तो आप उस लक्षित क्षेत्र में कुछ स्पॉट इंस्टेंस बनाते हैं और इसके डेटा को दोहराने के लिए मोंगोडीबी प्राप्त करते हैं। आप प्रतिकृति के साथ कुछ अच्छी चीजें भी कर सकते हैं ताकि यह सुनिश्चित किया जा सके कि उस क्षेत्र से केवल अक्सर एक्सेस की जाने वाली फ़ाइलें उस क्षेत्र में रखी जाती हैं।

इसलिए मैं MongoDB (या यहां तक ​​कि कैसेंड्रा) को बाहर नहीं फेंकूंगा, बल्कि मैं दोनों के बीच एक साधन परीक्षण करूंगा।

संपादित करें

S3 मूल्य निर्धारण के बारे में एक अतिरिक्त नोट के रूप में, यदि आप अपनी फ़ाइलों को RR (Reduced Redundancy) में संग्रहीत करते हैं तो कीमत आधी हो जाती है (लगभग) जो S3 को बहुत सस्ता बनाती है, हालाँकि, आपको अभी भी समस्या है कि S3 एक CDN नहीं है।

आगे संपादित करें

चूंकि मैं वास्तव में केवल @cirrus के उत्तर से आगे बढ़ा हूं, इसलिए मैं वास्तव में आपके प्रश्न का पुनर्मूल्यांकन करूंगा, जिसका उत्तर ऊपर दिया गया है।

एक उदाहरण के रूप में, Youtube वास्तव में उनकी सभी छवियों को एकल कंप्यूटरों पर संग्रहीत करता है जो तब वितरित किए जाते हैं, ताकि वे आसानी से 200m थंबनेल प्रबंधित कर सकें और...ठीक है...फ़ाइल सिस्टम से हर दिन आसानी से बहुत सारे दृश्य। इसलिए मुझे लगता है कि फ़ाइल सिस्टम के बारे में आपकी चिंता का मूल्यांकन किया गया है।

किस डेटाबेस के लिए बेहतर है...पता नहीं, यह आपके परीक्षण पर निर्भर करता है।

मेरा मतलब है कि आपकी समस्या का उत्तर आपके परिदृश्य और आपके बजट और आपके हार्डवेयर और आपके संसाधनों पर निर्भर करता है, यानी यदि आपके पास एडब्ल्यूएस सर्वर हैं तो यह घरेलू सर्वरों में समर्पित से बिल्कुल अलग उत्तर होगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक्सप्रेस और नेवला का उपयोग कर मौजूदा MongoDB दस्तावेज़ की सरणी के लिए प्रपत्र डेटा पोस्ट करें

  2. मोंगोडब शो डीबीएस सूचीडेटाबेस विफल

  3. अजीब एक्सेसर्स के साथ एनोटेशन का उपयोग नहीं करते समय मोंगोडब हैश संबंधित सरणी मैपिंग लोड करने का उचित तरीका

  4. मूल फ़ील्ड निर्दिष्ट किए बिना नेस्टेड फ़ील्ड को सीधे क्वेरी कैसे करें?

  5. कैसे जांचें कि कोई दस्तावेज़ मोंगोडीबी में अपडेट या डाला गया है या नहीं?