UUID అంటే ఏమిటి?
UUID (Universally Unique Identifier) అనేది 550e8400-e29b-41d4-a716-446655440000 వంటి 36-అక్షరాల స్ట్రింగ్గా రెండర్ చేయబడిన 128-బిట్ విలువ. ఫార్మాట్ మరియు వెర్షన్ సెమాంటిక్స్ v1 నుండి v5 కోసం RFC 4122 ద్వారా, మరియు కొత్త v6, v7, మరియు v8 వెర్షన్ల కోసం RFC 9562 ద్వారా నిర్వచించబడ్డాయి. ఈ టూల్ v4 (పూర్తిగా యాదృచ్ఛికం), v1 (టైమ్స్టాంప్ మరియు యాదృచ్ఛిక నోడ్ ID), మరియు v7 (Unix-మిల్లీసెకన్డ్ టైమ్స్టాంప్ ప్రిఫిక్స్ మరియు యాదృచ్ఛిక suffix, జనరేషన్ సమయం ప్రకారం sortable) జనరేట్ చేస్తుంది — అన్నీ మీ బ్రౌజర్లో, ప్లాట్ఫారమ్ Web Crypto API ఉపయోగించి. సర్వర్కు ఏ డేటా పంపబడదు.
UUID జనరేషన్ ఎలా పనిచేస్తుంది?
ప్రతి వెర్షన్ determinism, sortability, మరియు entropy వేర్వేరుగా trade off చేస్తుంది. టూల్ మీ ఎంపిక ఆధారంగా సరైన అల్గారిథమ్ ఎంచుకుంటుంది:
- v4 (యాదృచ్ఛికం) బ్రౌజర్
crypto.randomUUID()కాల్ చేస్తుంది, ఇది 6 fixed bits (వెర్షన్0100మరియు10వేరియంట్) సరైన స్థానాల్లో సెట్ చేయబడిన 122 bits క్రిప్టోగ్రాఫిక్ randomness తిరిగి ఇస్తుంది. Collisions astronomically unlikely — 50% probability తో ఒక్క duplicate కొట్టడానికి దాదాపు 2.71 quintillion v4 UUIDs జనరేట్ చేయాల్సి ఉంటుంది. - v1 (టైమ్స్టాంప్ + నోడ్) 60-bit Gregorian టైమ్స్టాంప్ (1582-10-15 నుండి 100-నానోసెకన్డ్ ticks) ను
time_low/time_mid/time_hi_and_versionలో pack చేస్తుంది, వెర్షన్ nibble ను0001కి సెట్ చేస్తుంది, variant bits తో 14-bit clock sequence ఎంచుకుంటుంది, మరియు multicast bit forced on తో యాదృచ్ఛిక 48-bit నోడ్ ID ఉపయోగిస్తుంది. - v7 (sortable టైమ్స్టాంప్), RFC 9562 §5.7 ప్రకారం, 48-bit big-endian Unix-మిల్లీసెకన్డ్ టైమ్స్టాంప్, ఆపై 4-bit వెర్షన్
0111, ఆపై 12 యాదృచ్ఛిక bits, ఆపై 2-bit వేరియంట్10, ఆపై 62 మరిన్ని యాదృచ్ఛిక bits లేఅవుట్ చేస్తుంది. టైమ్స్టాంప్ అత్యధిక-ముఖ్యమైన bits లో ఉన్నందున, v7 UUIDs జనరేషన్ క్రమంలో lexicographically sort అవుతాయి. - అన్ని randomness
crypto.getRandomValues()నుండి వస్తుంది, బ్రౌజర్ క్రిప్టోగ్రాఫిక్గా-సురక్షితమైన RNG. v1 మరియు v7 రెండూ intra-tick monotonic guard కలిగి ఉంటాయి, తద్వారా అదే clock tick లో రెండు consecutive calls ఇంకా రెండవది మొదటి కంటే పైన sort అవుతుంది. - ఫార్మాట్ పైప్లైన్ జనరేషన్ తర్వాత నడుస్తుంది. మీరు హైఫన్లు తొలగించవచ్చు, అపర్కేసుకు మారవచ్చు, విలువను braces లో (
{…}— Microsoft GUID కన్వెన్షన్) wrap చేయవచ్చు, లేదా రా 16 బైట్లను base64 గా రెండర్ చేయవచ్చు.
ఈ UUID జనరేటర్ ఎందుకు ఉపయోగించాలి?
- ఏదీ మీ బ్రౌజర్ వదిలి వెళ్ళదు. Web Crypto API స్థానికంగా నడుస్తుంది; పేజీ ప్రారంభ డాక్యుమెంట్ లోడ్ తర్వాత శూన్య నెట్వర్క్ రిక్వెస్ట్లు చేస్తుంది. DevTools తెరవండి, జనరేట్ చేయి క్లిక్ చేయండి, మరియు నెట్వర్క్ ప్యానెల్ నిశ్శబ్దంగా ఉంటుంది.
- RFC-సరైన అవుట్పుట్. v4 RFC 4122 §4.4 పాటిస్తుంది, v1 §4.2 మరియు §4.5 పాటిస్తుంది, మరియు v7 RFC 9562 §5.7 పాటిస్తుంది. వెర్షన్ nibble మరియు variant bits స్టాండర్డ్లు చెప్పిన చోట ఉంటాయి — ప్రతి UUID కానానికల్ వెర్షన్ regex కు అగెయిన్స్ట్ వాలిడేట్ అవుతుంది.
- Database keys కోసం sortable v7. Postgres, MySQL, లేదా SQL Server లో clustered primary key గా ఉపయోగించిన v7 UUID index లో insert అప్పెండ్-ఓన్లీగా ఉంచుతుంది — page splits లేవు, random I/O లేదు — అయినప్పటికీ globally unique. v4 దీన్ని చేయలేదు ఎందుకంటే దాని bits యాదృచ్ఛికం.
- రేట్ లిమిట్లు లేకుండా bulk జనరేషన్. ఒకేసారి 1, 10, 100, లేదా 1,000 UUIDs జనరేట్ చేయండి. కోటా లేదు మరియు సైన్అప్ లేదు — టూల్ మీ ట్యాబ్లో నడుస్తుంది, కాబట్టి పరిమితి మీ CPU, వెండర్ API tier కాదు.
UUIDs సాధారణ అప్లికేషన్లు ఏమిటి?
కేంద్ర అధికారంతో సమన్వయం చేయకుండా సిస్టమ్కు globally-unique identifier అవసరమైన చోటల్లా UUIDs కనిపిస్తాయి:
- Database primary keys. Auto-incrementing integers రో కౌంట్లు లీక్ చేసి sharding విచ్ఛిన్నం చేస్తాయి. UUIDs shards అంతటా stable, regions అంతటా merge కోసం సురక్షితం, మరియు (v7 తో) page splits లేకుండా B-tree inserts hot ఉంచుతాయి.
- Request correlation IDs. HTTP middleware ప్రతి incoming request కు v4 UUID జోడిస్తుంది, ప్రతి span లో లాగ్ చేస్తుంది, మరియు downstream ప్రొపగేట్ చేస్తుంది (తరచుగా
X-Request-Idheader గా). కస్టమర్ bug రిపోర్ట్ చేసినప్పుడు, సపోర్ట్ ఇంజినీర్ ID పేస్ట్ చేస్తాడు మరియు పూర్తి request trace కనిపిస్తుంది. - Idempotency keys. Payment APIs (Stripe, Razorpay, Cashfree)
Idempotency-Keyheader అంగీకరిస్తాయి, తద్వారా retried request కస్టమర్ను రెండుసార్లు చార్జ్ చేయదు. క్లయింట్-జనరేటెడ్ UUID ప్రతి logical operation కు key unique అని గ్యారంటీ ఇస్తుంది.
UUID ఉదాహరణ ఎలా ఉంటుంది?
Node.js లేదా ఆధునిక బ్రౌజర్లో, వన్-లైనర్ crypto.randomUUID() తాజా v4 UUID తిరిగి ఇస్తుంది — ఉదాహరణకు 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. request ID లేదా idempotency key కోసం దాన్ని ఉపయోగించండి. UUID clustered primary key అవుతున్న database column లో వెళ్ళినప్పుడు, బదులుగా v7 జనరేట్ చేయండి: ఒక మిల్లీసెకన్ వ్యవధిలో తయారైన రెండు v7 విలువలు, 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 మరియు 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4 వంటివి, జనరేషన్ క్రమంలో lexicographically sort అవుతాయి.
ఈ UUID జనరేటర్ ఒక్క పని చేస్తుంది: ఒక క్లిక్ను ఒకటి లేదా అనేక RFC-కంప్లయంట్ identifiers గా మార్చడం, మీకు అవసరమైన విధంగా ఫార్మాట్ చేయడం, మీ రిక్వెస్ట్ సర్వర్కు పంపకుండా. వెర్షన్ ఎంచుకోండి, సంఖ్య ఎంచుకోండి, ఫార్మాట్ ఎంచుకోండి — జనరేట్ చేయండి, కాపీ చేయండి, ముందుకు వెళ్ళండి.