2014-09-13 5 views
10

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

रेडिस तेज़ है लेकिन स्मृति में 1 टीबी डेटा स्टोर करना बहुत महंगा है। लेवलडीबी प्रति क्वेरी कई बार डिस्क पढ़ता है। मुझे मिला सबसे नज़दीकी वाला वसा कैश है लेकिन यह लगातार नहीं है। यह एक एसएसडी समर्थित बैकस्ड है।

कोई सुझाव?

उत्तर

8

RocksDB आपके लिए पसंद हो सकता है, जो मेमोरी और फ्लैश-डिस्क जैसे तेज़ स्टोरेज के लिए अनुकूलित है, और इसकी अत्यधिक अनुकूलन योग्य है। यदि आपका एप्लिकेशन प्रारंभिक थोक-लोड के बाद ही पढ़ा जाता है, तो आप एक ही बड़ी फ़ाइल में सब कुछ कॉम्पैक्ट करने के लिए RocksDB को कॉन्फ़िगर कर सकते हैं। इस तरह, पढ़ने के लिए सबसे अधिक I/O होने की गारंटी है। हालांकि, यदि आपका एप्लिकेशन दोनों पढ़ता है और लिखता है, तो पढ़ने के लिए अधिकतम I/O होने के लिए, आपको लिखने के प्रदर्शन को त्यागना होगा क्योंकि आपको अक्सर कॉम्पैक्ट करने के लिए rocksdb कॉन्फ़िगर करने की आवश्यकता होती है, और इससे लेखन प्रदर्शन होता है।

RocksDB के लिए ट्यूनिंग मार्गदर्शिका भी here मिल सकती है।

0

क्या आपने एयरोस्पेइक को देखा है? मैंने इसका उपयोग नहीं किया है, लेकिन वे एसएसडी पर अच्छा प्रदर्शन करने का दावा करते हैं।

2

आप RocksDB को आजमा सकते हैं, यह एक फेसबुक लाइब्रेरी है जो एसएसडी स्टोरेज के लिए अनुकूलित है। आप Ardb को भी आजमा सकते हैं, यह रॉकडीबी/लेवलडीबी/एलएमडीबी पर एक रेडिस प्रोटोकॉल संगत नोएसक्यूएल डीबी बिल्ड है।

1

एलएमडीबी RocksDB से तेज़ है और 1/3 जितनी मेमोरी का उपयोग करता है। इसके अलावा एलएमडीबी को कोई ट्यूनिंग की आवश्यकता नहीं है; एलएमडीबी के दृष्टिकोण के प्रदर्शन के लिए RocksDB को 40 से अधिक पैरामीटर की सावधानीपूर्वक ट्यूनिंग की आवश्यकता होती है।

http://www.lmdb.tech/bench/inmem/scaling.html

इसके अलावा LMDB पूरी तरह से व्यवहार है और 100% दुर्घटना सबूत, RocksDB न है।

+0

मैंने रॉक्स डीबी और एलएमडीबी की तुलना की। मेरे परीक्षण वातावरण में, रॉक्स डीबी जीतता है। – avhacker

+2

मुझे लगता है कि एलएमडीबी जीत जाएगा जब सभी डेटा स्मृति में लोड किया जा सकता है। यहां मेरा परीक्षण वातावरण है: 4 जीबी रैम वीएम, 10 एम रिकॉर्ड, प्रत्येक रिकॉर्ड में आकार 16 बाइट्स और आकार 1024 बाइट्स की कुंजी है। आप देख सकते हैं कि डेटा का आकार कम से कम 10 जीबी है। मैंने परीक्षण सेट में बार-बार यादृच्छिक रूप से पढ़ने की कोशिश की और RocksDB हमेशा जीतता है। – avhacker

+0

निश्चित रूप से यह मानों के आकार पर निर्भर करता है। इस नई ऑन-डिस्क बेंचमार्क रिपोर्ट को देखें: http://symas.com/mdb/ondisk/ – hyc

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