Ano ang UUID v6?
UUID bersyon 6 ay isang time-based 128-bit identifier (36-char string) na iminungkahi bilang pagpapabuti sa UUID v1. Binubuo ito ng:
- Naayos muli ang timestamp: 60-bit na timestamp mula sa pinaka-mahalaga hanggang sa pinaka-hindi mahalaga
- Clock sequence: 14-bit na counter para sa mga pagsasaayos ng orasan
- Node ID: 48-bit na halaga (karaniwang MAC address)
Halimbawa ng format: 1eb527d6-e927-6511-9a03-0242ac130003
Paano gumagana ang UUID v6
- Kalkulahin ang kasalukuyang timestamp (100ns na pagitan mula 1582-10-15)
- Ayusin muli ang mga bit ng timestamp para sa mas mahusay na pagsasaayos (pinakamahalagang bit muna)
- Kunin/tumaas ang 14-bit na clock sequence (para sa pagiging natatangi kung ang clock ay bumalik)
- Kunin ang 48-bit na node ID (karaniwang mula sa MAC address)
- Itakda ang mga version bits (0110) at variant bits (10)
- I-assemble bilang 32 hex digits na may hyphens: 8-4-4-4-12 na format
Mga Bentahe at Mga Pagsasaalang-alang
Advantages | Considerations |
---|---|
|
|
Istruktura ng UUID v6
Bits | Content |
---|---|
0-47 | Mataas na 48 bit ng timestamp |
48-51 | Bersyon (0110 para sa v6) |
52-59 | Mababang 8 bit ng timestamp |
60-63 | Mataas na 4 bit ng timestamp |
64-65 | Variant (10 para sa RFC4122) |
66-79 | Clock sequence (14 bits) |
80-127 | Node ID (48 bits) |
UUID v6 kumpara sa ibang mga bersyon
Version | Batay sa | Gamit na kaso | Privacy |
---|---|---|---|
UUID v1 | Oras + MAC | Mga ID na nakaayos ayon sa oras | ⚠️ Ipinapakita ang MAC |
UUID v3 | Namespace + MD5 | Deterministic IDs | ✅ Pribado |
UUID v4 | Random | Secure random IDs | ✅ Pribado |
UUID v5 | Namespace + SHA-1 | Deterministic IDs | ✅ Pribado |
UUID v6 | Oras (naayos muli) | Mga ID na maayos | ⚠️ Ipinapakita ang MAC |
UUID v7 | Oras + random | Mga ID na maayos | ✅ Pribado |
Karaniwang Mga Gamit na Kaso
- Mga susi sa database na maayos ayon sa oras: Para sa kronolohikal na pagsasaayos
- Distributed databases: Na may time-ordered indexing
- Mga tala ng log: Na may natural na kronolohikal na pagkakasunod
- Audit trails: Na may naka-embed na mga timestamp
- Message queuing: Para sa time-based na pagproseso
- Mga tala ng transaksyon: Na may kronolohikal na pagkakasunod
Mga Madalas Itanong
Ano ang pagkakaiba ng UUID v1 at v6?
Inaayos muli ng UUID v6 ang mga bit ng timestamp mula sa UUID v1 upang maging natural na maayos sa lexicographical order. Pareho ang nilalaman sa v1, nakaayos lang muli.
Opisyal na ba ang UUID v6?
Ang UUID v6 ay kasalukuyang draft specification sa iminungkahing dokumento ng RFC 4122bis. Hindi pa ito opisyal na RFC standard ngunit ipinatupad na sa maraming UUID libraries.
Maaari ko bang kunin ang oras ng paglikha mula sa UUID v6?
Oo. Ang bahagi ng timestamp ay maaaring kunin mula sa mga bit 0-59 at ma-convert pabalik sa datetime na halaga.
Ang UUIDs v6 ba ay maayos ayon sa oras ng paglikha?
Oo. Hindi tulad ng v1, inilalagay ng UUID v6 ang mga bit ng timestamp mula sa pinaka-mahalaga hanggang sa pinaka-hindi mahalaga, na nagpapahintulot ng direktang lexicographical (string) na paghahambing upang tumugma sa kronolohikal na pagkakasunod.
Ipinapakita ba ng UUID v6 ang aking MAC address?
Sa default, oo. Tulad ng UUID v1, karamihan sa mga implementasyon ay gumagamit ng MAC address para sa node ID. Ang mga implementasyong nakatuon sa privacy ay maaaring gumamit ng random node IDs bilang kapalit.