पिछले महीने MongoDB वर्ल्ड में MongoDB के संस्थापक और CTO एलियट होरोविट्ज़ ने 2.8 रिलीज के लिए निर्धारित प्लगेबल स्टोरेज इंजन के लिए समर्थन की घोषणा की। यह रोमांचक सामान है क्योंकि इसका मतलब है कि mongo उपयोगकर्ता अब एक स्टोरेज इंजन चुनने में सक्षम होंगे जो उनके वर्कलोड के लिए सबसे उपयुक्त है और योजनाबद्ध API के साथ सभी MongoDB सुविधाओं का पूर्ण समर्थन होगा, जबकि वर्तमान कार्यक्षमता में से किसी को भी छोड़े बिना जिसका वे आनंद लेते हैं। इतना ही नहीं, बल्कि एक ही रेप्लिका सेट में नोड्स अलग-अलग स्टोरेज इंजन का उपयोग करने में सक्षम होंगे, जिससे विभिन्न आवश्यकताओं के लिए दिलचस्प कॉन्फ़िगरेशन सक्षम होंगे।
MongoDB के पूरी तरह से ओपन सोर्स होने के बारे में सबसे अच्छी बात यह है कि हमें 2.8 के वास्तव में रिलीज़ होने तक इन बहुत ही प्रयोगात्मक सुविधाओं के साथ खेलने के लिए इंतजार नहीं करना पड़ेगा। MongoDB का संपूर्ण स्रोत कोड GitHub से क्लोन किया जा सकता है और किसी भी प्रयोगात्मक सुविधाओं को शामिल करने के लिए संकलित किया जा सकता है जिन पर वर्तमान में काम किया जा रहा है।
नीचे दिए गए उदाहरण में मैं आपको दिखाऊंगा कि MongoDB वर्ल्ड में प्रस्तुत RocksDB उदाहरण स्टोरेज इंजन के साथ mongo को कैसे बनाया जाए।
एक नए इंस्टॉल किए गए CentOS 6.5 क्लाउड इंस्टेंस से शुरू करके, हम बुनियादी निर्भरताओं को हासिल करेंगे:
$ yum groupinstall 'Development Tools'
$ yum install git glibc-devel scons
अब हम GitHub से MongoDB स्रोत कोड प्राप्त करेंगे:
$ git clone https://github.com/mongodb/mongo.git
अब बस इतना ही बचा है कि स्रोत को RocksDB समर्थन के साथ संकलित किया जाए:
$ scons --rocksdb=ROCKSDB mongo mongod
या -j विकल्प का उपयोग करके समानांतर कार्यों की संख्या निर्दिष्ट करके इसे तेज करें, यदि आप अपने संकलन कर रहे सिस्टम को समय के लिए समर्पित करने की योजना बना रहे हैं तो एक अच्छा संकेतक आपकी मशीन में कोर की संख्या +1 है, मेरा ऐसा दिखता था:
$ scons -j 17 --rocksdb=ROCKSDB mongo mongod
यह ध्यान देने योग्य है कि प्लगेबल स्टोरेज इंजन समर्थन और RocksDB इंजन इस बिंदु पर पूरी तरह से प्रयोगात्मक हैं इसलिए एक अच्छा मौका है कि आप त्रुटियों का सामना करेंगे और मास्टर से संकलित करने में असमर्थ होंगे, इस चरण में इसकी उम्मीद की जाती है। यदि आप इस बात पर नज़र रखना चाहते हैं कि चीजें कैसे आगे बढ़ रही हैं तो MongoDB देव मेलिंग सूची शुरू करने के लिए एक अच्छी जगह है।
एक बार संकलन समाप्त हो जाने पर आप नए --storageEngine पैरामीटर का उपयोग करके एक mongod प्रोसेस शुरू करना चाहेंगे:
$ ./mongod --storageEngine rocksExperiment
और अंत में आप कनेक्ट करके और एक साधारण डॉक्यूमेंट इन्सर्ट करके सब कुछ टेस्ट कर सकते हैं, फिर db.stats() का उपयोग करें। यदि सब कुछ योजना के अनुसार हुआ तो आपको RocksDB आंकड़े वापस पाइप किए हुए दिखाई देने चाहिए।
जैसा कि आप देख सकते हैं, प्रयोगात्मक सुविधाओं को सक्षम करके उठना और चलना काफी सरल है। मैं प्लगेबल स्टोरेज इंजन कोड को प्रगति करते हुए देखने और 2.8 रिलीज के करीब पहुंचते ही अधिक नए इंजन की घोषणा देखने के लिए बहुत उत्साहित हूं।