2012-11-18 16 views
6

मैं एक प्रमुख मूल्य स्टोर की तलाश में हूं जिसका उपयोग ईसी 2 इंस्टेंस से किया जा सकता है।भारी, प्रतिकृति, बड़ी-से-मेमोरी कुंजी-मूल्य स्टोर लिखें

  • आइटम सिर्फ एक असंरचित स्ट्रिंग है, कोई अनुक्रमण आवश्यक राईट
  • पढ़ने तेजी से होने की जरूरत नहीं है की ~ 5MB लेकिन आम तौर पर 10kb नीचे
  • बहुत सारी करने के लिए
  • आइटम आकार, मेम्कैश हो सकता है सामने रखा कैश अक्सर जरूरत पढ़ता है कि
  • डेटा स्मृति में फिट करने के लिए बहुत बड़ी है
  • अंततः संगति ठीक है
  • डेमॉन कि fr पहुँचा जा सकता है ओम कई मशीनों की आवश्यकता है

आदर्श रूप में कुछ एडब्ल्यूएस की मेजबानी की सही होगा, लेकिन:

  • S3 क्योंकि बहुत सारे लेखन आइटम आकार की वजह से
  • SimpleDB/DynamoDb फिट नहीं है के फिट नहीं करता है सीमा और अनुक्रमण की आवश्यकता नहीं है

क्योंकि बाजार पर बहुत सारे महत्वपूर्ण मूल्य स्टोर हैं, तो सबसे अच्छा विकल्प चुनना मुश्किल है। तुम किसकी सिफारिश करना चाहोगे?

+0

आप नहीं कहते हैं कि – clh

+0

@ caius.howcroft: इसका मतलब क्या है? –

+0

क्षमा करें टाइपो, यह महसूस नहीं किया कि यह – clh

उत्तर

6

मैं अपने उपयोग के मामले के लिए एकदम सही समाधान नहीं मिला।

मैंने अभी तक कोई प्रदर्शन परीक्षण नहीं किया है।

संपादित करें:

हम प्रतिकृति के साथ समस्याओं के कारण memcachedb गिरा दिया। इसके बजाए हम अब mongodb चलाते हैं। मोंगोडब को अधिक डिस्क स्थान और सामान्य रूप से अधिक संसाधनों की आवश्यकता होती है। लेकिन प्रतिकृति सेट बहुत विश्वसनीय काम करता है और स्थापित करने में आसान है।

+0

आप कोचबेस का उपयोग कर सकते हैं जो आपको मेमकैड प्रोटोकॉल का उपयोग करके कुंजी तक बहुत तेज पहुंच प्रदान करता है। कॉचबेस आपको कुंजी से जुड़े किसी भी प्रकार की सामग्री को स्टोर करने देता है। कॉचबेस 2.0 एक दस्तावेज़ उन्मुख डीबी है लेकिन आप किसी भी प्रकार की बाइनरी सामग्री को स्टोर कर सकते हैं। इस पेपर पर एक नज़र डालें जो आपको कुछ प्रमुख लाभ देखने में मदद करेगी: http://www.couchbase.com/memcached –

+0

@TugGrall: मुझे लगता है कि मेरे उपयोग के लिए काम नहीं करेगा क्योंकि डेटा बहुत बड़ा है स्मृति में फिट करने के लिए। –

+0

यदि आप "कोचबेस बाल्टी" चुनते हैं तो यह आवश्यक होने पर स्वचालित रूप से डिस्क पर सामग्री को संग्रहीत करेगा: http://www.couchbase.com/docs/couchbase-manual-1.8/couchbase-architecture-buckets.html –

2

शायद तुम कोशिश करनी चाहिए MongoDB:
http://www.mongodb.org/display/DOCS/Amazon+EC2

त्वरित प्रारंभ:
http://www.10gen.com/presentations/nyc-meetup-group/mongodb-and-ec2-a-love-story

अन्य मुख्य मान भंडार:
http://google-opensource.blogspot.com/2011/07/leveldb-fast-persistent-key-value-store.html 10gen और वीडियो प्रस्तुतियों पर
http://www.mongodb.org/display/DOCS/Amazon+EC2+Quickstart

नि: शुल्क पाठ्यक्रम

Riak के बारे में

टिप्पणियाँ और उनके भंडार विशेष रूप से bitcask और innostore:
http://basho.com/blog/technical/2011/07/01/Leveling-the-Field/

RaptorDB: एक बेहद छोटे आकार और तेजी से एम्बेडेड, NoSQL, बी + पेड़ या बड़बड़ाहट हैश अनुक्रमण का उपयोग कर डेटाबेस शब्दकोश बनाए। इसे मुख्य रूप से जेएसओएन डेटा स्टोर करने के लिए डिज़ाइन किया गया था (मेरे फास्टजेसन कार्यान्वयन को देखें), लेकिन आप जो भी डेटा देते हैं उसे स्टोर कर सकते हैं।

HamsterDB: एक रमणीय इंजन सी ++ में लिखा है, जो मुझे अपनी गति के लिए एक बहुत प्रभावित जब मैं अनुक्रमण के लिए हारून Watters कोड का उपयोग किया गया था। (रैप्टर डीबी अब इसे ज़िंदा खाता है ... अहम!) यह 64 केबी संस्करण में के लिए 600 केबी पर काफी बड़ा है।

ESENT PersistentDictionary: जो एक एक अन्य परियोजना जो बनाया Windows में esent डेटा भंडारण इंजन पर एक प्रबंधित आवरण को लागू करता है का हिस्सा है CodePlex पर एक परियोजना।शब्दकोश प्रदर्शन अनुक्रमिक रूप से 40,000 आइटम अनुक्रमित होने के बाद चला जाता है और सूचकांक फ़ाइल केवल ग्रिड कुंजी पर बढ़ती है। स्पष्ट रूप से परियोजना मालिकों के साथ वार्ता के बाद, इस समय यह एक ज्ञात मुद्दा है।

टोक्यो/क्योटो कैबिनेट: ए सी ++ कुंजी स्टोर का कार्यान्वयन जो बहुत तेज़ है। टोक्यो कैबिनेट बी + पेड़ इंडेक्सर है जबकि क्योटो कैबिनेट एक मुरमुर 2 हैश इंडेक्सर है।

4aTech शब्दकोश: इस CodeProject पर एक अन्य लेख जो एक ही बात करता है, वेब साइट पर व्यावसायिक संस्करण विशाल (450KB) है और उदासी से 50,000 आइटम अनुक्रमित के बाद GUID कुंजी पर वार प्रदर्शन विफल रहता है।

BerkeleyDB: सभी डेटाबेस की भव्य पिताजी जो ओरेकल के स्वामित्व और 3 जायके में आता है, सी ++ कुंजी संग्रह, जावा कुंजी संग्रह और एक्सएमएल डेटाबेस।

(कोटेशन स्रोत: http://www.codeproject.com/Articles/190504/RaptorDB): memcachedb

यह कल्पना दस्तावेज़/अनुक्रमण नहीं करता है, यह सिर्फ एक सरल कुंजी मान दुकान है

+0

मैंने मोंगोडब माना है - लेकिन यह मुझे अधिक डिज़ाइन किया गया है: मुझे दस्तावेज़ संग्रहण, अनुक्रमण, नक्शा कम करने आदि की आवश्यकता नहीं है –

+0

शायद रेडिस या एसएचएच का उल्लेख यहां दिया गया है: http: // stackoverflow.com/questions/1733619/writing-a-key-value-store – 42n4

+0

मुझे एक सर्वर की आवश्यकता है। रेडिस काम नहीं करता क्योंकि मेरा डेटा स्मृति में संग्रहीत करने के लिए बहुत बड़ा है। –

2

HBase के लिए एकदम सही उपयोग केस की तरह लगता है। यह महान लेखन थ्रूपुट देता है, खासकर अगर आपकी डालने की चाबियाँ कुछ हद तक यादृच्छिक हैं। एचबीज़ आमतौर पर के/वी स्टोर के रूप में विज्ञापित नहीं होता है, लेकिन इसे ठीक काम करना चाहिए। AWS documentation कुछ उपयोग मामलों को प्रस्तुत करता है जिन्हें आप नज़दीकी रूप से देखना चाहते हैं। नकारात्मकता यह है कि एचबीएस केवल के/वी की तुलना में बहुत कुछ कर सकता है, इसलिए यह आपको आवश्यकतानुसार अधिक जटिल (और जटिल) हो सकता है।

1

Couchbase आपकी ज़रूरतों के लिए एक अच्छा मैच की तरह लगता है। यह डिस्क भंडारण के साथ memcached की तरह बहुत है।

सकारात्मक:

  • यह एक कुंजी/मान डेटाबेस है। आप जो भी बाइनरी ब्लॉब चाहते हैं उसे स्टोर कर सकते हैं। संस्करण 2.0 के अनुसार इसे आपके डेटा को जेसन के रूप में संग्रहीत करने और कुछ प्रश्नों को चलाने और मानचित्र/इसे कम करने के लिए समर्थन है। लेकिन, अगर आपको इसकी आवश्यकता नहीं है, तो इसे कुंजी/मान के रूप में उपयोग करना बहुत अच्छा काम करता है।

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

  • मेरे अनुभव में यह विश्वसनीय रहा है। यदि कोई नोड नीचे चला जाता है, तो क्लस्टर काम करता रहता है और फेलओवर करना बहुत आसान होता है। नए नोड्स जोड़ना भी बहुत आसान है।

  • डेटा को स्मृति में फिट नहीं होना चाहिए। यह डिस्क पर संग्रहीत हो जाता है और आवश्यकतानुसार अंदर और बाहर पेज़ किया जाता है।

  • व्यवस्थापक इंटरफ़ेस बहुत अच्छा है। क्लस्टर की निगरानी के लिए इसमें निफ्टी लाइव ग्राफ हैं।

  • यह memcached प्रोटोकॉल के साथ पीछे संगत है। यदि आपके पास पहले से कोड है जो memcached का उपयोग करता है, तो यह इसके बजाय कोचबेस का उपयोग करने के लिए बहुत सरल होगा।

विपक्ष:

  • उत्पाद अभी भी कुछ हद तक युवा है, इसलिए प्रलेखन और समर्थन उपकरण कुछ हद तक कमी है। यह कभी-कभी थोड़ा परेशान हो सकता है।
संबंधित मुद्दे