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

क्या किसी ने एयरोस्पाइक के साथ काम किया है? यह MongoDB से कैसे तुलना करता है?

मैंने Aerospike, MongoDB और Redis का उपयोग किया है और कई अन्य NoSQL डेटाबेस का परीक्षण किया है। मैं कहूंगा कि एयरोस्पाइक जो करता है उसमें बहुत अच्छा है लेकिन यह मोंगोडीबी से अलग है। सब कुछ इस बात पर निर्भर करता है कि आप किस डेटाबेस के लिए उपयोग करने की योजना बना रहे हैं। मैं आपको एक उदाहरण दे सकता हूं कि मैं अपने विभिन्न डेटाबेस का उपयोग किस लिए कर रहा हूं। मैं उनके बीच मतभेदों पर भी जा सकता हूं और एयरोस्पाइक के लाभों पर चर्चा कर सकता हूं।

मोंगोडीबी

मैं एक SQL विकल्प के रूप में MongoDB का उपयोग कर रहा हूँ। मेरे मोंगोडीबी डेटाबेस में मेरे पास कई अलग-अलग फ़ील्ड हैं। कई बार फ़ील्ड बदल रहे हैं और मुझे बेतरतीब ढंग से विभिन्न क्षेत्रों पर क्वेरी करने की आवश्यकता होगी। यह एक बहुत ही असंरचित डेटाबेस है और MongoDB उस पर अद्भुत है। मैंने MongoDB को एक मानक की-वैल्यू स्टोर के रूप में भी इस्तेमाल किया है। यह अच्छा प्रदर्शन करता है लेकिन मेरे पास मोंगोडीबी लेनदेन पैमाने और डेटाबेस आकार पैमाने दोनों पर उप-इष्टतम प्रदर्शन करता है। बेशक, डेटाबेस को थोड़ा बेहतर तरीके से अनुकूलित किया गया हो सकता है, लेकिन मुझे विभिन्न स्थितियों में MongoDB को सही ढंग से कॉन्फ़िगर करने के लिए दस्तावेज़ ढूंढना बहुत कठिन लगता है।

रेडिस

रेडिस एक शुद्ध की-वैल्यू स्टोर है। रेडिस की सबसे बड़ी समस्या यह है कि यह विशुद्ध रूप से इन-मेमोरी है (यह डिस्क को बैकअप के रूप में उपयोग करेगा लेकिन आपके पास उपलब्ध मेमोरी से अधिक जानकारी संग्रहीत नहीं कर सकता)। यह जिस चीज के लिए उपयोग किया जाता है उसके लिए यह बेहद तेज़ है। मैं व्यक्तिगत रूप से इसे एक छोटे लेनदेन संबंधी डेटाबेस के लिए उपयोग करता हूं:मैं चाबियों पर बहुत ही सरल कार्य करता हूं जैसे कि किसी निश्चित उपयोगकर्ता के लिए कितनी बार कोई घटना हुई। मैं त्वरित इन-मेमोरी लुक अप भी करता हूं जिन्हें मुझे विभिन्न मूल्यों पर मैप करने की आवश्यकता होती है। रेडिस छोटे डेटासेट के लिए एक बेहतरीन टूल है और यह बेहद तेज़ है। कॉन्फ़िगरेशन भी बहुत आसान है।

एयरोस्पाइक

मैं व्यक्तिगत रूप से एयरोस्पाइक का उपयोग रेडिस को बदलने के लिए करता हूं जब यह स्केल करने का समय होता है। मेरी समझ से इसे और अधिक के लिए उपयोग किया जा सकता है। रेडिस की तरह, एरोस्पाइक एक की-वैल्यू स्टोर है। मेरा मानना ​​है कि ओपन सोर्स संस्करण सेकेंडरी इंडेक्स का भी समर्थन करता है जो रेडिस नहीं करता है (मैंने उत्पादन में सेकेंडरी इंडेक्स का उपयोग नहीं किया है लेकिन उन पर बहुत कम परीक्षण किया है)।

एरोस्पाइक की सबसे अच्छी विशेषता इसकी स्केल करने की क्षमता है। एरोस्पाइक में देखते समय मुझे जो सबसे बड़ी समस्या हल करने की आवश्यकता थी, वह मेरे सिस्टम को बड़े डेटा सेट को संभालने के लिए स्केल कर रही थी, जबकि बहुत तेजी से शेष थी। जिस परियोजना के लिए मैं एरोस्पाइक का उपयोग करता हूं उसकी गति पर बहुत सख्त आवश्यकताएं हैं। मैं आमतौर पर 3-4 डेटाबेस लुकअप और अन्य प्रसंस्करण करता हूं और उप-50ms लेनदेन के समय की आवश्यकता होती है। कुछ लुक-अप डेटा सेट पर हैं जो 300GB+ हैं। मुझे इस डेटा को रखने और उचित समय में इसे सुलभ बनाने का कोई समाधान नहीं मिला। रेडिस स्पष्ट रूप से तब तक काम नहीं करेगा जब तक कि मेरे पास ऐसी मशीन न हो जिसमें 300GB+ RAM हो। MongoDB ने 300GB से बहुत कम आकार में बेहद खराब प्रदर्शन करना शुरू कर दिया। इसलिए मैंने एरोस्पाइक को एक शॉट दिया, और यह सब कुछ बहुत अच्छी तरह से संभालने में सक्षम था। एरोस्पाइक के बारे में सबसे अच्छी बात:जैसे-जैसे मेरा डेटा सेट बढ़ता गया है, मुझे जरूरत पड़ने पर एक नया बॉक्स खड़ा करने से ज्यादा कुछ नहीं करना पड़ता है। गति स्थिर बनी हुई है।

मुझे एयरोस्पाइक्स के दस्तावेज भी बहुत अच्छे लगते हैं। इसे कॉन्फ़िगर करना बहुत कठिन नहीं है और आने वाली किसी भी समस्या के लिए उत्तर ढूंढना बहुत आसान है।

निष्कर्ष

तो, क्या एयरोस्पाइक उतना ही अच्छा है जितना वे दावा करते हैं? निजी तौर पर, मैंने जो दावा किया है उससे कम कुछ नहीं देखा है। मुझे 1 मिलियन टीपीएस तक स्केल नहीं करना पड़ा है, लेकिन मुझे विश्वास है कि पर्याप्त हार्डवेयर के साथ यह संभव होगा। मैं यह भी मानता हूं कि एयरोस्पाइक और मोंगोडीबी के बीच गति अंतर दिखाने वाली संख्याएं। एयरोस्पाइक MongoDB की तुलना में बहुत अधिक "कॉन्फ़िगर" और "योजनाबद्ध" डेटाबेस है। इस वजह से मोंगोडीबी की तुलना में एयरोस्पाइक बड़े पैमाने पर बहुत तेज होगा। इसे केवल मोंगोडीबी के विपरीत एक एकल (या माध्यमिक सूचकांक के मामले में, कुछ सौ) इंडेक्स के बारे में चिंता करने की ज़रूरत है जो गतिशील रूप से बदल सकती है। प्रश्न जो आपको वास्तव में पूछने की आवश्यकता है वह वह है जिसे आप अपने डेटाबेस के साथ पूरा करने का प्रयास कर रहे हैं। फिर देखें कि कौन सा डेटाबेस आपकी आवश्यकताओं के लिए सबसे उपयुक्त होगा। यदि आपको एक स्केलेबल, तेज़, की-वैल्यू स्टोर डेटाबेस की आवश्यकता है तो मैं कहूंगा कि एयरोस्पाइक शायद वहां सबसे अच्छा है।

मुझे बताएं कि क्या आपके कोई विशिष्ट प्रश्न हैं या कुछ स्पष्ट करने की आवश्यकता है। मैं शायद आपकी मदद कर सकूंगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose/NodeJS में टाइमस्टैम्प फ़ील्ड में अलग-अलग दिनांक आइटम कैसे गिनें?

  2. कनाडा में MongoDB-as-a-service

  3. सी # मोंगोडब। सभी दस्तावेज़ों के लिए योग फ़ील्ड

  4. MongoDB को समग्र क्वेरी के लिए निष्पादन प्राप्त होता है

  5. नेवला - तार की सरणी सहेजें