2010-02-17 11 views
14

हमारा आवेदन HTTP के माध्यम से बड़ी संख्या में छोटी, थंबनेल-आकार छवियों (आकार में लगभग 6-12 केबी) की सेवा करेगा। मुझे जांच करने के लिए कहा गया है कि नोएसक्यूएल डेटा स्टोर का उपयोग डेटा भंडारण के लिए एक व्यवहार्य समाधान है। आदर्श रूप में, हम चाहते हैं कि हमारे डेटा स्टोर को गलती और वितरित किया जाए।नोएसक्यूएल स्टोर्स में छवियों को संग्रहीत करना

क्या नोएसक्यूएल स्टोर्स में ब्लॉब्स स्टोर करना अच्छा विचार है, और इसके लिए कौन सा अच्छा है? इसके अलावा, नोएसक्यूएल हमारी समस्या के लिए एक अच्छा समाधान है, या हम फाइल सिस्टम में छवियों को संग्रहीत करने और वेब सर्वर से सीधे उनकी सेवा करने के लिए बेहतर सेवा करेंगे (एक तरफ, सीडीएन वर्तमान में हमारे लिए एक विकल्प नहीं है)?

उत्तर

9

Mongo DB आपके लिए अच्छा काम करना चाहिए। मैंने अभी तक ब्लॉब्स के लिए इसका इस्तेमाल नहीं किया है, लेकिन यहां मोंगो डीबी टीम से एक अच्छा फ्लॉस वीकली podcast interview with Michael Dirolf है जहां वह इस उपयोग के मामले को संबोधित करता है।

+0

धन्यवाद, मैं इसे –

+0

पर देखता हूं, आप उस पॉडकास्ट के पहले 13 मिनट को छोड़ सकते हैं :) –

8

डीबी या फाइल सिस्टम में छवियों को स्टोर करना है या नहीं, कभी-कभी उन "पवित्र युद्ध" बहसों में से एक है; प्रत्येक पक्ष को लगता है कि चीजों को करने का उनका तरीका एक सही तरीका है। सामान्य में:

डीबी में स्टोर करने के लिए:

  • आसान बैक-अप का प्रबंधन/एक बार जगह में एक ही बार में सब कुछ दोहराने के लिए।
  • आपके डेटा स्थिरता और अखंडता के साथ मदद करता है। आप NLOL को अस्वीकार करने के लिए BLOB फ़ील्ड सेट कर सकते हैं, लेकिन आप बाहरी फ़ाइल को हटाने से रोकने में सक्षम नहीं होंगे। (हालांकि यह पारंपरिक बाधाओं के कारण नोएसक्यूएल पर लागू नहीं है)।

फाइल सिस्टम पर संग्रहीत करने के लिए:

  • एक फाइल सिस्टम फ़ाइलों की सेवा के लिए बनाया गया है। इसे यह काम करने दो।
  • डीबी अक्सर एक आवेदन में आपकी बाधा है। आप जो भी भार ले सकते हैं, उतना ही बेहतर।
  • सीडीएन पर सेवा करने के लिए आसान (जो आपने बताया है वह आपकी स्थिति में लागू नहीं है)।

मैं फाइल सिस्टम के पक्ष में नीचे आ जाता हूं क्योंकि यह बहुत बेहतर है। लेकिन आपकी परियोजना के आकार के आधार पर, या तो पसंद ठीक काम करेगा। NoSQL के साथ, मतभेद भी कम स्पष्ट हैं।

+2

प्रश्न वितरित कुंजी-मूल्य स्टोर में ब्लॉब्स संग्रहीत करने के बारे में है। एक फाइल सिस्टम गलती-सहिष्णु या वितरित नहीं है इसलिए वास्तव में कोई तुलना नहीं है। –

+2

फाइल सिस्टम के आधार पर, यह दोनों गलती सहनशील और वितरित हो सकता है - मोगाइलएफएस, हैडोप डीएफएस, ग्लस्टरएफएस जैसी चीजें देखें। –

+1

ये काफी फाइल सिस्टम नहीं हैं। –

3

अच्छी तरह से सीडीएन स्पष्ट विकल्प होगा। चूंकि यह खत्म हो गया है, मैं कहूंगा कि गलती सहिष्णुता के लिए आपकी सबसे अच्छी शर्त और भार संतुलन आपके स्वयं के निजी डेटा केंद्र (जो भी आपको मतलब है) 2 या अधिक लोड बैलेंसर्स के पीछे F5 जैसा होगा। यह आपकी सबसे आसान प्रबंधन प्रणाली होगी और आप जितना गलती सहनशीलता प्राप्त कर सकते हैं क्योंकि आपका हार्डवेयर बजट अनुमति देता है। आपको XCOPY, किसी भी नई सॉफ्टवेयर विशेषज्ञता की आवश्यकता नहीं होगी।

वास्तविक गलती सहनशीलता के लिए आपको भौगोलिक फैलाव की आवश्यकता होगी या आप बैकहो के साथ किसी के अधीन हैं।

(Gravatars?)

+1

सीडीएन प्लस एक नोएसक्यूएल डीबी मूल के रूप में एक महान संयोजन है। मैंने यह देखा है कि यह मोंगोडीबी (और इसके ग्रिडएफएस मॉड्यूल) के साथ सफलतापूर्वक दो बार किया गया है। –

2

आप एक अजगर वातावरण में कर रहे हैं, y_serial मॉड्यूल पर विचार करें: http://yserial.sourceforge.net/

10 मिनट से कम में, आप स्टोर कर और (वास्तव में, किसी भी आपकी छवियों का उपयोग किया जाएगा वेबपृष्ठों सहित मनमाने ढंग से पाइथन ऑब्जेक्ट) - संपीड़ित रूप में; NoSQL।

3

मैं एक निजी परियोजना के लिए एक समान समाधान की तलाश में था और Riak पर आया, जो मेरे लिए, इस समस्या के लिए एक अद्भुत समाधान की तरह लगता है। असल में, यह नेटवर्क में सर्वर पर प्रत्येक फ़ाइल की एक निर्दिष्ट संख्या की प्रतियों को वितरित करता है। ऐसा डिज़ाइन किया गया है कि कोई सर्वर आने या जाने वाला कोई बड़ा सौदा नहीं है। एक सर्वर पर सभी प्रतियां जो पत्तियों को दूसरों के बीच वितरित की जाती हैं।

सही कॉन्फ़िगरेशन के साथ, रीक एक संपूर्ण डेटासेंटर क्रैशिंग से निपट सकता है।

ओह, और इसका वाणिज्यिक समर्थन उपलब्ध है।

संबंधित मुद्दे