প্যাস্রিটিংয়ের রাউটিং টেবিল কীভাবে পপুলেটিং করে?


23

আমি প্যাস্ট্রি ডিস্ট্রিবিউটড হ্যাশ টেবিলটি বাস্তবায়নের চেষ্টা করছি, তবে কিছু জিনিস আমার বোধ থেকে দূরে রয়েছে। আমি আশা করছিলাম যে কেউ স্পষ্ট করতে পারে।

দাবি অস্বীকার : আমি কম্পিউটার বিজ্ঞানের শিক্ষার্থী নই। আমি আমার জীবনের সুনির্দিষ্টভাবে দুটি কম্পিউটার বিজ্ঞান কোর্স নিয়েছি এবং দূরবর্তী জটিল কোনও কিছুইই করি নি। আমি কয়েক বছর ধরে সফ্টওয়্যার নিয়ে কাজ করেছি, তাই আমি অনুভব করি আমি বাস্তবায়নের কাজটি করতে প্রস্তুত, যদি আমি কেবল ধারণাগুলির চারপাশে আমার মাথা গুটিয়ে রাখতে পারি। সুতরাং আমি ঠিক কিছু স্পষ্ট অনুপস্থিত হতে পারে।

আমি লেখকরা প্রকাশিত কাগজটি পড়েছি [1], এবং আমি কিছু ভাল অগ্রগতি করেছি, তবে রাউটিং টেবিলটি কীভাবে কাজ করে তা সম্পর্কে আমি এই একটি নির্দিষ্ট পয়েন্টটিতে ঝুলতে থাকি:

কাগজ দাবি করেছে যে

একটি নোডের রাউটিং টেবিল, , সহ সারিগুলিতে সংগঠিতRlog2bN2b1 টি করে এন্ট্রি । 2b1 সারিতে এন্ট্রি n রাউটিং টেবিল প্রতিটি একটি নোড যার nodeId শেয়ারের বর্তমান নোড এর nodeId ফাই মধ্যে প্রথম এন সংখ্যা, কিন্তু যাদের পড়ুন n+1 ম অঙ্ক অন্যতম 2b1 সম্ভাব্য মান ছাড়া অন্য n+1 বর্তমান নোড এর আইডি তম অঙ্ক।

b একটি অ্যাপ্লিকেশন-নির্দিষ্ট পরিবর্তনশীল, সাধারণত ঘোরা 4 । সরলতার জন্য, ব্যবহার করি b=4। সুতরাং উপরের হয়

একটি নোড এর রাউটিং টেবিল R , মধ্যে সংগঠিত হয় log16N সঙ্গে সারি 15 এন্ট্রি প্রতিটি। 15 সারিতে এন্ট্রি n রাউটিং টেবিল প্রতিটি একটি নোড যার nodeId শেয়ার ফাই উপস্থিত নোড এর nodeId প্রথম এন সংখ্যা, কিন্তু যাদের পড়ুন n+1 ম অঙ্ক অন্যতম 2b1 সম্ভাব্য মান ছাড়া অন্য n+1 বর্তমান নোডের আইডিতে 1 ম সংখ্যা।

আমি অনেক কিছু বুঝতে পারি। আরও, N ক্লাস্টারে সার্ভারের সংখ্যা। আমি তাও পেয়েছি।

আমার প্রশ্ন হ'ল যদি একটি সারিটিতে একটি এন্ট্রি রাখা হয় তবে কীটির ভাগ করা দৈর্ঘ্যের উপর নির্ভর করে, সারিগুলির সংখ্যার উপর আপাতদৃষ্টিতে এলোমেলো সীমা কেন? প্রতিটি নোডআইডের 32 টি সংখ্যা থাকে, যখন (128 বিট নোডআইডস বি বিটের অঙ্কগুলিতে বিভক্ত)। সুতরাং যখন সেখানে কি ঘটছে এন যথেষ্ট উচ্চ যে পায় লগ ইন করুন 16 এন > 32 ? আমি বুঝতে পারি যে এই দৃশ্যটি হিট করতে 340,282,366,920,938,463,463,374,607,431,768,211,457 (যদি আমার গণিতটি ঠিক থাকে) সার্ভারগুলি লাগে তবে এটি কেবল একটি বিজোড় অন্তর্ভুক্তির মতো বলে মনে হয় এবং সম্পর্কটি কখনও ব্যাখ্যা করা হয় না।b=4Nlog16N>32

তদুপরি, আপনার যদি সংখ্যক সার্ভার থাকে তবে কী হবে? আমার যদি 16 টিরও কম সার্ভার থাকে তবে আমার কেবল টেবিলের মধ্যে একটি সারি থাকবে। তদ্ব্যতীত, কোনও পরিস্থিতিতেই সারিতে প্রতিটি প্রবেশের সাথে সংশ্লিষ্ট সার্ভার থাকবে না। এন্ট্রিগুলি খালি রেখে দেওয়া উচিত? আমি বুঝতে পেরেছি যে কয়েকটা সার্ভার দেওয়া হোক না কেন আমি পাতায় সার্ভারটি সন্ধান করতে সক্ষম হব, তবে দ্বিতীয় সারির জন্য একই প্রবণতা উত্থাপিত হবে - যদি আমার কোনও নোডআইড নেই এমন সার্ভার না থাকে তবে কী হবে? এমন যে আমি নবম অঙ্কের প্রতিটি সম্ভাব্য ক্রমশক্তি পূরণ করতে পারি? অবশেষে, আমার কাছে যদি বলুন, চারটি সার্ভার রয়েছে এবং আমার দুটি নোড রয়েছে যা ভাগ করে বলুন, 32 টির মধ্যে 20 টির কয়েকটি র্যান্ডম ফ্লুক দ্বারা ... আমি কি সেই নোডের জন্য টেবিলের 20 সারি পপুলেশন করব? আমার থেকেও অনেক বেশি সারি এমনকি পূরণের কাছাকাছি আসতে পারে?

আমি এখানে কী নিয়ে এসেছি, এর মাধ্যমে আমার যুক্তি দেখানোর চেষ্টা করছি:

  1. প্রিফিক্সটির সাথে যথাযথভাবে মেলে এমন নোড না থাকলে এন্ট্রিগুলি নাল মানতে সেট করতে হবে।
  2. নোডআইডসের ভাগ করা দৈর্ঘ্যের সাথে মেলে যথেষ্ট সারি উপস্থিত না হওয়া পর্যন্ত খালি সারি যুক্ত করা উচিত।
  3. যদি এবং কেবলমাত্র, পছন্দসই বার্তা আইডির জন্য কোনও মিল নেই, তবে নোডআইডের জন্য রাউটিং টেবিলের অনুসন্ধানে পিছনে পড়ুন যার শেয়ার্ডের দৈর্ঘ্য বর্তমান নোডআইডের চেয়ে বড় বা সমান এবং যার প্রবেশিকা গাণিতিকভাবে বর্তমানের চেয়ে বেশি নিকটে রয়েছে নোডআইডস পছন্দসই আইডিতে।
  4. # 3 তে যদি কোনও উপযুক্ত নোড পাওয়া না যায় তবে ধরে নিন এটিই গন্তব্য এবং বার্তাটি সরবরাহ করুন।

এই চারটি অনুমান কি ধরে আছে? আমি অন্য কোথাও এই সম্পর্কে তথ্য খুঁজছেন উচিত?


  1. পেস্ট্রি: স্ক্রিয়েবল, বিকেন্দ্রীভূত অবজেক্টের অবস্থান এবং এ.রউস্ট্রং এবং পি। ড্রসচেল (2001) দ্বারা বৃহত আকারের পিয়ার-টু-পিয়ার সিস্টেমের জন্য রাউটিং - এখানে ডাউনলোড করুন

আপনি বলছেন আপনার প্রোগ্রামিং খুব কম হয়েছে। নিবন্ধটি আসলে প্রোগ্রামিং (সরাসরি) সাথে নয় বরং দুটি নোডের মধ্যে সংক্ষিপ্ততম পাথ নেটওয়ার্কিংয়ের সাথে মোকাবিলা করে। সুতরাং পরবর্তী প্রশ্নটি: আপনি কী পরিমাণ নেটওয়ার্কিং ব্যাকগ্রাউন্ড পেয়েছেন? এটি নেটওয়ার্কগুলির উপর দিয়ে রাউটিং সম্পর্কে।

আমি আসলে বলেছিলাম আমি বিশ্বাস করি আমার কাছে যথেষ্ট প্রোগ্রামিং অভিজ্ঞতা আছে। এটি কম্পিউটার বিজ্ঞানের অভিজ্ঞতা যা আমি অনুভব করি যে আমি অভাব বোধ করছি। নির্বিশেষে, আমার কোনও নেটওয়ার্কিংয়ের অভিজ্ঞতা নেই to আমি নিশ্চিত নই যে এটি প্রাথমিকভাবে নেটওয়ার্কিং সম্পর্কে আপনার দৃser়তার সাথে আমি একমত, তবে আমি আপনার মতামত শুনতে আগ্রহী to

উত্তর:


5

পেস্ট্রি (এবং সমস্ত স্ট্রাকচারযুক্ত পি 2 পি নেটওয়ার্ক) এর একটি রাউটিং টেবিলের ধারণাটি দ্রুত রাউটিংয়ের গ্যারান্টি দেওয়ার সময় এর আকারটি হ্রাস করতে হবে।

পেস্ট্রি এর রাউটিং অ্যালগরিদম নিম্নলিখিত হিসাবে যায়:

AA

u

iuiu

(i+1)thi{0,,2b1}

A

uAuAuu1u1

u1A

log2bb2bb

প্রাকটিক্যাল পরিস্থিতিগুলি সাধারণত সেই হিসাবে সাধারণ হয় না। নেটওয়ার্কে অনেকগুলি নোড নেই এমন পরিস্থিতিতেও থাকতে পারে। এই কারণেই আমরা উপরের সি পদক্ষেপ অনুসরণ করি। - তবে, এই অ্যালগরিদমকে সঠিক করার জন্য আপনার গ্যারান্টিটি কী দরকার তা হ'ল প্রতিটি নোড এটির নিকটতম দুটি নোডের সাথে সংযুক্ত করা হবে (শনাক্তকারীদের শর্তে)। এটি আদেশযুক্ত নোডগুলির একটি রিং তৈরি করবে [উদাঃ 1-> 3-> 4-> 9-> 10-> 11-> 1]


আমি যা জিজ্ঞাসা করছিলাম তা পুরোপুরি নয়, তবে অ্যালগরিদমের একটি খুব ভাল ওভারভিউ আপনাকে যেভাবেই হোক একটি উত্সাহ এবং গ্রহণযোগ্য উত্তর দেয়। :)
ধান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.