Generatore UUID Versione 6 (Timestamp Ordinato)

Genera UUID ordinati per timestamp ottimizzati per l'indicizzazione del database

Prova questi esempi:

Cos'è UUID v6?

Versione UUID 6 è un identificatore a 128 bit basato sul tempo (stringa di 36 caratteri) proposto come miglioramento rispetto a UUID v1. Consiste in:

  • Timestamp riordinato: timestamp a 60 bit dal più significativo al meno significativo
  • Sequenza di clock: contatore a 14 bit per regolazioni dell'orologio
  • ID nodo: valore a 48 bit (tipicamente indirizzo MAC)

Esempio di formato: 1eb527d6-e927-6511-9a03-0242ac130003

Come funziona UUID v6

  1. Calcola il timestamp corrente (intervalli di 100ns dal 15-10-1582)
  2. Riordina i bit del timestamp per un ordinamento migliore (bit più significativi per primi)
  3. Ottieni/incrementa la sequenza di clock a 14 bit (per unicità se l'orologio si sposta indietro)
  4. Ottieni ID nodo a 48 bit (di solito dall'indirizzo MAC)
  5. Imposta i bit di versione (0110) e i bit di variante (10)
  6. Assembla come 32 cifre esadecimali con trattini: formato 8-4-4-4-12

Vantaggi e considerazioni

AdvantagesConsiderations
  • Ordinabile lessicograficamente
  • Tempo di creazione incorporato
  • Generazione ad alte prestazioni
  • Generazione distribuita
  • Preoccupazioni sulla privacy dell'indirizzo MAC
  • Problemi di sincronizzazione dell'orologio
  • Più prevedibile rispetto agli UUID casuali
  • Stato della bozza della specifica

Struttura UUID v6

BitsContent
0-47Bit alti 48 del timestamp
48-51Versione (0110 per v6)
52-59Bit bassi 8 del timestamp
60-63Bit alti 4 del timestamp
64-65Variante (10 per RFC4122)
66-79Sequenza di clock (14 bit)
80-127ID nodo (48 bit)

UUID v6 vs. altre versioni

VersionBasato suCaso d'usoPrivacy
UUID v1Tempo + MACID ordinati per tempo⚠️ Rivela MAC
UUID v3Namespace + MD5ID deterministici✅ Privato
UUID v4RandomID casuali sicuri✅ Privato
UUID v5Namespace + SHA-1ID deterministici✅ Privato
UUID v6Tempo (riordinato)ID ordinabili⚠️ Rivela MAC
UUID v7Tempo + casualeID ordinabili✅ Privato

Casi d'uso comuni

  • Chiavi di database ordinabili per tempo: Per ordinamento cronologico
  • Database distribuiti: Con indicizzazione ordinata per tempo
  • Voci di log: Con ordine cronologico naturale
  • Tracce di audit: Con timestamp incorporati
  • Accodamento messaggi: Per elaborazione basata sul tempo
  • Registri delle transazioni: Con ordinamento cronologico

Domande frequenti

Qual è la differenza tra UUID v1 e v6?

UUID v6 riordina i bit del timestamp da UUID v1 per renderlo naturalmente ordinabile in ordine lessicografico. Il contenuto è identico a v1, solo riordinato.

UUID v6 è uno standard ufficiale?

UUID v6 è attualmente una bozza di specifica nel documento proposto RFC 4122bis. Non è ancora uno standard RFC ufficiale ma è implementato in molte librerie UUID.

Posso estrarre il tempo di creazione da UUID v6?

Sì. La componente timestamp può essere estratta dai bit 0-59 e convertita nuovamente in un valore datetime.

Gli UUID v6 sono ordinabili per data di creazione?

Sì. A differenza di v1, UUID v6 posiziona i bit del timestamp dall'ordine dal più significativo al meno significativo, permettendo un confronto lessicografico (stringa) diretto che corrisponde all'ordine cronologico.

UUID v6 espone il mio indirizzo MAC?

Per impostazione predefinita, sì. Come UUID v1, la maggior parte delle implementazioni usa l'indirizzo MAC per l'ID nodo. Le implementazioni orientate alla privacy possono invece usare ID nodo casuali.

Resources