UUID Version 6 Generator (Ordered Timestamp)

Gumawa ng timestamp-ordered UUIDs na optimized para sa pag-index ng database

Subukan ang mga halimbawang ito:

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

  1. Kalkulahin ang kasalukuyang timestamp (100ns na pagitan mula 1582-10-15)
  2. Ayusin muli ang mga bit ng timestamp para sa mas mahusay na pagsasaayos (pinakamahalagang bit muna)
  3. Kunin/tumaas ang 14-bit na clock sequence (para sa pagiging natatangi kung ang clock ay bumalik)
  4. Kunin ang 48-bit na node ID (karaniwang mula sa MAC address)
  5. Itakda ang mga version bits (0110) at variant bits (10)
  6. I-assemble bilang 32 hex digits na may hyphens: 8-4-4-4-12 na format

Mga Bentahe at Mga Pagsasaalang-alang

AdvantagesConsiderations
  • Lexicographically sortable
  • Naka-embed na oras ng paglikha
  • Mataas na performance na pagbuo
  • Distributed generation
  • Mga alalahanin sa privacy ng MAC address
  • Mga isyu sa pagsabay ng orasan
  • Mas predictable kaysa sa random UUIDs
  • Status ng draft specification

Istruktura ng UUID v6

BitsContent
0-47Mataas na 48 bit ng timestamp
48-51Bersyon (0110 para sa v6)
52-59Mababang 8 bit ng timestamp
60-63Mataas na 4 bit ng timestamp
64-65Variant (10 para sa RFC4122)
66-79Clock sequence (14 bits)
80-127Node ID (48 bits)

UUID v6 kumpara sa ibang mga bersyon

VersionBatay saGamit na kasoPrivacy
UUID v1Oras + MACMga ID na nakaayos ayon sa oras⚠️ Ipinapakita ang MAC
UUID v3Namespace + MD5Deterministic IDs✅ Pribado
UUID v4RandomSecure random IDs✅ Pribado
UUID v5Namespace + SHA-1Deterministic IDs✅ Pribado
UUID v6Oras (naayos muli)Mga ID na maayos⚠️ Ipinapakita ang MAC
UUID v7Oras + randomMga 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.

Resources