কম্পিউটার টিউটোরিয়াল

সি/সি++-এ বারkeley-এর অ্যালগরিদম


বারkeley-এর অ্যালগরিদম হল একটি অ্যালগরিদম যা বিতরণকৃত সিস্টেমে ক্লক সিঙ্ক্রোনাইজেশনের জন্য ব্যবহৃত হয়। এই অ্যালগরিদমটি उन ক্ষেত্রে ব্যবহৃত হয় যখন বিতরণকৃত নেটওয়ার্কের কিছু বা সমস্ত সিস্টেমের নিম্নলিখিত সমস্যাগুলো থাকে -

  • A. মেশিনের पास সঠিক সময় উৎস নেই।

  • B. নেটওয়ার্ক বা মেশিনের पास UTC সার্ভার নেই।

বিতরণকৃত সিস্টেম হল এমন একটি সিস্টেম যাতে একাধিক নোড থাকে যা ভৌতভাবে পৃথক কিন্তু একটি নেটওয়ার্ক ব্যবহার করে একসাথে লিঙ্ক করা থাকে।

সি/সি++-এ বারkeley-এর অ্যালগরিদম

বারkeley-এর অ্যালগরিদম

এই অ্যালগরিদমে, সিস্টেম একটি নোডকে মাস্টার/লিডার নোড হিসেবে বেছে নেয়। এটি সার্ভারের পুল নোড থেকে করা হয়।

অ্যালগরিদমটি হল -

  • সার্ভারে একটি নির্বাচন প্রক্রিয়ার মাধ্যমে মাস্টার নোড নির্বাচন করা হয়।

  • লিডার তারপর ফলোয়ারদের পোল করে যারা তাদের সময় প্রদান করে ক্রিস্টিয়ানের অ্যালগরिदম-এর মতো একটি পদ্ধতিতে, এটি সময়-सময়ে করা হয়।

  • লিডার তারপর আপেক্ষিক সময় গণনা করে যা অন্যান্য নোডগুলোর পরিবর্তন বা সামঞ্জস্য করতে হবে গ্লোবাল ক্লক টাইমের সাথে সিঙ্ক্রোনাইজ করার জন্য যা লিডার নোডকে প্রদত্ত সময়গুলোর গড়।

বারkeley অ্যালগরিদম ব্যবহার করে ক্লক সিঙ্ক্রোনাইজেশন করার ধাপগুলো সংক্ষেপে,

তাদের ক্লক টাইমিংসহ বিতরণকৃত সিস্টেমের নোডগুলো -

N1 -> 14:00 (মাস্টার নোড) N2 -> 13: 46 N3 -> 14: 15

ধাপ ১ - লিডার নির্বাচিত, সিস্টেমে নোড N1 মাস্টার।

ধাপ ২ - লিডার সব নোড থেকে সময় অনুরোধ করে।

N1 -> সময়: 14:00 N2 -> সময়: 13:46 N3 -> সময়: 14:20

ধাপ ৩ - লিডার সময়গুলোর গড় বের করে এবং সংশোধিত সময় নোডগুলোর কাছে ফেরত পাঠায়।

N1 -> সংশোধিত সময় 14:02 (+2) N2 -> সংশোধিত সময় 14:02 (+16) N3 -> সংশোধিত সময় 14:02 (-18)

এটি দেখায় কিভাবে বারkeley-এর অ্যালগরিদম ব্যবহার করে বিতরণকৃত সিস্টেমের নোডগুলোর সিঙ্ক্রোনাইজেশন করা হয়।


  1. C++ তে বেলম্যান-ফোর্ড অ্যালগরিদম (Bellman Ford Algorithm)

  2. লিনাক্সে C++-এর জন্য সেরা IDE কী?

  3. লিনাক্সে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)

  4. উইন্ডোজে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)