2013-07-23 3 views
18

यदि कोई अन्य डेटाबेस के शीर्ष पर डेटाबेस बनाता है, जैसे ट्विटर ने किया है, तो क्या डेटाबेस अंतर्निहित डेटाबेस की सीमाओं और अक्षमताओं का उत्तराधिकारी है?ग्राफ डेटाबेस डाटाबेस को कुशलता से नोड्स में वितरित कर सकते हैं?

मुझे विशेष रूप से टाइटन डीबी (http://thinkaurelius.com) में दिलचस्पी है क्योंकि डेटासेट को कुशलतापूर्वक नोड्स में विभाजित करने का समर्थन करने के उनके दावे के कारण।

वे कैसंड्रा की दक्षता के कारण नोड्स में डेटा वितरित करने का समर्थन करने का दावा करते हैं। हालांकि, neo4j का दावा है कि वे नोड्स के बीच डेटा वितरित नहीं कर रहे हैं, बल्कि प्रत्येक नोड पर पूरे डेटासेट को डुप्लिकेट कर रहे हैं, क्योंकि कोई ग्राफ ट्रैवर्सल जो एक नोड को छोड़ देता है, और इसके लिए ईथरनेट नेटवर्क में स्थानांतरित होना पड़ता है, यह तरीका बहुत धीमा है व्यावहारिक होना

चूंकि कैसंड्रा को ग्राफ का कोई ज्ञान नहीं है, इसलिए यह ग्राफ़ ट्रैवर्सल को एक नोड पर रखने के लिए अनुकूल नहीं हो सकता है। इसके लिए, अधिकांश ग्राफ ट्रैवर्स नोड सीमाओं में होंगे।

क्या टाइटन्स का दावा है कि नोड्स में कुशलतापूर्वक स्केल करने का दावा है?

उत्तर

19

टाइटन अंतर्निहित स्टोरेज बैकएंड (कैसंड्रा के लिए बीओपी, एचबीएएस के लिए डिफ़ॉल्ट) के कुंजी सॉर्ट ऑर्डर को निर्धारित करता है और उसके बाद आईडी को असाइन करता है जैसे कि समान विभाजन ब्लॉक को असाइन किए गए कोड्स में एक ही भौतिक को आवंटित किया जाता है मशीन। दूसरे शब्दों में, टाइटन "समझता है" अंतर्निहित स्टोरेज बैकएंड डेटा को कैसे वितरित करता है और इस जागरूकता का उपयोग करने वाले ग्राफ विभाजन तकनीकों का उपयोग करता है। टाइटन अर्द्ध स्वचालित विभाजन का उपयोग करता है जो डोमेन ज्ञान को शामिल करता है।

पियरसन बेंचमार्क (http://arli.us/edu-planet-scale) में ग्राफ को विश्वविद्यालयों के अनुसार विभाजित किया गया था जो इस विशेष डेटासेट के लिए निकटतम विभाजन विभाजन मानदंड है। विभाजन के बिना, 120 अरब किनारों तक स्केलिंग असंभव के करीब होगी।

टाइटन ग्राफ परत पर नवाचार करते समय साबित प्रौद्योगिकियों (पैमाने, दृढ़ता, गर्म बैकअप, उपलब्धता, आपदा वसूली, आदि के लिए) के शीर्ष पर बनाता है। यह वही मार्ग है जो ट्विटर के फ्लॉक और फेसबुक के ताओ दोनों ने लिया है। हालांकि इसका मतलब है कि टाइटन बहुत गहरे ट्रैवर्सल पर धीमा है, यह टाइटन को बहुत बड़े ग्राफ या बहुत समवर्ती लेन-देन (पढ़ने और लिखने) तक स्केल करने की अनुमति देता है।

0

अच्छा सवाल। मुझे लगता है कि यह कैलिब्रेटिंग के बारे में है। ट्विटर (जो कैसंद्रा का उपयोग करता है) एक ग्राफ डेटाबेस का उपयोग वास्तव में विशिष्ट तरीके से करता है (उनके पास केवल "गहराई" के दो स्तर होते हैं) इसलिए प्रश्नों को लंबे ग्राफों को पार करने की आवश्यकता नहीं होती है (और उन्हें पूरे डेटासेट को दोहराने के लिए मजबूर नहीं किया जाता है)। मुझे लगता है कि टाइटन और नियो 4j दोनों सही हैं, नियो 4j सामान्य उद्देश्य के लिए ग्राफ डेटाबेस प्रदान करने का प्रयास करता है, इसलिए आपके पास इसका उपयोग करने के तरीके के आधार पर कई समाधान हैं और वे नहीं जानते कि लोग इसका उपयोग कैसे करेंगे ताकि वे अधिक सामान्य समाधान लागू कर सकें : पूरे डेटासेट को दोहराना।

वास्तव में यदि आप पूरे डेटासेट को दोहराना नहीं चाहते हैं और आप अपने ग्राफ में एक लंबे पथ से यात्रा करना चाहते हैं तो यह धीमा हो जाएगा।

तो, आपका उपयोग क्या होगा? मैंने टाइटन का कभी भी उपयोग नहीं किया लेकिन प्रश्नों की "गहराई" के आधार पर नियो 4j के साथ अपने प्रदर्शन की तुलना करना एक अच्छा परीक्षण होगा।

+0

ऐसा लगता है जैसे टाइटन किसी भी प्रकार के ग्राफ का समर्थन करता है, क्योंकि कैसंड्रा (माना जाता है) ग्राफ के बारे में कुछ भी नहीं जानता - केवल कच्चा डेटा। दुर्भाग्य से, मेरे पास परीक्षण के लिए उपयोग करने के लिए कुछ सर्वर नहीं हैं। मुझे लगता है कि एक ही हार्डड्राइव पर 5 वीएम चलने पर बेंचमार्क नहीं है, एक आंतरिक नेटवर्क इसका परीक्षण करने का एक उचित तरीका होगा। –

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