UUID v7 உருவாக்கி – இது எவ்வாறு செயல்படுகிறது?
UUID v7 உருவாக்கி (Generator) என்பது ஒரு எளிய இணையப் பக்கமாகும். நீங்கள் ஒரு எண்ணிக்கையை (1 முதல் 100 வரை) உள்ளிட வேண்டும், சில காட்சி விருப்பங்களைத் தேர்ந்தெடுக்க வேண்டும். உடனடியாக, நேர வரிசையில் வரிசைப்படுத்தப்பட்ட, யூகிக்க முடியாத 36‑எழுத்து அடையாளங்காட்டிகளின் பட்டியலைப் பெறுவீர்கள். ஒவ்வொரு அடையாளங்காட்டியையும் தனித்தனியாகவோ அல்லது ஒட்டுமொத்தமாகவோ நகலெடுக்கலாம்.
இந்தக் கருவி உங்கள் உலாவியிலேயே இயங்குகிறது. உங்கள் தரவுகள் எதுவும் BroBroGo சேவையகத்திற்கு அனுப்பப்படுவதில்லை. வலுவான உலாவி சீரற்ற எண் உருவாக்கியைப் பயன்படுத்தி, UUID v7 அடையாளங்காட்டிகள் உடனடியாக உருவாக்கப்படுகின்றன.
UUID v7 மற்றும் அதன் தனித்துவமான அம்சங்கள்
UUID v7 இன் மிக முக்கியமான அம்சம் என்னவென்றால், இது ஒரு 48‑பிட் Unix மில்லிசெகண்ட் நேர முத்திரையை (timestamp) அடையாளங்காட்டியின் ஆரம்பத்தில் பொருத்துகிறது. அதைத் தொடர்ந்து சீரற்ற பிட்கள் வருகின்றன. இதன் விளைவாக, இந்த அடையாளங்காட்டிகள் உருவாக்கப்பட்ட நேரத்தின் அடிப்படையில் காலவரிசைப்படி வரிசைப்படுத்தப்பட முடியும். இது UUID v4 இன் சீரற்ற அமைப்பால் ஏற்படும் தரவுத்தள குறியீட்டு (index) துண்டாக்கல் பிரச்சினையைச் சரிசெய்கிறது.
அதே நேரத்தில், UUID v7 யூகிக்க முடியாத தன்மையைப் பராமரிக்கிறது. சீரற்ற பகுதி வலுவான குறியாக்கவியல் சீரற்ற தன்மையைப் பயன்படுத்துகிறது. எனவே, பாதுகாப்பு உணர்வுள்ள பொறியாளர்களுக்கு இது ஏற்றதாக உள்ளது.
UUID v7, ULID மற்றும் NanoID போன்ற சக வடிவங்களில் இருந்து வேறுபடுகிறது. இது 36‑எழுத்து சரமாகும், அதன் முதல் எழுத்துக்கள் நேர முத்திரையைக் குறிக்கும். இருப்பினும், அதே மில்லிசெகண்டில் உருவாக்கப்பட்ட அடையாளங்காட்டிகளுக்கு கடுமையான வரிசைமுறை உத்தரவாதம் அளிக்காது என்பதை நினைவில் கொள்ள வேண்டும்.
உள்ளீடுகள் மற்றும் வெளியீடுகள்
உள்ளீடுகள்:
- வடிவமைப்பு (Format): UUID v7 (வடிவமைப்பு தேர்வியில் இருந்து தேர்ந்தெடுக்கப்பட்டது).
- எண்ணிக்கை (Count): 1 முதல் 100 வரையிலான எண்.
- பெரிய எழுத்து (Uppercase): UUIDஐ பெரிய எழுத்தில் காட்ட ஒரு மாற்று விசை.
- இணைப்புக் குறிகள் (Hyphens): வெளியீட்டில் இணைப்புக் குறிகளைச் சேர்க்க அல்லது நீக்க ஒரு மாற்று விசை.
வெளியீடுகள்:
- உருவாக்கப்பட்ட UUID v7 அடையாளங்காட்டிகளின் பட்டியல்.
- ID எண்ணிக்கை: உருவாக்கப்பட்ட IDs இன் எண்ணிக்கை.
- "Ready." (செயலற்ற நிலை) நிலை.
- "Generated." (உருவாக்கப்பட்டது) நிலை.
- "Copied all!" (அனைத்தும் நகலெடுக்கப்பட்டன) நிலை.
- ஒரு தனிப்பட்ட IDஐ கிளிக் செய்தால், அந்த ID கிளிப்போர்டுக்கு நகலெடுக்கப்படுகிறது.
முக்கிய விதிகள்:
- எந்த விருப்பத்தை மாற்றினாலும் (எண்ணிக்கை, பெரிய எழுத்து, இணைப்புகள்) உடனடியாக அனைத்து IDs மீண்டும் உருவாக்கப்படும்.
- UUID v7 மற்றும் ULID ஆகியவை உருவாக்கிய நேரத்தைப் பொறுத்து வரிசைப்படுத்தக்கூடியவை, ஆனால் அதே மில்லிசெகண்டில் உருவாக்கப்பட்ட IDsக்கு கடுமையான வரிசை உத்தரவாதம் இல்லை.
- 1 முதல் 100 வரையிலான IDs மட்டுமே ஒரே நேரத்தில் உருவாக்கப்படும்.
UUID v7 கட்டமைப்பு மற்றும் நேர அடிப்படையிலான வரிசைமுறை
UUID v7 என்பது 128‑பிட் (16 பைட்) அடையாளங்காட்டியாகும். இது பின்வருமாறு கட்டமைக்கப்பட்டுள்ளது:
| பகுதி | பிட்கள் | விளக்கம் |
|---|---|---|
| நேர முத்திரை | 48 | Unix மில்லிசெகண்ட் நேரம் (1970‑01‑01 முதல்) |
| பதிப்பு | 4 | UUID பதிப்பு (v7 க்கு 7) |
| மாறுபாடு (variant) | 2 | RFC 4122 இன் படி 10xx |
| சீரற்ற பிட்கள் | 74 | குறியாக்கவியல் சீரற்ற எண்கள் |
மொத்தம் 128 பிட்கள், இது 36‑எழுத்து உரை பிரதிநிதித்துவமாக மாற்றப்படுகிறது. எடுத்துக்காட்டாக: 018f3f6e-1b2c-7a3d-8e5f-123456789abc. இங்கு முதல் 12 எழுத்துக்கள் (இணைப்புக் குறிகளைத் தவிர்த்து) நேர முத்திரையைக் குறிக்கின்றன.
நேர வரிசைமுறை எவ்வாறு செயல்படுகிறது?
நேர முத்திரை 48‑பிட் மதிப்பாகும், இது மில்லிசெகண்ட் துல்லியத்தில் Unix நேரத்தைக் குறிக்கிறது. இது அடையாளங்காட்டியின் மிக முக்கிய பிட்களாக (most significant bits) இருப்பதால், UUIDகளை எளிதாக காலவரிசைப்படி வரிசைப்படுத்தலாம். தரவுத்தளங்களில் B‑மர குறியீடுகள் (B‑tree indexes) இந்த வரிசைமுறையைப் பயன்படுத்தி செயல்திறனை மேம்படுத்துகின்றன.
இருப்பினும், ஒரே மில்லிசெகண்டில் உருவாக்கப்பட்ட UUIDகள் கண்டிப்பாக வரிசைப்படுத்தப்படுவதில்லை. சீரற்ற பகுதி வெவ்வேறு வரிசைகளை உருவாக்கலாம். எனவே, மிகத் துல்லியமான நேர வரிசை தேவைப்பட்டால் (எ.கா., நிகழ்வு மூலக் கண்காணிப்பு), கூடுதல் நேர முத்திரை அல்லது வரிசை எண்ணைச் சேர்க்க வேண்டும்.
UUID v7 vs UUID v4 – ஒப்பீடு
UUID v4 முற்றிலும் சீரற்ற அடையாளங்காட்டியாகும். இது 122 சீரற்ற பிட்களைக் கொண்டுள்ளது (மீதமுள்ள 6 பிட்கள் பதிப்பு மற்றும் மாறுபாட்டிற்கு). UUID v7 இல் 48 பிட் நேர முத்திரை மற்றும் 74 சீரற்ற பிட்கள் உள்ளன.
| பண்பு | UUID v4 | UUID v7 |
|---|---|---|
| நேர முத்திரை | இல்லை | 48‑பிட் Unix ms |
| சீரற்ற பிட்கள் | 122 | 74 |
| குறியீட்டு இடமாற்றம் | மோசமானது (random writes) | சிறப்பானது (sequential writes) |
| கால வரிசை | இல்லை | ஆம் (ஒரே ms இல் இல்லை) |
| முரண்பாடு நிகழ்தகவு | மிகக் குறைவு | மிகக் குறைவு (74-bit randomness) |
| யூகிக்க முடியுமா? | முடியாது (cryptographic) | முடியாது |
தரவுத்தள செயல்திறனில் ஏற்படும் மாற்றம்:
UUID v4 பயன்படுத்தும் போது, B‑மர குறியீட்டில் சீரற்ற எழுத்துக்கள் (random inserts) ஏற்படுகின்றன. இது பக்கப் பிளவுகளை (page splits) அதிகரித்து, செயல்திறனைக் குறைக்கிறது. UUID v7 உடன், புதிய வரிசைகள் பொதுவாக குறியீட்டின் முடிவில் சேர்க்கப்படுகின்றன, இது எழுதும் செயல்திறனை மேம்படுத்துகிறது. Postgres, MySQL, SQL Server போன்ற தரவுத்தளங்களில் இந்த வேறுபாடு குறிப்பிடத்தக்கது.
யாருக்கு இந்த கருவி தேவை?
விநியோகிக்கப்பட்ட அமைப்பு உருவாக்குநர்கள் (Developers): காலவரிசைப்படி வரிசைப்படுத்தக்கூடிய முதன்மை விசைகள் தேவைப்படும் பயன்பாடுகளில் UUID v7 முக்கியமானது. எடுத்துக்காட்டாக, நிகழ்வு மூலக் கண்காணிப்பு (event sourcing), தரவுத்தள பதிவுகள் (audit trails), செய்தியிடல் அமைப்புகள் (messaging systems) ஆகியவற்றில் இது பயனுள்ளது.
தரவுத்தள நிர்வாகிகள் (DBAs): UUID v4 இன் சீரற்ற அமைப்பால் ஏற்படும் குறியீட்டு துண்டாக்கலைத் தவிர்க்க விரும்புபவர்கள் UUID v7 ஐப் பயன்படுத்தலாம். இது B‑மர குறியீடுகளின் செயல்திறனை மேம்படுத்துகிறது.
பாதுகாப்பு உணர்வுள்ள பொறியாளர்கள்: UUID v7 இன் சீரற்ற பகுதி குறியாக்கவியல் வலிமையானது. எனவே, யூகிக்க முடியாத அடையாளங்காட்டிகள் தேவைப்படும் சூழ்நிலைகளில் (எ.கா., பயனர் அமர்வு டோக்கன்கள்) இதைப் பயன்படுத்தலாம்.
UUID v4 இலிருந்து மாற விரும்புபவர்கள்: பல தரவுத்தள அமைப்புகள் UUID v7 ஐ ஆதரிக்கத் தொடங்கியுள்ளன. இந்த உருவாக்கி புதிய வடிவமைப்பைச் சோதித்துப் பார்க்க உதவுகிறது.
அடிக்கடி கேட்கப்படும் கேள்விகள் (FAQ)
கேள்வி 1: UUID v7 மற்றும் ULID இடையே உள்ள வேறுபாடு என்ன?
பதில்: ULID 26‑எழுத்து base32 குறியீட்டைப் பயன்படுத்துகிறது, அதே நேரத்தில் UUID v7 36‑எழுத்து hex சரத்தைப் பயன்படுத்துகிறது. ULID இன் நேர முத்திரை 48‑பிட் ஆகும், ஆனால் அது மில்லிசெகண்ட் துல்லியத்துடன் மட்டுமே உள்ளது. UUID v7 இன் கட்டமைப்பு RFC 9562 இல் தரப்படுத்தப்பட்டுள்ளது, ULID தரப்படுத்தப்படவில்லை. இரண்டும் ஒரே மில்லிசெகண்டில் கடுமையான வரிசையை வழங்குவதில்லை.
கேள்வி 2: இந்த உருவாக்கி எங்கள் தரவுத்தளத்தில் பயன்படுத்தப்படும் UUIDகளை உருவாக்க முடியுமா? பாதுகாப்பானதா?
பதில்: ஆம், இந்த உருவாக்கி உங்கள் உலாவியிலேயே இயங்குகிறது. எந்தத் தரவும் சேவையகத்திற்கு அனுப்பப்படுவதில்லை. உங்கள் தரவுத்தளத்தில் நீங்கள் உருவாக்கிய UUIDகளைப் பயன்படுத்தலாம். இருப்பினும், உற்பத்தி சூழலில் ஒரு நிரல்பட உருவாக்கி (library) பயன்படுத்துவது பரிந்துரைக்கப்படுகிறது.
கேள்வி 3: UUID v7 இல் முரண்பாடுகள் (collisions) ஏற்படுமா?
பதில்: முரண்பாட்டுக்கான நிகழ்தகவு மிகக் குறைவு. 74‑பிட் சீரற்ற பகுதி 2^37 அடையாளங்காட்டிகளுக்குப் பிறகு 50% முரண்பாட்டு நிகழ்தகவைக் கொண்டுள்ளது. பொதுவான பயன்பாடுகளில் இது பாதுகாப்பானதாகக் கருதப்படுகிறது. ஆனால், நீங்கள் மிக உயர்ந்த முரண்பாட்டு எதிர்ப்பு தேவைப்பட்டால், UUID v4 (122 சீரற்ற பிட்கள்) சிறந்ததாக இருக்கலாம்.
கேள்வி 4: நேர முத்திரை பகுதியைப் பயன்படுத்தி UUID v7 இலிருந்து உருவாக்கும் நேரத்தை மீட்டெடுக்க முடியுமா?
பதில்: ஆம், முதல் 12 hex எழுத்துக்கள் (இணைப்புக் குறிகள் இல்லாமல்) Unix மில்லிசெகண்ட் நேரத்தைக் குறிக்கின்றன. இந்த மதிப்பை பைனரிக்கு மாற்றி, Unix சகாப்தத்தில் இருந்து மில்லிசெகண்டுகளாக மாற்றலாம். எடுத்துக்காட்டாக, 018f3f6e1b2c என்பது 48‑பிட் மதிப்பு.
கேள்வி 5: உயர் எழுத்து மற்றும் இணைப்புக் குறிகள் விருப்பங்கள் ஏன் உள்ளன?
பதில்: சில அமைப்புகள் பெரிய எழுத்துக்களை விரும்புகின்றன (எ.கா., கட்டுப்பாட்டு பேனல்கள்). இணைப்புக் குறிகள் தரநிலை UUID வடிவத்தின் ஒரு பகுதியாகும், ஆனால் சில தரவுத்தளங்களில் இணைப்புக் குறிகள் இல்லாமல் சேமிப்பது அதிக செயல்திறனை அளிக்கும். இந்த விருப்பங்கள் உங்கள் தேவைக்கேற்ப வடிவமைப்பை மாற்ற உதவுகின்றன.
கேள்வி 6: அதே மில்லிசெகண்டில் உருவாக்கப்பட்ட UUIDகள் ஏன் ஒரே வரிசையில் இல்லை?
பதில்: UUID v7 இன் சீரற்ற பகுதி நேர முத்திரைக்குப் பிறகு வருகிறது. ஒரே மில்லிசெகண்டில் பல UUIDகள் உருவாக்கப்பட்டால், அவற்றின் நேர முத்திரை ஒரே மாதிரியாக இருக்கும். எனவே, சீரற்ற பிட்களைப் பொறுத்து வரிசை மாறுபடலாம். கடுமையான வரிசை தேவைப்பட்டால், ஒரு தனி வரிசை எண்ணை (sequence number) சேர்க்க வேண்டும்.
இந்தக் கருவி எளிமையானது, ஆனால் அதன் பின்னணியில் உள்ள தொழில்நுட்பம் வலுவானது. UUID v7 ஐப் புரிந்துகொண்டு, உங்கள் திட்டங்களில் அதைச் சரியாகப் பயன்படுத்துங்கள்.