2013-01-07 47 views
7

मर्कले पेड़ (उर्फ हैश पेड़) का उपयोग "कैसंड्रा" & "डायनेमो" दोनों में डेटा सिंक्रनाइज़ेशन के लिए किया जाता है।मर्कल ट्री डेटा सिंक्रनाइज़ेशन झूठी पॉजिटिव्स

किसी भी हैश फंक्शन के साथ के रूप में, वहाँ एक संभावना विभिन्न डेटा एक ही हैश मान हो सकता है है:

मौजूद है एक x और y जहां [! Y = x] लेकिन [हैश (x) = हैश (वाई)]

जैसा कि एनओएसक्यूएल में "बड़ा डेटा" बढ़ता है, ऐसे डेटा का सामना करने की संभावना अधिक हो जाती है।

इसका मतलब है कि जैसे डेटा सेट बड़ा हो जाता है, यह लगभग निश्चित है कि मर्कल पेड़ में विभिन्न नोड्स एक ही पैरेंट हैश उत्पन्न करेंगे।

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

यह कैसे संभाला जाता है?

उत्तर

6

अधिकांश सिस्टम इसे संभाल नहीं पाते हैं। क्यूं कर? क्योंकि दो अलग-अलग इनपुट होने की संभावना है जिसमें समान हैश मान बहुत कम है। एक अच्छा हैश फ़ंक्शन (जो मुझे लगता है कि आप इसका उपयोग कर रहे हैं) के साथ, यह 1/2^{हैश-बिट्स} से संपर्क करना चाहिए। और चूंकि इन उद्देश्यों के लिए अधिकांश हैंश कम से कम 128 बिट लंबे हैं, इसलिए आपको इस तरह की टक्कर के 1/2^128 की संभावना मिलती है। जो 2.9387359e-39 (0. {38 शून्य} 2 9 38735 9) है।

160 बिट्स (जो इनमें से अधिकतर सिस्टम उपयोग करते हैं, SHA-1 हैश) का हैश का उपयोग करना पर्याप्त है, जब आपके डेटाबेस में जितनी अधिक वस्तुएं होती हैं क्योंकि दुनिया में रेत के अनाज होते हैं। कि आपके पास अभी भी 1/2 की संभावना से कम है कि ऐसी टक्कर होगी। इस प्रकार, मैं उस मामले के बारे में चिंता नहीं करता जहां टकराव होता है। ऐसा होने की संभावना, वास्तव में बहुत कम है।

+0

क्या कोई अन्य सिंक तंत्र है जो आखिरकार यहां लात देगा? या क्या ये डेटाबेस बस हैश-फ़ंक्शंस को समान रूप से वितरित किए जाने पर भरोसा करते हैं? मैं आपको याद दिलाता हूं कि कैसंद्रा के मामले में अधिकांश उपयोगकर्ता डिफ़ॉल्ट हैश फ़ंक्शन के साथ जाते हैं, जो शायद इष्टतम वितरण नहीं होता है। – eshalev

+0

नहीं, अधिकांश सिस्टम समान रूप से वितरित किए जा रहे हैंश-फ़ंक्शंस पर भरोसा करते हैं (वे [SUHA] (http://en.wikipedia.org/wiki/SUHA_ (computer_science) पर भरोसा करते हैं)। और मुझे अत्यधिक संदेह है कि कैसंड्रा का डिफ़ॉल्ट हैश फ़ंक्शन Suha का उपयोग नहीं करता है। – kokx

+0

डेटा जो उनकी नहीं है अधिक समान वितरण मान कैसेंड्रा सकता है कैसे? उपयोगकर्ता हमेशा डेटा जो हैश फंक्शन के साथ अच्छी तरह से नहीं चलता है लिख सकते हैं। – eshalev

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

  • कोई संबंधित समस्या नहीं^_^