WiredTiger स्टोरेज इंजन के साथ MongoDB 3.0 आपको अपने डेटाबेस में संग्रहीत डेटा को पारदर्शी रूप से संपीड़ित करने में सक्षम बनाता है। यह एक काफी रोमांचक और उपयोगी विशेषता है जिसका उपयोग आपके तेजी से बढ़ते डेटा के डिस्क स्थान के उपयोग को कम करने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से वायर्ड टाइगर सभी संग्रहों के लिए 'स्नैपी' ब्लॉक कम्प्रेशन इंजन का उपयोग करता है। आप MongoDB सर्वर कॉन्फ़िगरेशन फ़ाइल में निम्न विकल्पों का उपयोग करके डिफ़ॉल्ट रूप से संपीड़न को बंद कर सकते हैं।
storage: engine: wiredTiger wiredTiger: collectionConfig: blockCompressor: none
क्लस्टर निर्माण के दौरान संग्रह स्तर पर संपीड़न एल्गोरिदम निर्दिष्ट किया जा सकता है। यहाँ 'zlib' संपीड़न के साथ एक संग्रह बनाने का एक उदाहरण दिया गया है:
db.createCollection( "test", {storageEngine:{wiredTiger:{configString:'block_compressor=zlib'}}} );
MongoDB WiredTiger स्टोरेज इंजन कम्प्रेशन के लिए दो विकल्प प्रदान करता है - स्नैपी और ज़्लिब। संपीड़न की सीमा और डीकंप्रेस करने के लिए सीपीयू लोड की मात्रा के बीच अनिवार्य रूप से एक ट्रेडऑफ़ है। 'ज़्लिब' बहुत अधिक संपीड़न प्राप्त करता है और तदनुसार कम प्रदर्शन करने वाला होता है। 'स्नैपी' का उद्देश्य 'बहुत तेज़ गति और उचित संपीड़न का लक्ष्य' है।
हमने संपीड़न प्रदर्शन को मापने के लिए कुछ सरल अवैज्ञानिक परीक्षण चलाए। हमने स्ट्रिंग्स को स्टोर करने वाले डेटा सेट में से एक का इस्तेमाल किया, जो हमें लगा कि यह अच्छी तरह से संपीड़ित होगा। यहाँ प्रत्येक दस्तावेज़ की मूल संरचना है:
{ '_id': <ObjectID>, 'name': <Five character string>, 'value': <Random 1MB string> }
हमने इनमें से लगभग 5000 दस्तावेज़ (लगभग 5GB डेटा) डाले, और परिणाम काफी प्रभावशाली थे। Zlib काफी मात्रा में संपीड़न प्राप्त करता है। Snappy सिस्टम पर कम या बिना लोड के उचित मात्रा में कम्प्रेशन भी प्राप्त करता है:
ज़्लिब | तड़क-भड़क | असम्पीडित | |
डेटा आकार (एमबी) | 5000.5 | 5000.5 | 5000.5 |
भंडारण आकार (एमबी) | 19.62 | 254.37 | 5019 |
हमेशा की तरह आपको अपने डेटा सेट के प्रदर्शन लाभ को समझने के लिए कुछ परीक्षण चलाने की आवश्यकता है। संपीड़न प्रदर्शन और ट्रेडऑफ़ पर कुछ और विस्तृत बेंचमार्क अध्ययन यहां दिए गए हैं:
http://www.mongodb.com/blog/post/new-compression-options-mongodb-30
http://www.acmebenchmarking.com/2015/02/mongodb-v30-compression-benchmarks.html
https://comerford.cc/2015/02/04/mongodb-3-0-testing-compression/