UUID اصل میں ہے کیا
UUID، جو Universally Unique Identifier کا مخفف ہے، ایک 128-بٹ ویلیو ہے جو کسی چیز کو پہلے کسی سے اجازت لیے بغیر لیبل کرنے کے لیے استعمال ہوتی ہے۔ آپ اسے GUID یا Globally Unique Identifier کے نام سے بھی دیکھ سکتے ہیں، جو محض وہ نام ہے جو Microsoft نے Windows اور .NET دنیا میں اسی خیال کو دیا ہے۔ دونوں اصطلاحات تقریباً ہر اہم صورت میں ایک ہی 128-بٹ نمبر بیان کرتی ہیں، لہٰذا جب کوئی ساتھی کارکن GUID کہے اور آپ UUID کہیں، تو آپ تقریباً ہمیشہ ایک ہی چیز کی بات کر رہے ہوتے ہیں۔
وہ 128 بٹس عام طور پر 32 ہیکسا ڈیسیمل ہندسوں کی صورت میں لکھے جاتے ہیں جنہیں ہائفن کے ذریعے پانچ گروپوں میں 8-4-4-12 پیٹرن میں تقسیم کیا جاتا ہے۔ ایک عام ویلیو ایسی دکھتی ہے: 123e4567-e89b-12d3-a456-426614174000۔ ہائفنز کا اپنا کوئی معنی نہیں؛ یہ محض اس لیے موجود ہیں تاکہ انسان اپنی جگہ کھوئے بغیر ویلیو پڑھ سکے۔ ہر حرف 0 سے f تک کا ہیکس ہندسہ ہے، یہی وجہ ہے کہ UUID روزمرہ کے کسی نمبر سے زیادہ گھنا محسوس ہوتا ہے حالانکہ اندر سے یہ محض ایک بہت بڑا عدد ہے۔

ورژنز، اور v4 کیوں جیتتا ہے
معیار کئی ورژنز بیان کرتا ہے، اور وہ بٹس کیسے بھرے جاتے ہیں اس میں مختلف ہیں۔ ورژن 1 وقت پر مبنی ہے: یہ موجودہ ٹائم اسٹیمپ اور مشین کے نیٹ ورک MAC پتے کو ایک ساتھ بُنتا ہے۔ یہ v4 ویلیوز کو تخلیق کے وقت کے مطابق ترتیب دینے کے قابل بناتا ہے، مگر یہ اس بارے میں معلومات بھی لیک کرتا ہے کہ وہ کہاں اور تقریباً کب بنائی گئیں، جو ہمیشہ خوش آئند نہیں۔ ورژنز 3 اور 5 نام پر مبنی ہیں، ایک نیم اسپیس اور نام کو ہیش کرتے ہیں تاکہ ایک ہی ان پٹ ہمیشہ ایک ہی شناخت کنندہ دے۔
ورژن 4 بالکل مختلف راستہ اپناتا ہے۔ یہ تقریباً خالص بے ترتیبی ہے۔ 128 بٹس میں سے، چھ ورژن اور ویریئنٹ نشان زد کرنے کے لیے مخصوص ہیں، جس سے 122 بٹس بے ترتیب ڈیٹا سے بھرنے کے لیے باقی بچتے ہیں۔ کوئی ٹائم اسٹیمپ نہیں، کوئی MAC پتہ نہیں، کوئی نیم اسپیس نہیں، محض شور۔ یہی وجہ ہے کہ زیادہ تر جنریٹرز، بشمول یہ ایک، بطور ڈیفالٹ v4 پیدا کرتے ہیں۔ یہ ڈیوائس یا تخلیق کے لمحے کے بارے میں کچھ ظاہر نہیں کرتا، اور اسے بنانے والی جماعتوں کے درمیان کسی ہم آہنگی کی ضرورت نہیں۔ اس صفحے کا ٹول مکمل طور پر آپ کے براؤزر میں چلتا ہے، لہٰذا بے ترتیب ویلیوز آپ کی مشین کبھی نہیں چھوڑتیں۔
ٹکراؤ حقیقت میں کتنا ناممکن ہے
معقول تشویش یہ ہے کہ دو بے ترتیب UUIDs ایک دن ایک جیسے ہو سکتے ہیں۔ 122 بے ترتیب بٹس کے ساتھ، ممکنہ v4 ویلیوز کی جگہ 2 کی 122ویں طاقت ہے، جو تقریباً 5.3 کے بعد 36 صفر ہیں۔ اسے انسانی اصطلاح میں کہیں تو، آپ کو کسی قابلِ پیمائش چیز تک ایک واحد نقل کے امکانات بڑھنے سے پہلے کئی دہائیوں تک ہر سیکنڈ اربوں UUIDs بنانے پڑیں گے۔ خود معیار ٹکراؤ کے امکان کو صفر کے اتنے قریب بیان کرتا ہے کہ اسے قابلِ نظر انداز کہا جائے۔ عملی طور پر ٹیمیں v4 کو منفرد سمجھ کر آگے بڑھتی ہیں، اور وہ درست ہیں۔

ڈیولپرز انہیں کہاں استعمال کرتے ہیں
چونکہ منفرد ہونے کے لیے کسی مرکزی اختیار کی ضرورت نہیں، UUIDs ان جگہوں پر چمکتے ہیں جہاں ہم آہنگی مہنگی یا ناممکن ہو۔ یہ ڈیٹابیس پرائمری کیز کے لیے قدرتی طور پر موزوں ہیں، خاص طور پر جب کئی سروسز میں سے ہر ایک قطاریں داخل کرتی ہو اور آپ اگلے نمبر کے لیے کسی مشترکہ کاؤنٹر سے پوچھنے کے لیے رک نہ سکتے ہوں۔ تقسیم شدہ نظاموں میں، سیارے کے دو مخالف کناروں پر موجود دو نوڈز ایک ہی لمحے میں شناخت کنندگان تراش سکتے ہیں بغیر کبھی ٹکرائے۔ یہ API idempotency کیز کو بھی طاقت دیتے ہیں، جہاں ایک کلائنٹ ایک درخواست سے UUID جوڑتا ہے تاکہ سرور محفوظ طریقے سے نقل کو نظر انداز کر سکے اگر نیٹ ورک دوبارہ کوشش کرے۔ سیشن ٹوکنز، فائل کے نام، ایونٹ IDs، اور میسج کیز سب اسی خصوصیت پر انحصار کرتے ہیں۔
UUID بمقابلہ آٹو-انکریمنٹ IDs
کلاسیکی متبادل ہے آٹو-انکریمنٹ عدد: 1, 2, 3، وغیرہ۔ ترتیب وار IDs مختصر ہوتے ہیں، قدرتی طور پر ترتیب پاتے ہیں، اور پڑھنے میں آسان ہیں، مگر ان کی حقیقی خامیاں بھی ہیں۔ یہ ظاہر کر دیتے ہیں کہ کتنے ریکارڈز موجود ہیں اور بیرونی افراد کو ملحقہ ویلیوز کا اندازہ لگانے دیتے ہیں، اور یہ ہر داخلہ کو ایک واحد کاؤنٹر سے گزارنے پر مجبور کرتے ہیں، جو رکاوٹ بن جاتا ہے جب آپ ڈیٹابیس کو شارڈ کریں یا کئی ذرائع سے ڈیٹا ضم کریں۔ UUIDs یہ مسائل حل کرتے ہیں کیونکہ کوئی بھی جماعت آزادانہ طور پر ایک کلید بنا سکتی ہے اور حجم یا ترتیب کے بارے میں کچھ ظاہر نہیں کرتی۔ اس کا تبادلہ سائز اور انڈیکسز میں کچھ کم لوکالٹی ہے۔ ان نظاموں کے لیے جو پھیلتے ہیں یا جنہیں اپنے اندرونی حصے چھپانے ہوں، یہ تبادلہ عام طور پر قابل قدر ہے۔ آپ ہمارے تمام جنریٹرز کے مجموعے کے ذریعے یہ اور ملتے جلتے ٹولز دیکھ سکتے ہیں، یا متعلقہ بنیادی ٹولز کے لیے ڈیولپر ٹولز کا وسیع تر مجموعہ دیکھیں۔
اکثر پوچھے جانے والے سوالات
کیا GUID اور UUID ایک ہی ہیں؟
روزمرہ مقاصد کے لیے، جی ہاں۔ GUID ایک ہی 128-بٹ شناخت کنندے کے لیے Microsoft کا نام ہے۔ صرف حقیقی فرق کچھ Windows نظاموں پر خام بائنری صورت میں بائٹ کی ترتیب کا ہے؛ اسٹرنگ صورت میں یہ یکساں اور تبادلہ پذیر ہیں۔
یہ ٹول کون سا UUID ورژن بناتا ہے؟
یہ ورژن 4 بناتا ہے، بے ترتیب قسم۔ اس کے 128 بٹس میں سے، 122 بے ترتیب ڈیٹا سے بھرے جاتے ہیں، جس کی وجہ سے ہر ویلیو کے دہرائے جانے کا امکان انتہائی کم ہوتا ہے اور اس میں کوئی ٹائم اسٹیمپ یا ڈیوائس معلومات نہیں ہوتی۔
کیا دو UUIDs کبھی ایک جیسے ہو سکتے ہیں؟
نظریاتی طور پر امکان بالکل صفر نہیں، مگر تقریباً 5.3 ضرب 10 کی 36ویں طاقت ممکنہ v4 ویلیوز کے ساتھ یہ اتنا چھوٹا ہے کہ اسے قابلِ نظر انداز سمجھا جاتا ہے۔ ٹکراؤ کا امکان بننے سے پہلے آپ کو ان کی فلکیاتی تعداد بنانی پڑے گی۔
آٹو-انکریمنٹ نمبر کے بجائے UUID کیوں استعمال کریں؟
UUIDs کسی بھی سروس کے ذریعے مشترکہ کاؤنٹر کے بغیر آزادانہ طور پر بنائے جا سکتے ہیں، یہ ریکارڈ کی تعداد یا ترتیب ظاہر نہیں کرتے، اور کئی ذرائع سے ڈیٹا ضم کرنا آسان بناتے ہیں۔ آٹو-انکریمنٹ IDs چھوٹے ہوتے ہیں مگر بڑے پیمانے پر رکاوٹ بن جاتے ہیں اور معلومات لیک کرتے ہیں۔
کیا UUIDs کسی سرور پر بنائے جاتے ہیں؟
نہیں۔ یہ ٹول مکمل طور پر آپ کے براؤزر میں چلتا ہے، لہٰذا بے ترتیب ویلیوز مقامی طور پر پیدا کی جاتی ہیں اور کبھی کہیں نہیں بھیجی جاتیں۔ یہ اسے ان کیز اور ٹوکنز کے لیے استعمال کرنا محفوظ بناتا ہے جنہیں آپ نجی رکھنا چاہتے ہیں۔
ہائفن کے پیٹرن کا کیا مطلب ہے؟
8-4-4-4-12 گروپنگ محض پڑھنے میں آسانی کا ایک اصول ہے۔ ہائفنز کوئی ڈیٹا نہیں لے جاتے؛ یہ 32 ہیکس ہندسوں کو حصوں میں تقسیم کرتے ہیں تاکہ لوگ ویلیوز کو زیادہ آسانی سے دیکھ اور موازنہ کر سکیں۔
