Skip to Content
সিস্টেম ডিজাইনে স্বাগতম 🎉

হ্যাশ স্পেস এবং হ্যাশ রিং (Hash space and hash ring)

এখন আমরা কনসিস্টেন্ট হ্যাশিংয়ের সংজ্ঞা বুঝতে পেরেছি, আসুন এটি কীভাবে কাজ করে তা জানি। ধরে নিন হ্যাশ ফাংশন f হিসাবে SHA-1 ব্যবহার করা হচ্ছে, এবং হ্যাশ ফাংশনের আউটপুট রেঞ্জ হলো: x0, x1, x2, x3, …, xn। ক্রিপ্টোগ্রাফিতে, SHA-1 এর হ্যাশ স্পেস 0 থেকে 2^160 - 1 পর্যন্ত যায়। এর অর্থ হলো x0 corresponds to 0, xn corresponds to 2^160 – 1, এবং মাঝখানের সমস্ত হ্যাশ ভ্যালু 0 এবং 2^160 - 1 এর মধ্যে পড়ে। চিত্র ৩ হ্যাশ স্পেস দেখায়।

[চিত্র ৩-এর বর্ণনা: ছবিটি ডেটা প্রসেসিং বা রূপান্তর চিত্রিত করে এমন একটি সরলীকৃত ডায়াগ্রাম উপস্থাপন করে। একটি লম্বা, আয়তক্ষেত্রাকার বাক্স, যা একটি সিস্টেম বা প্রসেস নির্দেশ করে, অনুভূমিকভাবে দেখানো হয়েছে। বাম দিকে, ‘x0’ লেবেলযুক্ত একটি তীর চিহ্ন বাক্সের উপরের দিকে নিচের দিকে নির্দেশ করে, যা সিস্টেমে প্রবেশ করা ‘x0’ লেবেলযুক্ত ইনপুট ডেটা নির্দেশ করে। ডান দিকে, ‘xn’ লেবেলযুক্ত একটি তীর চিহ্ন উপর থেকে বাক্সের উপরের দিকে নিচের দিকে নির্দেশ করে, যা সিস্টেম থেকে বের হওয়া ‘xn’ লেবেলযুক্ত আউটপুট ডেটা নির্দেশ করে। বাক্সটিতে ‘Viewer does not support full SVG 1.1’ টেক্সট রয়েছে, যা নির্দেশ করে যে মূল ডায়াগ্রামটি সম্ভবত একটি SVG ইমেজ ছিল যা বর্তমান ভিউয়ার দ্বারা সম্পূর্ণরূপে রেন্ডার করা যাচ্ছে না। সামগ্রিক কাঠামোটি একটি রৈখিক রূপান্তর নির্দেশ করে যেখানে ইনপুট ‘x0’ সিস্টেমের মধ্যে প্রসেস হয়ে আউটপুট ‘xn’ তৈরি করে। বাক্সের ভেতরে প্রসেসিংয়ের কোনো অভ্যন্তরীণ বিবরণ দৃশ্যমান নয়।] চিত্র ৩

দুই প্রান্তকে একত্রিত করে, আমরা চিত্র ৪-এর মতো একটি হ্যাশ রিং (hash ring) পাই:

[চিত্র ৪-এর বর্ণনা: ছবিটি একটি সরলীকৃত ডায়াগ্রাম উপস্থাপন করে যা একটি সার্কুলার বাফার বা রিং বাফার ডেটা স্ট্রাকচার চিত্রিত করে। বৃত্তটি বাফারটিকে চিত্রিত করে, একটি নির্দিষ্ট-সাইজের মেমরি অঞ্চল যা ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। বৃত্তের ভেতরে একটি ছোট উল্লম্ব রেখার অংশ বর্তমান রাইট পয়েন্টার নির্দেশ করে, যা নির্দেশ করে যে পরবর্তী ডেটা উপাদানটি কোথায় লেখা হবে। এই উল্লম্ব রেখার উপরের দিকে দুটি তীর চিহ্ন নির্দেশ করে, যাদের লেবেল ‘x0’ এবং ‘xn’। ‘x0’ সম্ভবত বাফারের শুরুর ঠিকানা বা ইনডেক্স নির্দেশ করে, যখন ‘xn’ বর্তমান রাইট ইনডেক্স নির্দেশ করে, দেখায় যে পরবর্তী ডেটা উপাদানটি কোথায় লেখা হবে। ডেটা ‘xn’-এ বাফারে প্রবেশ করে, এবং বাফার পূর্ণ হওয়ার সাথে সাথে, ‘xn’ বৃত্তের চারপাশে ঘুরতে থাকে। একবার ‘xn’ শেষে পৌঁছালে, এটি শুরুর দিকে ফিরে আসে (wrap around), বাফার পূর্ণ থাকলে পুরানো ডেটা ওভাররাইট করে। একটি রিড পয়েন্টারের অনুপস্থিতি একটি সরলীকৃত উপস্থাপনা নির্দেশ করে যা কেবল রাইট অপারেশনের ওপর ফোকাস করে। নিচে ‘Viewer does not support full SVG 1.1’ টেক্সটটি একটি ব্রাউজার-সম্পর্কিত বার্তা যা ইমেজ রেন্ডারিংয়ের সীমাবদ্ধতা নির্দেশ করে এবং ডেটা স্ট্রাকচারের অংশ নয়।] চিত্র ৪