UUID वास्तवमा के हो
UUID, जसको पूरा नाम Universally Unique Identifier हो, यो कुनै पनि कुरालाई पहिले कसैको अनुमति नलिईकनै लेबल गर्न प्रयोग हुने १२८-बिट मान हो। तपाईंले यसलाई GUID, वा Globally Unique Identifier पनि भनिएको देख्न सक्नुहुन्छ, जुन Windows र .NET संसारमा Microsoft ले उही विचारलाई दिएको नाम हो। यी दुई शब्दहरूले लगभग सबै महत्त्वपूर्ण अवस्थामा उही १२८-बिट संख्यालाई वर्णन गर्छन्, त्यसैले जब कुनै सहकर्मीले GUID भन्छ र तपाईंले UUID भन्नुहुन्छ, तपाईंहरू लगभग सधैं ठ्याक्कै उही कुराको बारेमा कुरा गर्दै हुनुहुन्छ।
ती १२८ बिटहरू सामान्यतया हाइफनले पाँच समूहमा विभाजित ३२ हेक्साडेसिमल अंकको रूपमा लेखिन्छन्, ८-४-४-४-१२ ढाँचामा। एउटा सामान्य मान यस्तो देखिन्छ 123e4567-e89b-12d3-a456-426614174000। हाइफनहरूको आफ्नै कुनै अर्थ हुँदैन; तिनी केवल मानिसले मान गुमाएर नपढोस् भनेर मात्र राखिएका हुन्। हरेक अक्षर 0 देखि f सम्मको हेक्स अंक हो, त्यसैले UUID दैनिक प्रयोगको संख्याभन्दा घना महसुस हुन्छ यद्यपि भित्रभित्रै यो केवल एउटा धेरै ठूलो पूर्णांक मात्र हो।

संस्करणहरू, र किन v4 जित्छ
मापदण्डले कयौं संस्करण परिभाषित गर्छ, र तिनीहरू बिटहरू कसरी भरिन्छन् भन्नेमा फरक हुन्छन्। संस्करण १ समय-आधारित छ: यसले हालको टाइमस्ट्याम्प र मेसिनको नेटवर्क MAC ठेगानालाई बुनेर जोड्छ। यसले v1 मानहरूलाई सिर्जना समयअनुसार क्रमबद्ध गर्न मिल्ने बनाउँछ, तर यसले तिनी कहाँ र लगभग कहिले बनाइए भन्ने जानकारी पनि चुहाउँछ, जुन सधैं मन पर्ने कुरा हुँदैन। संस्करण ३ र ५ नाम-आधारित छन्, नेमस्पेस र नामलाई ह्यास गरेर ताकि उही इनपुटले सधैं उही पहिचायक दिन्छ।
संस्करण ४ ले पूर्ण रूपमा फरक बाटो अपनाउँछ। यो लगभग शुद्ध अनियमितता हो। १२८ बिटमध्ये, छवटा संस्करण र भेरियन्ट चिन्ह लगाउनका लागि आरक्षित छन्, बाँकी १२२ बिटहरू अनियमित डेटाले भरिन्छन्। कुनै टाइमस्ट्याम्प छैन, कुनै MAC ठेगाना छैन, कुनै नेमस्पेस छैन, केवल कोलाहल मात्र। यही नै कारण हो किन यो लगायत धेरैजसो जेनेरेटरहरूले डिफल्ट रूपमा v4 उत्पादन गर्छन्। यसले उपकरण वा सिर्जनाको क्षणको बारेमा केही पनि उजागर गर्दैन, र यसलाई बनाउने पक्षहरूबीच कुनै समन्वय चाहिँदैन। यो पेजको टूल पूर्ण रूपमा तपाईंको ब्राउजरमा चल्छ, त्यसैले अनियमित मानहरू कहिल्यै तपाईंको मेसिनबाट बाहिर जाँदैनन्।
टक्कर कति असम्भव छ भन्ने वास्तविकता
सामान्य चिन्ता यो हो कि दुई अनियमित UUID हरू कुनै दिन उस्तै हुन सक्छन्। १२२ अनियमित बिटहरूसँग, सम्भावित v4 मानहरूको स्थान 2 को 122 पावर हो, जुन लगभग 5.3 पछि 36 सुन्ना हो। यसलाई मानवीय शब्दमा भन्नुपर्दा, एउटा मात्र नक्कल हुने सम्भावना नाप्न सकिने स्तरसम्म पुग्नु अघि तपाईंले धेरै दशकसम्म हरेक सेकेन्ड अर्बौं UUID बनाउनुपर्थ्यो। मापदण्ड आफैंले टक्करको सम्भावनालाई शून्यको यति नजिक भन्छ कि यसलाई नगण्य मानिन्छ। व्यवहारमा टिमहरूले v4 लाई अनौठो मानेर अगाडि बढ्छन्, र तिनीहरू सही हुन्।

विकासकर्ताहरूले यिनलाई कहाँ प्रयोग गर्छन्
किनभने अनौठोपनलाई कुनै केन्द्रीय अख्तियार चाहिँदैन, UUID हरू समन्वय महँगो वा असम्भव भएका ठाउँमा उत्कृष्ट देखिन्छन्। तिनी डेटाबेस प्राइमरी कीहरूका लागि प्राकृतिक रूपमा उपयुक्त छन्, विशेष गरी जब कयौं सेवाहरूले प्रत्येकले पङ्क्तिहरू सम्मिलित गर्छन् र तपाईं अर्को नम्बरका लागि साझा काउन्टरलाई सोध्न रोकिन सक्नुहुन्न। वितरित प्रणालीहरूमा, ग्रहका विपरीत छेउका दुई नोडहरूले उही क्षणमा पहिचायकहरू बनाउन सक्छन् कहिल्यै नठोकिकन। तिनी API इडेमपोटेन्सी कीहरूलाई पनि सक्रिय पार्छन्, जहाँ ग्राहकले अनुरोधमा UUID जोड्छ ताकि नेटवर्कले पुनःप्रयास गरे नक्कल भएको सर्भरले सुरक्षित रूपमा बेवास्ता गर्न सकोस्। सेसन टोकन, फाइल नाम, इभेन्ट ID, र सन्देश कीहरू सबैले यही गुणमा भर पर्छन्।
UUID बनाम अटो-इन्क्रिमेन्ट ID
क्लासिक विकल्प हो अटो-इन्क्रिमेन्ट पूर्णांक: १, २, ३, र यसै गरी अगाडि। अनुक्रमिक IDहरू सानो, स्वाभाविक रूपमा क्रमबद्ध, र पढ्न सजिलो हुन्छन्, तर तिनका वास्तविक कमजोरीहरू छन्। तिनले कति रेकर्ड अस्तित्वमा छन् भनी उजागर गर्छन् र बाहिरियाहरूलाई छिमेकी मानहरू अनुमान गर्न दिन्छन्, र तिनले हरेक इन्सर्टलाई एउटै काउन्टरबाट गुजार्न बाध्य पार्छन्, जुन तपाईंले डेटाबेस शार्ड गर्दा वा धेरै स्रोतबाट डेटा मर्ज गर्दा अवरोध बन्छ। UUID हरूले यी समस्याहरू समाधान गर्छन्, कुनै पनि पक्षलाई स्वतन्त्र रूपमा एउटा कुञ्जी बनाउन दिएर र मात्रा वा क्रमको बारेमा केही पनि नबताएर। मूल्य हो आकार र इन्डेक्सहरूमा अलि कम स्थानीयता। बाहिर स्केल हुने वा आफ्ना आन्तरिक कुराहरू लुकाउनुपर्ने प्रणालीहरूका लागि, त्यो मूल्य प्रायः तिर्नु लायक हुन्छ। तपाईं यो र यस्तै अन्य उपयोगिताहरू हाम्रो सबै जेनेरेटरहरू संग्रहमार्फत अन्वेषण गर्न सक्नुहुन्छ, वा सम्बन्धित निर्माण खण्डहरूका लागि डेभलपर टूलहरूको व्यापक सेट ब्राउज गर्न सक्नुहुन्छ।
प्रायः सोधिने प्रश्नहरू
के GUID र UUID उस्तै हो?
दैनिक प्रयोजनका लागि, हो। GUID उही १२८-बिट पहिचायकलाई Microsoft ले दिएको नाम हो। एकमात्र वास्तविक फरक भनेको केही Windows प्रणालीहरूमा कच्चा बाइनरी रूपमा बाइट क्रम हो; स्ट्रिङ रूपमा तिनी एकदमै उस्तै र आपसमा साट्न मिल्ने हुन्छन्।
यो टूलले कुन UUID संस्करण बनाउँछ?
यसले संस्करण ४, अनियमित भेरियन्ट बनाउँछ। यसका १२८ बिटमध्ये, १२२ अनियमित डेटाले भरिएका हुन्छन्, जसले हरेक मान दोहोरिने सम्भावना अत्यन्त कम बनाउँछ र यसमा कुनै टाइमस्ट्याम्प वा उपकरण जानकारी नरहेको सुनिश्चित गर्छ।
के दुई UUID कहिल्यै उस्तै हुन सक्छन्?
सिद्धान्तमा सम्भावना ठ्याक्कै शून्य होइन, तर लगभग 5.3 गुणा 10 को 36 पावर सम्भावित v4 मानहरूसँग यो यति सानो छ कि यसलाई नगण्य मानिन्छ। टक्कर हुने सम्भावना बढाउनका लागि तपाईंले खगोलीय संख्यामा तिनलाई बनाउनुपर्थ्यो।
अटो-इन्क्रिमेन्ट नम्बरको सट्टा UUID किन प्रयोग गर्ने?
UUID हरू साझा काउन्टर बिना कुनै पनि सेवाले स्वतन्त्र रूपमा बनाउन सक्छ, तिनले रेकर्ड गणना वा क्रम उजागर गर्दैनन्, र तिनले धेरै स्रोतबाट डेटा मर्ज गर्न सजिलो बनाउँछन्। अटो-इन्क्रिमेन्ट IDहरू साना हुन्छन् तर स्केलमा अवरोध बन्छन् र जानकारी चुहाउँछन्।
के UUID हरू सर्भरमा बनाइन्छन्?
होइन। यो टूल पूर्ण रूपमा तपाईंको ब्राउजरमा चल्छ, त्यसैले अनियमित मानहरू स्थानीय रूपमा उत्पादन हुन्छन् र कहिल्यै कतै पठाइँदैनन्। यसले तपाईंले निजी राख्न चाहनुभएको कुञ्जी र टोकनहरूका लागि यसलाई प्रयोग गर्न सुरक्षित बनाउँछ।
हाइफन ढाँचाको अर्थ के हो?
8-4-4-4-12 समूहीकरण केवल पठनीयताको परम्परा हो। हाइफनहरूमा कुनै डेटा हुँदैन; तिनले 32 हेक्स अंकलाई खण्डमा विभाजित गर्छन् ताकि मानिसहरूले मानहरू सजिलै हेर्न र तुलना गर्न सकून्।
