In primo luogo, per essere chiari, l'intera discussione è limitata alla versione 3 & 5 UUID. Nella mia esperienza (aneddotica), gli UUID versione 4 (casuali) sono più comunemente usati.
4122 's algoritmo di generazione UUID namespace inizia in modo ambiguo:
assegnare un UUID da utilizzare come "nome dello spazio ID"
Non c'è altra menzione di "ID spazio dei nomi" allocazione e né I né python hanno trovato spazi standardizzati oltre i quattro elencati in RFC 4122.
Quindi la risposta alla prima domanda,
- Se sto generando il mio spazio dei nomi UUID devo evitare qualcosa in particolare?
È necessario solo evitare i quattro spazi dei nomi standard.
La domanda successiva,
- Sono consapevole quanto è grande lo spazio UUID è, ma questo ha alcuna conseguenza per le collisioni?
ha due parti:
Sarà UUID all'interno del vostro spazio dei nomi collidere? Verbatim dal 4122:
I UUID generati da due nomi diversi in [vostro] namespace dovrebbe essere diverso (con probabilità molto alta).
Il tuo UUID dello spazio dei nomi entrerà in collisione con altri spazi dei nomi? Non riuscivo a trovare una risposta diretta, dal momento che non c'è alcuna norma per "spazio dei nomi ID" di assegnazione, ma l'argomento in section 4.1.1 sembra rilevante:
interoperabilità, in qualsiasi forma, con varianti diverse da quella definito qui non è garantito e non è probabile che sia un problema nella pratica .
- Perché hanno scelto il quarto ottetto di aumentare come una sorta di UUID 'il numero di versione'?
Questo è un po 'un mistero. Fortunatamente, abbiamo una specifica per gli UUID, quindi possiamo ricavarli per qualche intuizione.
Si noti che il (0-index) 8 ° ottetto inizia con 8
in tutti i casi, quindi abbiamo a che fare con RFC 4122 variante UUID. Uff.
Ora controlla l'ottetto 6 per la versione: 1
, ci stiamo occupando degli UUID versione 1 basati sul tempo.
Questo answer dispone di un pratico algoritmo per l'estrazione di datetime python dagli UUID versione 1. L'applicazione dell'algoritmo produce un tempo in 4 febbraio 1998. Devo ancora trovare un significato in questa data. L'incremento del 3 ° ottetto aggiunge il più piccolo intervallo di tempo codificabile (100 ns) alla data.
- Do le mie domande implica che mi manca qualcosa di fondamentale sulla UUID?
No. Ci sono poche discussioni sugli spazi dei nomi UUID, poiché gli UUID casuali sono così semplici.
Il RFC4122 dice: "I meccanismi o convenzioni usate per allocare nomi e garantendo loro unicità nel loro spazi nome esulano dall'ambito di questa specifica." in 4.3 ^^ Ma non so dove è specificato. –