2014-11-12 10 views
8

मैं उस डेटा को स्टोर करने के लिए डेटाबेस/तंत्र की तलाश कर रहा हूं जहां मैं डेटा लिख ​​सकता हूं और उच्च प्रदर्शन वाले डेटा को पढ़ सकता हूं।उच्च प्रदर्शन डीबी। कोई अपडेट या हटाएं

यह स्टोरेज लॉगिंग को संग्रहीत करने के लिए कई प्रणालियों में महत्वपूर्ण जानकारी जैसे स्टोरिंग के लिए उपयोग किया जाता है। Since it's critical data which will be logged, read performance should be pretty fast as these data will be used to show history. Since we never do update on them/delete on them/or do any kinda joins, I am looking for right solution. शायद हम लंबे समय से डेटा संग्रहित कर सकते हैं लेकिन इससे निपटने के लिए कुछ ठीक है।

मैं अलग NoSQL डेटाबेस को समझने के लिए विभिन्न स्रोतों पर देख रहे हैं की कोशिश की, विशेषज्ञों की राय हमेशा बेहतर है :)

Must Have: 
1. Fast Read without fail 
2. Fast Write without fail 
3. Random access Performance 
4. Replication kinda feature, one goes down, immediately another should be up and working 
5. Concurrent write/read data 

Good to Have: 
1. Search content like analysing the data for auditing with/without Indexes 

Don't required: 
1. Transactions are not required at all 
2. Update never happens 
3. Delete never happens 
4. Joins are not required 

भेजा: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

+0

क्या आपने एक फ्लैट फ़ाइल माना है? मैंने एक बार लॉटरी कंपनी से परामर्श लिया। उनके पास बहुत कठोर आवश्यकताएं थीं। उन्होंने तेजी से और भरोसेमंद पढ़ने, लिखने और तलाशने के लिए फ्लैट फाइलों का उपयोग किया। –

+0

बस यह समझ में नहीं आता कि लोक सिर्फ "विषय से" कानूनी प्रश्न कैसे हैं .... –

+0

आपको स्ट्रीमिंग के साथ हडोप की तरह कुछ चाहिए। एक एसएएएस समाधान BigQuery है हालांकि मैं केवल प्रयोगात्मक उद्देश्य के लिए सिफारिश करेंगे। – themihai

उत्तर

6

मुझे कैसेंड्रा प्रायोजक बनें।

अस्वीकरण: मैं नहीं कहता क्योंकि मैं भी नहीं जानता कि कैसेंड्रा दूसरों से बेहतर है इतनी गहराई से मोंगो/redis/जो कुछ भी और मैं भी नहीं करना चाहती सामान इस तरह का में आते हैं।

कारण है कि मैं सुझाव कैसेंड्रा क्योंकि अपनी आवश्यकताओं को पूरी तरह से साथ क्या कैसेंड्रा प्रदान करता है और अपने "आवश्यक नहीं है सूची" सुविधा का एक सेट है कि या तो कैसेंड्रा में समर्थित नहीं हैं है से मेल है (उदाहरण के लिए मिलती है) या विचार एक विरोधी पैटर्न (हटा देता है और कुछ स्थितियों में अद्यतन)।

अपने "करना होगा" सूची, बिंदु से बिंदु

  1. द्वारा फास्ट पढ़ें असफल बिना: समर्थित। आप निर्णय लेने से कितना महत्वपूर्ण सबसे ताजा जानकारी को पुनः प्राप्त और कितना महत्वपूर्ण है प्रत्येक पढ़ा आपरेशन की निरंतरता के स्तर का चयन कर सकते हैं बिना असफल गति

  2. फास्ट लिखें है: बिंदु 1

  3. के समान यादृच्छिक अभिगम प्रदर्शन: कैसंड्रा दुनिया में आने पर आपको यादृच्छिक अभिगम प्रदर्शन प्राप्त करने के लिए कई मानकों पर विचार करना होगा, लेकिन मेरे दिमाग में सबसे महत्वपूर्ण बात यह है कि डेटा मॉडल - यदि आप एक डेटा मॉडल बनाते हैं जो क्षैतिज रूप से स्केल करता है (give a look here) और आप जो भी चाहते हैं उसे प्राप्त करने वाले हॉटस्पॉट से बचें। इस कैसेंड्रा आप क्या सोचते हैं हो सकता है से भी बेहतर है: आप एक अच्छे तरीके से अपने डीबी मॉडल यदि आप प्रत्येक ऑपरेशन के बाद से डेटा

  4. प्रतिकृति पूछे जा करने के लिए संरचित कर रहे के लिए हे (1) होना चाहिए । यदि एक नोड नीचे जाता है तो क्लस्टर में कुछ भी नहीं बदलता है और सबकुछ (*) पूरी तरह से काम करता रहता है। कैसंद्रा विफलता का कोई भी बिंदु नहीं है। मैं बड़ा कैसेंड्रा संस्करण के साथ आपको बता सकता है मैं 3 साल से अधिक

    के सक्रिय रहने की अवधि लिया है
  5. समवर्ती लिखने/पढ़ने के डेटा: कैसेंड्रा lww नीति (अंतिम लिखने-जीत) समवर्ती लेखन को संभालने के लिए उपयोग करता है एक ही कुंजी पर। सिस्टम एकाधिक रीड-राइट और नए प्रोटोकॉल के साथ एसिंक ऑपरेशंस का समर्थन करता है।

अन्य दिलचस्प सुविधाओं के बहुत सारे हैं कैसेंड्रा प्रदान करता है: रैखिक क्षैतिज स्केलिंग एक मैं और अधिक की सराहना करते है, लेकिन यह भी सच है कि आप तत्काल जिसमें डेटा के हर भाग को अद्यतन किया गया है (टाइमस्टैम्प पता कर सकते हैं वह यह है कि lww), काउंटर सुविधाओं और इतने पर।

(*) - यदि आप संगठनात्मक स्तर का उपयोग नहीं करते हैं, तो सभी, इमो, इस तरह के सिस्टम में कभी भी उपयोग नहीं किया जाना चाहिए।

+0

वर्तमान में मैं लोचदार खोज बनाम कैसंद्रा देख रहा हूं।दोनों को अंतिम सूची में बनाया गया है। क्या मुझे कोई लेख/जानकारी मिल सकती है, उनमें से प्रत्येक की सीमाएं क्या हैं ताकि मैं भविष्य के वास्तुकला को देख सकूं और चुनाव का फैसला कर सकूं। – Reddy

+0

वे प्रतिस्पर्धा करने के बजाए सह-अस्तित्व में बने दो अलग-अलग समाधान हैं। कैसंद्रा एक भंडारण प्रणाली है जबकि ईएस लुसीन पर आधारित एक पूर्ण पाठ खोज इंजन है। डेटास्टैक्स एंटरप्राइज एक ऐसा समाधान है जो सोलर का उपयोग करके पूर्ण पाठ खोज इंजन और कैसंद्रा के रूप में वर्णित डेटा को बनाए रखने और सटीक खोज करने के लिए किया गया है। –

+0

मैंने अपने समाधान में कैसंड्रा का उपयोग किया, लेकिन डेटा आकार बढ़ने के साथ ही डेटा (सटीक कुंजी का उपयोग कर डेटा लाने) के लिए प्रदर्शन पढ़ता है। जो नहीं होना चाहिए था। सुझाव के लिए –

15

Aerospike पर विचार करना सुनिश्चित करें; एरोस्पेक एडेटेक स्पेस पर हावी है जहां high throughput पढ़ता है और लिखता है एक आवश्यक है। एरोस्पाइक को अक्सर "कैसंद्रा की स्केलेबिलिटी के साथ रेडिस की गति" के रूप में कहा जाता है। खोज/पूछताछ के लिए एयरोस्पेइक के secondary index दस्तावेज देखें।

  1. Aerospike vs Cassandra
  2. Aerospike vs Redis and Mongo
  3. Aerospike Benchmarks

अन्त में One million TPS on EC2 Instructions साथ खुद के लिए प्रदर्शन की पुष्टि:

अधिक जानकारी के लिए चर्चा/नीचे लेख देखें।

http://www.aerospike.com/hybrid-memory/

http://www.aerospike.com/docs/architecture/storage.html

मुझे लगता है कि हर किसी को है:

+1

धन्यवाद। जैसा कि मैंने अपनी पोस्ट में उल्लेख किया है, पढ़ें/लिखें/खोज संचालन पर्याप्त तेज़ होना चाहिए। लेकिन जब मैं एरोस्पेइक से गुजरता हूं, तो यह कैसंड्रा डिस्क प्रकार के खिलाफ इन-मेमोरी प्रकार के बारे में है। हम इस तरह के विशाल रैम की पेशकश करने में सक्षम नहीं होंगे क्योंकि ये डेटा एनालिटिक्स का हिस्सा होंगे। – Reddy

+1

वास्तव में एयरोस्पेक न केवल मेमोरी डेटाबेस है, सबसे व्यापक रूप से तैनात स्टोरेज मॉडल [हाइब्रिड स्टोरेज] है (http://www.aerospike.com/docs/architecture/storage.html#hybrid-storage) जहां वहां राम में प्रत्येक रिकॉर्ड के लिए 64 बाइट इंडेक्स एंट्री है और डेटा फ्लैश स्टोरेज (एसएसडी) पर संग्रहीत है। – kporter

+7

एसओ नियमों के अनुसार, आप [आवश्यक] (http://meta.stackexchange.com/questions/57497/limits-for-self-promotion-in-answers) Aerospike के साथ अपने संबद्धता का खुलासा करने के लिए हैं। मुझे गलत मत समझो, मुझे यह पसंद है और मुझे यकीन है कि यह नौकरी के लिए आदमी है :) –

4

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

समानता के माध्यम से, मुझे हमेशा याद होगा कि, दशकों पहले, मेरी बहन ने एक बार मेरे कंप्यूटर को उधार लिया और माइक्रोसॉफ्ट एक्सेल में अपना टर्म पेपर लिखा था। रेखा के बाद रेखा एक स्प्रेडशीट की एक अलग पंक्ति थी। यह बिल्ली के रूप में बदसूरत लग रहा था, लेकिन, ठीक है, ठीक है। उसने काम पूरा कर लिया। उसने शाप दिया और शपथ ली कि चीज़ को संपादित करना कितना मुश्किल था। मजाक नहीं!

सही कार्य के लिए सही नोएसक्यूएल डेटाबेस चुनना या तो आपके काम को हवा बना देगा, या यदि आप काम के लिए गलत बुनियादी उपकरण पर निर्णय लेते हैं तो आप नीली लकीर को अभिशाप कर सकते हैं।

बेशक, हर विक्रेता अपने उत्पाद की रक्षा करने जा रहा है। मुझे लगता है कि यह समुदाय सबसे अच्छा सवाल है। यहाँ एक और स्टैक ओवरफ़्लो धागा एक ऐसी ही सवाल का जवाब है:

Has anyone worked with Aerospike? How does it compare to MongoDB?

Btw: क्या आप हल करने की कोशिश कर रहे हैं समस्या का किस प्रकार पर हमारे लिए किसी भी अधिक विशिष्ट जानकारी है?

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