← সব টুল

UUID জেনারেটর (v4 GUID)

ব্রাউজারে তাৎক্ষণিকভাবে র‍্যান্ডম v4 UUID (GUID) তৈরি করুন। জানুন ১২৮-বিট UUID কী, ভার্সনগুলোর পার্থক্য, সংঘর্ষের সম্ভাবনা ও কখন এগুলো ব্যবহার করবেন।

UUID আসলে কী

UUID, যার পূর্ণরূপ Universally Unique Identifier, একটি ১২৮-বিট মান যা প্রথমে কারো অনুমতি না নিয়েই কোনো কিছু চিহ্নিত করতে ব্যবহৃত হয়। আপনি এটাকে GUID, বা Globally Unique Identifier নামেও দেখতে পারেন, যা মূলত Windows ও .NET জগতের ভেতরে মাইক্রোসফট একই ধারণাকে দেওয়া নাম। এই দুটো শব্দ প্রায় প্রতিটি ক্ষেত্রেই একই ১২৮-বিট সংখ্যাকে বোঝায়, তাই কোনো সহকর্মী GUID বললে আর আপনি UUID বললে, আপনারা প্রায় সবসময় একই জিনিসের কথা বলছেন।

এই ১২৮ বিট সাধারণত ৩২টি হেক্সাডেসিমেল অঙ্ক হিসেবে লেখা হয়, হাইফেন দিয়ে পাঁচটা দলে ভাগ করা, একটি 8-4-4-4-12 প্যাটার্নে। একটি সাধারণ মান দেখতে এমন হয় 123e4567-e89b-12d3-a456-426614174000। হাইফেনগুলোর নিজের কোনো অর্থ নেই; সেগুলো শুধু এজন্য আছে যাতে একজন মানুষ জায়গা না হারিয়ে মানটা পড়তে পারে। প্রতিটি অক্ষর ০ থেকে f পর্যন্ত একটা হেক্স অঙ্ক, এই কারণেই একটি UUID দৈনন্দিন সংখ্যার চেয়ে ঘনীভূত মনে হয় যদিও এটা মূলত একটাই অনেক বড় পূর্ণসংখ্যা।

গাঢ় ইন্ডিগো পটভূমিতে একটি অনন্য ১২৮-বিট আইডেন্টিফায়ার প্রতিনিধিত্বকারী বিমূর্ত জ্বলজ্বলে হেক্সাডেসিমেল টোকেন
একটি UUID একটাই ১২৮-বিট সংখ্যা, পাঁচটি হাইফেনযুক্ত দলে ৩২টি হেক্স অঙ্ক হিসেবে লেখা।

সংস্করণ, আর কেন v4 জেতে

স্ট্যান্ডার্ডটিতে বেশ কয়েকটি সংস্করণ সংজ্ঞায়িত আছে, আর সেগুলো বিটগুলো কীভাবে ভরা হয় তাতে ভিন্ন। সংস্করণ ১ সময়-ভিত্তিক: এটা বর্তমান টাইমস্ট্যাম্প ও মেশিনের নেটওয়ার্ক MAC ঠিকানা একসাথে জোড়ে। এটা v1 মানগুলোকে তৈরির সময় অনুযায়ী সাজানো যায়, কিন্তু এটা কোথায় ও প্রায় কখন তৈরি হয়েছিল সে সম্পর্কেও তথ্য ফাঁস করে, যা সবসময় কাম্য নয়। সংস্করণ ৩ ও ৫ নাম-ভিত্তিক, একটি নেমস্পেস এবং একটি নাম হ্যাশ করে, তাই একই ইনপুট সবসময় একই আইডেন্টিফায়ার দেয়।

সংস্করণ ৪ সম্পূর্ণ ভিন্ন পথ নেয়। এটা প্রায় বিশুদ্ধ এলোমেলোতা। ১২৮ বিটের মধ্যে, ছয়টি সংস্করণ ও ভ্যারিয়েন্ট চিহ্নিত করতে সংরক্ষিত, বাকি ১২২ বিট এলোমেলো ডেটা দিয়ে ভরা হয়। কোনো টাইমস্ট্যাম্প নেই, MAC ঠিকানা নেই, নেমস্পেস নেই, শুধু নয়েজ। এই কারণেই বেশিরভাগ জেনারেটর, এটা সহ, ডিফল্ট হিসেবে v4 তৈরি করে। এটা ডিভাইস বা তৈরির মুহূর্ত সম্পর্কে কিছুই প্রকাশ করে না, আর যারা এটা তৈরি করছে তাদের মধ্যে কোনো সমন্বয়ের দরকার হয় না। এই পাতার টুলটি সম্পূর্ণভাবে আপনার ব্রাউজারে চলে, তাই এলোমেলো মানগুলো কখনো আপনার মেশিন ছেড়ে যায় না।

কতটা অসম্ভাব্য একটা কলিশন সত্যিই

যুক্তিসঙ্গত উদ্বেগ হলো দুটি এলোমেলো UUID কোনো একদিন একই হয়ে যেতে পারে। ১২২টি এলোমেলো বিট নিয়ে, সম্ভাব্য v4 মানের জায়গাটা হলো ২-এর ১২২ ঘাত, যা মোটামুটি ৩৬টি শূন্যসহ ৫.৩। এটাকে মানুষের ভাষায় বলতে গেলে, একটা একক ডুপ্লিকেটের সম্ভাবনা পরিমাপযোগ্য কিছুতে পৌঁছাতে আপনাকে দশকের পর দশক ধরে প্রতি সেকেন্ডে বিলিয়ন বিলিয়ন UUID তৈরি করতে হবে। স্ট্যান্ডার্ডটি নিজেই এই সংঘর্ষের সম্ভাবনাকে শূন্যের এত কাছাকাছি বর্ণনা করে যে তা উপেক্ষণীয়। বাস্তবে দলগুলো v4-কে অনন্য বলে ধরে নিয়ে এগিয়ে যায়, আর তারা ঠিকই করে।

বিশাল অন্ধকার জায়গায় অসংখ্য স্বতন্ত্র জ্বলজ্বলে চাবি ভাসছে, কোনো ডুপ্লিকেট নেই, সায়ান ও সোনালি রঙের ছোঁয়া
সম্ভাব্য v4 মানের পুল এত বিশাল যে সংঘর্ষ কার্যত অসম্ভব।

ডেভেলপাররা কোথায় এগুলোর দিকে হাত বাড়ায়

অনন্যতার জন্য কোনো কেন্দ্রীয় কর্তৃপক্ষের দরকার হয় না বলে, UUID সেসব জায়গায় জ্বলজ্বল করে যেখানে সমন্বয় ব্যয়বহুল বা অসম্ভব। এগুলো ডেটাবেজ প্রাইমারি কী-র জন্য স্বাভাবিক মানানসই, বিশেষত যখন বেশ কয়েকটি সেবা প্রতিটি সারি ঢোকায় আর আপনি পরবর্তী নম্বরের জন্য একটি ভাগাভাগি করা কাউন্টারকে জিজ্ঞাসা করার জন্য থামতে পারেন না। ডিস্ট্রিবিউটেড সিস্টেমে, পৃথিবীর দুই বিপরীত প্রান্তে থাকা দুটি নোড একই মুহূর্তে আইডেন্টিফায়ার তৈরি করতে পারে কখনো সংঘর্ষ ছাড়াই। এগুলো API ইডেমপোটেন্সি কী-কেও শক্তি জোগায়, যেখানে একজন ক্লায়েন্ট একটা অনুরোধের সাথে একটা UUID যুক্ত করে যাতে নেটওয়ার্ক পুনরায় চেষ্টা করলে সার্ভার নিরাপদে একটা ডুপ্লিকেট উপেক্ষা করতে পারে। সেশন টোকেন, ফাইলের নাম, ইভেন্ট আইডি, এবং মেসেজ কী সবই একই বৈশিষ্ট্যের উপর নির্ভর করে।

UUID বনাম অটো-ইনক্রিমেন্ট আইডি

ক্লাসিক বিকল্প হলো অটো-ইনক্রিমেন্ট পূর্ণসংখ্যা: ১, ২, ৩, এভাবে চলতে থাকে। ক্রমিক আইডি ছোট, স্বাভাবিকভাবে সাজানো যায়, ও পড়তে সহজ, কিন্তু এগুলোর প্রকৃত অসুবিধাও আছে। এগুলো কতগুলো রেকর্ড আছে তা প্রকাশ করে দেয় এবং বাইরের লোকদের পার্শ্ববর্তী মানগুলো অনুমান করতে দেয়, আর এগুলো প্রতিটা ইনসার্টকে একটা একক কাউন্টারের মধ্য দিয়ে যেতে বাধ্য করে, যা একটা ডেটাবেজ শার্ড করার বা অনেক উৎস থেকে ডেটা মার্জ করার সময় একটা বটলনেক হয়ে ওঠে। UUID এই সমস্যাগুলো সমাধান করে যেকোনো পক্ষকে স্বাধীনভাবে একটা কী তৈরি করতে দিয়ে এবং ভলিউম বা ক্রম সম্পর্কে কিছু প্রকাশ না করে। বিনিময়ে আসে আকার আর ইনডেক্সে একটু কম লোকালিটি। যেসব সিস্টেম স্কেল আউট করে বা যাদের নিজের অভ্যন্তরীণ বিষয় লুকাতে হয়, সেগুলোর জন্য এই বিনিময় সাধারণত করার মতো। আপনি আমাদের সব জেনারেটর সংগ্রহের মাধ্যমে এটা ও অনুরূপ ইউটিলিটি ঘুরে দেখতে পারেন, অথবা সম্পর্কিত বিল্ডিং ব্লকের জন্য ডেভেলপার টুল-এর বৃহত্তর সেট দেখতে পারেন।

প্রায়ই জিজ্ঞাসিত প্রশ্ন

GUID কি UUID-এর মতোই?

দৈনন্দিন উদ্দেশ্যে, হ্যাঁ। GUID হলো একই ১২৮-বিট আইডেন্টিফায়ারের জন্য মাইক্রোসফটের নাম। একমাত্র প্রকৃত পার্থক্য হলো কিছু Windows সিস্টেমে কাঁচা বাইনারি ফর্মে বাইট অর্ডারিং; স্ট্রিং ফর্মে এগুলো অভিন্ন এবং পরস্পর বিনিময়যোগ্য।

এই টুল কোন UUID সংস্করণ তৈরি করে?

এটা সংস্করণ ৪ তৈরি করে, এলোমেলো ভ্যারিয়েন্ট। এর ১২৮ বিটের মধ্যে, ১২২টি এলোমেলো ডেটা দিয়ে ভরা, যা প্রতিটি মানকে পুনরাবৃত্তি হওয়ার সম্ভাবনা অত্যন্ত কম করে দেয় এবং মানে এটা কোনো টাইমস্ট্যাম্প বা ডিভাইসের তথ্য বহন করে না।

দুটি UUID কি কখনো একই হতে পারে?

তত্ত্বগতভাবে সম্ভাবনা একেবারে শূন্য নয়, কিন্তু প্রায় ৫.৩ গুণিত ১০-এর ৩৬ ঘাত সম্ভাব্য v4 মান নিয়ে এটা এতই ছোট যে একে উপেক্ষণীয় ধরা হয়। একটা সংঘর্ষ সম্ভাব্য হওয়ার আগে আপনাকে অবিশ্বাস্য পরিমাণে সেগুলো তৈরি করতে হবে।

অটো-ইনক্রিমেন্ট নম্বরের বদলে UUID কেন ব্যবহার করব?

UUID যেকোনো সেবা একটা ভাগাভাগি করা কাউন্টার ছাড়াই স্বাধীনভাবে তৈরি করতে পারে, এগুলো রেকর্ডের সংখ্যা বা ক্রম প্রকাশ করে না, এবং এগুলো অনেক উৎস থেকে ডেটা মার্জ করা কষ্টহীন করে তোলে। অটো-ইনক্রিমেন্ট আইডি ছোট কিন্তু বড় স্কেলে বটলনেক হয়ে ওঠে এবং তথ্য ফাঁস করে।

UUID কি সার্ভারে তৈরি হয়?

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

হাইফেন প্যাটার্নের অর্থ কী?

8-4-4-4-12 গ্রুপিং শুধু পড়ার সুবিধার জন্য একটা প্রথা। হাইফেনগুলো কোনো ডেটা বহন করে না; এগুলো ৩২টি হেক্স অঙ্ককে অংশে ভাগ করে যাতে মানুষ মানগুলো সহজে স্ক্যান ও তুলনা করতে পারে।