UUID என்றால் என்ன?
UUID (Universally Unique Identifier) என்பது 550e8400-e29b-41d4-a716-446655440000 போன்ற 36-எழுத்து சரமாக காட்டப்படும் 128-bit மதிப்பு. வடிவம் மற்றும் version semantics v1 முதல் v5 வரை RFC 4122 ஆல், மற்றும் புதிய v6, v7 மற்றும் v8 versions க்கு RFC 9562 ஆல் வரையறுக்கப்பட்டுள்ளது. இந்த கருவி v4 (purely random), v1 (timestamp plus random node ID) மற்றும் v7 (Unix-millisecond timestamp prefix plus random suffix, generation time ஆல் sortable) உருவாக்குகிறது — எல்லாமே உங்கள் உலாவியில், platform இன் Web Crypto API பயன்படுத்தி. சேவையகத்திற்கு தரவு அனுப்பப்படவில்லை.
UUID generation எவ்வாறு வேலை செய்கிறது?
ஒவ்வொரு version உம் determinism, sortability மற்றும் entropy ஐ வேறுவிதமாக trade off செய்கிறது. கருவி உங்கள் தேர்வின் படி சரியான algorithm தேர்வு செய்கிறது:
- v4 (random) browser இன்
crypto.randomUUID()அழைக்கிறது, இது சரியான இடங்களில் 6 fixed bits (version0100மற்றும்10variant) அமைத்து 122 bits cryptographic randomness திரும்பப்படுகிறது. Collisions astronomically unlikely — 50% probability உடன் ஒரே ஒரு duplicate க்கு hit ஆக சுமார் 2.71 quintillion v4 UUIDs உருவாக்க வேண்டும். - v1 (timestamp + node) 60-bit Gregorian timestamp (1582-10-15 இலிருந்து 100-nanosecond ticks) ஐ
time_low/time_mid/time_hi_and_versionல் pack செய்கிறது, version nibble ஐ0001க்கு அமைக்கிறது, variant bits அமைத்த 14-bit clock sequence தேர்வு செய்கிறது, மற்றும் multicast bit forced on உடன் random 48-bit node ID பயன்படுத்துகிறது (RFC 4122 §4.5 hardware MAC இல்லாதபோது random node ID வெளிப்படையாக அனுமதிக்கிறது — multicast bit அதை non-MAC ஆக tag செய்கிறது). - v7 (sortable timestamp), RFC 9562 §5.7 படி, 48-bit big-endian Unix-millisecond timestamp, பின்னர் 4-bit version
0111, பின்னர் 12 random bits, பின்னர் 2-bit variant10, பின்னர் 62 மேலும் random bits அமைக்கிறது. Timestamp மிக முக்கியமான bits ல் இருப்பதால், v7 UUIDs generation order ல் lexicographically sort ஆகின்றன — வேறு எந்த UUID version உம் கூடுதல் encoding இல்லாமல் வழங்காத property. - அனைத்து randomness உம்
crypto.getRandomValues()இலிருந்து வருகிறது, browser இன் cryptographically-secure RNG. v1 மற்றும் v7 இரண்டும் intra-tick monotonic guard சேர்க்கின்றன, எனவே அதே clock tick க்குள் இரண்டு consecutive calls இன்னும் இரண்டாவதை முதல்வதற்கு மேல் sort செய்யும் — millisecond clock ஐ race செய்யும் bulk generation runs க்கு முக்கியம். - Format pipeline generation க்குப் பிறகு இயங்குகிறது. Hyphens நீக்கலாம், uppercase க்கு மாறலாம், braces (
{…}— Microsoft GUID convention) ல் value wrap செய்யலாம், அல்லது raw 16 bytes ஐ base64 ஆக (22-character வெளியீடு, padding இல்லாமல்) render செய்யலாம். Base64 mode மற்ற format options ஐ override செய்கிறது, ஏனென்றால் base64 சொந்த representation.
இந்த UUID generator ஏன் பயன்படுத்தவேண்டும்?
- உங்கள் உலாவியை விட்டு எதுவும் வெளியேறுவதில்லை. Web Crypto API உள்ளூரில் இயங்குகிறது; page initial document load க்குப் பிறகு பூஜ்ய நெட்வொர்க் requests செய்கிறது. DevTools திறந்து, Generate கிளிக் செய்து, Network panel silent ஆக இருப்பதை பாருங்கள்.
- RFC-correct வெளியீடு. v4 RFC 4122 §4.4 பின்பற்றுகிறது, v1 §4.2 மற்றும் §4.5 பின்பற்றுகிறது, மற்றும் v7 RFC 9562 §5.7 பின்பற்றுகிறது. Version nibble மற்றும் variant bits standards சொல்லும் இடங்களில் வைக்கப்படுகின்றன — ஒவ்வொரு UUID canonical version regex க்கு எதிராக validates ஆகுகிறது.
- Database keys க்கு sortable v7. Postgres, MySQL அல்லது SQL Server ல் clustered primary key ஆக பயன்படுத்தப்படும் v7 UUID index ல் inserts ஐ append-only வைக்கிறது — page splits இல்லை, random I/O இல்லை — ஆனால் இன்னும் globally unique. v4 bits random ஆக இருப்பதால் இதை செய்ய முடியாது.
- Rate limits இல்லாமல் bulk generation. ஒரே நேரத்தில் 1, 10, 100 அல்லது 1,000 UUIDs உருவாக்கவும். Quota இல்லை, signup இல்லை — கருவி உங்கள் தாவலில் இயங்குகிறது, எனவே cap உங்கள் CPU, vendor இன் API tier அல்ல.
UUIDs இன் பொதுவான பயன்பாடுகள் என்ன?
ஒரு central authority உடன் coordinate செய்யாமல் globally-unique identifier தேவைப்படும் எங்கும் UUIDs தோன்றுகின்றன:
- Database primary keys. Auto-incrementing integers row counts வெளிப்படுத்துகின்றன மற்றும் sharding உடைக்கின்றன. UUIDs shards முழுவதும் stable, regions முழுவதும் merge செய்ய பாதுகாப்பானவை, மற்றும் (v7 உடன்) B-tree inserts ஐ page splits இல்லாமல் hot வைக்கின்றன. ஒரு typical application client-side UUID உருவாக்கி, insert ல் அனுப்பி, key க்கு server ஐ round-trip செய்ய வேண்டியதில்லை.
- Request correlation IDs. HTTP middleware ஒவ்வொரு incoming request க்கும் v4 UUID attach செய்கிறது, ஒவ்வொரு span ல் பதிவிடுகிறது, மற்றும் downstream propagate செய்கிறது (பெரும்பாலும்
X-Request-Idheader ஆக). Customer ஒரு bug தெரிவிக்கும்போது, support engineer ID ஒட்டுகிறார், முழு request trace — services மற்றும் time zones முழுவதும் — ambiguity இல்லாமல் காட்டப்படுகிறது. - Idempotency keys. Payment APIs (Stripe, Adyen, Square) ஒரு retried request customer ஐ இருமுறை charge செய்யாமல்
Idempotency-Keyheader ஏற்கின்றன. Client-generated UUID logical operation க்கு key unique என்று உத்தரவாதம் தருகிறது, இது அந்த APIs தேவைப்படும் contract.
UUID எடுத்துக்காட்டு எப்படி இருக்கும்?
Node.js அல்லது நவீன browser ல், one-liner crypto.randomUUID() ஒரு புதிய v4 UUID திரும்பப்படுகிறது — எடுத்துக்காட்டாக 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Request ID அல்லது idempotency key க்கு அதை பயன்படுத்துங்கள். UUID clustered primary key ஆக இருக்கும் database column ல் போகும்போது, பதிலாக v7 உருவாக்குங்கள்: ஒரு millisecond இடைவெளியில் உருவாக்கப்பட்ட இரண்டு v7 values, 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 மற்றும் 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4 போல, generation order ல் lexicographically sort ஆகின்றன. Postgres இன் uuid type இரண்டு versions ஐயும் ஒரே மாதிரியாக store செய்கிறது — வித்தியாசம் index-write time ல் காட்டப்படுகிறது, v7 inserts B-tree வலதுபுறத்தில் append ஆகும்போது v4 inserts scatter ஆகி random I/O force செய்கின்றன.
இந்த UUID Generator ஒரே வேலை செய்கிறது: ஒரு click ஐ ஒன்று அல்லது பல RFC-compliant identifiers ஆக மாற்று, உங்களுக்கு தேவையான வடிவத்தில், உங்கள் request சேவையகத்திற்கு அனுப்பாமல். ஒரு version தேர்வு செய்யுங்கள், ஒரு count தேர்வு செய்யுங்கள், ஒரு format தேர்வு செய்யுங்கள் — generate செய்யுங்கள், நகலெடுங்கள், தொடர்ந்து செல்லுங்கள்.