पेस्ट्री की रूटिंग टेबल काम कैसे करता है?


23

मैं पेस्ट्री वितरित हैश टेबल को लागू करने की कोशिश कर रहा हूं, लेकिन कुछ चीजें मेरी समझ से बच रही हैं। मैं उम्मीद कर रहा था कि कोई स्पष्ट कर सकता है।

डिस्क्लेमर : मैं कंप्यूटर साइंस का छात्र नहीं हूं। मैंने अपने जीवन में ठीक-ठीक दो कंप्यूटर विज्ञान के पाठ्यक्रम लिए हैं, और न ही किसी जटिल चीज से निपटा है। मैंने वर्षों तक सॉफ्टवेयर के साथ काम किया है, इसलिए मुझे लगता है कि मैं कार्यान्वयन कार्य पर निर्भर हूं, अगर मैं सिर्फ विचारों के चारों ओर अपना सिर लपेट सकता हूं। इसलिए मुझे कुछ स्पष्ट याद आ रहा है।

मैंने वह पेपर पढ़ा है जिसे लेखकों ने प्रकाशित किया है [1], और मैंने कुछ अच्छी प्रगति की है, लेकिन मैं इस एक विशेष बिंदु पर लटका रहता हूं कि राउटिंग टेबल कैसे काम करता है:

कागज का दावा है कि

नोड का राउटिंग टेबल, , को प्रविष्टियों के साथ पंक्तियों में व्यवस्थित किया जाता है । पंक्ति में प्रविष्टियों मार्ग तालिका में से प्रत्येक के एक नोड जिसका nodeId शेयरों फाई में मौजूद नोड के nodeId पहला n अंक हैं, लेकिन जिनकी का उल्लेख वें अंकों में से एक है संभावित मान के अलावा अन्य वर्तमान नोड के आईडी में वें अंकों।लोग इन 2 एन 2 - 1 2 - 1 एन एन + 1 2 - 1 n + 1Rlog2bN2b12b1nn+12b1n+1

b एक एप्लिकेशन-विशिष्ट चर, आम तौर पर के लिए खड़ा है 4 । सरलता के लिए, b = 4 का उपयोग करते हैं b=4। तो ऊपर है

नोड की रूटिंग टेबल, R , को 15 प्रविष्टियों के साथ log16N पंक्तियों में व्यवस्थित किया जाता है । 15 पंक्ति में प्रविष्टियों n मार्ग तालिका में से प्रत्येक के एक नोड जिसका nodeId शेयरों फाई में मौजूद नोड के nodeId पहला n अंक हैं, लेकिन जिनकी का उल्लेख n + 1 वें अंकों में से एक है 2 ^ ख - 1 के अलावा अन्य संभावित मान n वर्तमान नोड की आईडी में + 1 अंक।1515nn+12b1n+1

मैं इतना ही समझता हूं। इसके अलावा, N क्लस्टर में सर्वरों की संख्या है। मुझे वह भी मिलता है।

मेरा प्रश्न यह है कि यदि पंक्ति को प्रविष्टि में रखा जाता है, तो कुंजी की साझा लंबाई पर निर्भर करता है, पंक्तियों की संख्या पर प्रतीत होता है कि यादृच्छिक सीमा क्यों है? प्रत्येक नोडआईड में 32 अंक होते हैं, जब b=4 (128 बिट नोड्स बी बिट्स के अंकों में विभाजित होते हैं)। तो क्या होता है जब N इतना उच्च हो जाता है कि log16N>32 ? मुझे लगता है कि इस परिदृश्य को हिट करने के लिए 340,282,366,920,938,463,374,607,431,768,211,457 (यदि मेरा गणित सही है) सर्वर लगेंगे, लेकिन यह सिर्फ एक अजीब समावेश की तरह लगता है, और सहसंबंध कभी भी समझाया नहीं गया है।

इसके अलावा, यदि आपके पास कम संख्या में सर्वर हैं तो क्या होगा? यदि मेरे पास 16 से कम सर्वर हैं, तो मेरे पास तालिका में केवल एक पंक्ति है। इसके अलावा, किसी भी परिस्थिति में पंक्ति में प्रत्येक प्रविष्टि के पास एक समान सर्वर नहीं होगा। क्या प्रविष्टियों को खाली छोड़ दिया जाना चाहिए? मुझे पता है कि मैं पत्ती सेट में सर्वर को खोजने में सक्षम हो जाएगा, कोई बात नहीं, जो कुछ सर्वरों को दिया जाता है, लेकिन दूसरी पंक्ति के लिए एक ही quandary उठाया जाता है - क्या होगा यदि मेरे पास एक सर्वर नहीं है जिसमें एक नोडआईड है ऐसा मैं nth अंक के हर संभावित क्रमांक को भर सकता हूँ? अंत में, अगर मेरे पास, चार सर्वर हैं, और मेरे पास दो नोड्स हैं जो शेयर करते हैं, कहते हैं, उनके 32 अंकों में से 20, कुछ यादृच्छिक अस्थायी द्वारा ... क्या मुझे उस नोड के लिए तालिका की 20 पंक्तियों को पॉप्युलेट करना चाहिए, भले ही वह है जितना मैं भरने के करीब आ सका उससे कहीं अधिक पंक्तियाँ?

यहाँ मैं इसके साथ अपना रास्ता बनाने की कोशिश कर रहा हूँ:

  1. यदि कोई नोड ठीक उपसर्ग से मेल नहीं खाता है तो प्रविष्टियाँ शून्य मान पर सेट की जानी हैं।
  2. खाली पंक्तियों को तब तक जोड़ा जाना चाहिए जब तक नोड्स की साझा लंबाई से मेल खाने के लिए पर्याप्त पंक्तियाँ मौजूद न हों।
  3. यदि, और केवल अगर, एक वांछित संदेश आईडी के लिए कोई मिलान प्रविष्टि नहीं है, तो नोड के लिए राउटिंग टेबल की खोज पर वापस जाएं, जिसकी साझा लंबाई वर्तमान नोड की तुलना में अधिक या बराबर है और जिसकी प्रविष्टि गणितीय रूप से वर्तमान से करीब है वांछित आईडी का नोडआईड।
  4. यदि कोई उपयुक्त नोड # 3 में नहीं पाया जा सकता है, तो मान लें कि यह गंतव्य है और संदेश वितरित करता है।

क्या इन चारों धारणाओं को पकड़ लिया है? क्या कहीं और है जो मुझे इस बारे में जानकारी की तलाश में होना चाहिए?


  1. पेस्ट्री: स्केलेबल, विकेन्द्रीकृत वस्तु स्थान और बड़े पैमाने पर सहकर्मी से सहकर्मी सिस्टम के लिए राउटिंग ए। रोस्ट्रॉन्ग और पी। ड्रूशेल (2001) - यहाँ डाउनलोड करें

आप कहते हैं कि आपके पास बहुत कम प्रोग्रामिंग है। लेख वास्तव में प्रोग्रामिंग (सीधे) के साथ सौदा नहीं करता है, बल्कि दो नोड्स के बीच सबसे छोटी पथ नेटवर्किंग है। तो अगला सवाल यह है: आपको किस पृष्ठभूमि की नेटवर्किंग मिली? यह सब नेटवर्क पर रूटिंग के बारे में है।

मैंने वास्तव में कहा कि मेरा मानना ​​है कि मेरे पास पर्याप्त प्रोग्रामिंग अनुभव है। यह कंप्यूटर विज्ञान का अनुभव है मुझे लगता है कि मुझे कमी है। बावजूद, मेरे पास नेटवर्किंग का कोई अनुभव नहीं है। मुझे यकीन नहीं है कि मैं आपके दावे से सहमत हूं कि यह मुख्य रूप से नेटवर्किंग के बारे में है, लेकिन मैं आपके विचारों को सुनना पसंद करूंगा।

जवाबों:


5

पेस्ट्री में एक राउटिंग टेबल (और सभी संरचित पी 2 पी नेटवर्क) का विचार एक त्वरित मार्ग की गारंटी देते हुए, इसके आकार को कम करना है।

पेस्ट्री की एल्गोरिथ्म निम्नानुसार है:

चरण ए। एक नोड यू एक वस्तु ए के लिए खोज करता है जो पहले इसे अपने पत्ती सेट में देखता है। चरण बी। यदि यह उपलब्ध नहीं था, तो क्वेरी को एक ज्ञात नोड के पास भेजा जाता है जो " साथ कई उपसर्गों को साझा करता है जो कि साथ नोड यू शेयरों से कम से कम बड़ा है"। चरण सी। यदि ऐसा रिकॉर्ड नहीं मिला है, तो क्वेरी को पत्ती सेट में नोड के लिए भेजा जाता है जो संख्यात्मक रूप से सबसे करीब है ।AA

यही कारण है कि एक नोड नोड्स के पते अपनी तालिका को निम्नानुसार व्यवस्थित करता है:u

पंक्ति में 1.Each रिकॉर्ड नोड के मार्ग तालिका के एक नोड पहचानकर्ता कि शेयरों है के पहचानकर्ता के साथ बिट्स उपसर्ग ।यू मैं यूiuiu

2.The बिट्स ऑफ द रेक यूनिक है और इसे सेट । i(i+1)thi{0,,2b1}

एक विशिष्ट परिदृश्य में उदाहरण: यदि u पता 1111 है और ऑब्जेक्ट में पहचानकर्ता 4324 है: तो यहां वही होगा जो होगा: (हम मानते हैं कि यह 4. के आधार का है। (पते पते [1-4] [1- से हैं] 4] [1-4] [1-4])।A

नोड शेयर 0 उपसर्ग वस्तु साथ । इसलिए, यह पंक्ति 0. में दिखता है। ऊपर 2 नियम के अनुसार, नोड नोड्स 1XXX, 2XXX, 3XXX, 4XXX के पते संग्रहीत करता है, जहां एक्स एक "न ही देखभाल" मूल्य है। इन नोड्स के बीच निकटतम 4XXX है। - लेट्स कहते हैं कि यह वास्तव में 4XXX 4013. तब है करने के लिए आगे पते 4013. साथ अब आप नोड पर फिर से एक ही बात दोहराने के लिए जा रहे हैं पता 4013 के साथ।यू यू यू यू uAuAuu1u1

इसे सरल बनाने के लिए, यहां एक उदाहरण दिया गया है कि यह 4013 में कैसे जाएगा। पहली बार 4013 और 4324 के बीच के आकार के आम उपसर्ग की खोज करेगा, जो कि 1. है। इसलिए यह पंक्ति 1 में जाता है, जिसमें मान होते हैं जैसे कि 41XX, 42XX, 43XX, 44XX। उनमें से बीच का समापन 43XX है। - अगर यह 4331 था, तो यह आगे की ओर होगा।u1A

यहाँ हॉप्स की अधिकतम संख्या 4 हॉप्स (XXXX) है! पेस्ट्री शब्दों में, यह । तो यह बढ़ने के साथ कम हो जाता है । लेकिन पंक्तियों का आकार जो , बढ़ेगा! - तो लेखकों ने कहा कि = 4 एक अच्छा संतुलन है! b 2 b blog2bb2bb

व्यावहारिक परिदृश्य आमतौर पर उस तरह से विशिष्ट नहीं होते हैं। ऐसी स्थितियां हो सकती हैं जिनमें नेटवर्क में कई नोड्स नहीं हैं। यही कारण है कि हम ऊपर चरण सी का पालन करते हैं। - हालाँकि, इस एल्गोरिथम को सही बनाने के लिए आपको जो गारंटी देने की आवश्यकता है, वह यह है कि प्रत्येक नोड को निकटतम दो नोड्स से जोड़ा जाए (पहचानकर्ताओं के कार्यकाल में)। यह आदेशित नोड्स की एक अंगूठी बनाएगा [जैसे 1-> 3-> 4-> 9-> 10-> 11-> 1]


पूरी तरह से नहीं कि मैं क्या पूछ रहा था, लेकिन एल्गोरिथ्म का एक बहुत अच्छा अवलोकन आपको एक उत्थान और स्वीकृत उत्तर देता है। :)
धान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.