5.8. UUID Version 8 (UUID versione 8)
5.8. UUID Version 8
UUIDv8 fornisce un formato compatibile RFC per casi d'uso sperimentali o specifici del fornitore. L'unico requisito è che i bit di variante e versione DEVONO essere impostati come definito nelle sezioni 4.1 e 4.2. L'unicità di UUIDv8 sarà specifica dell'implementazione e NON DEVE essere assunta.
Gli unici bit esplicitamente definiti sono quelli dei campi versione e variante, lasciando 122 bit per UUID specifici dell'implementazione. Per essere chiari, UUIDv8 non è un sostituto per UUIDv4 (sezione 5.4) dove tutti i 122 bit aggiuntivi sono riempiti con dati casuali.
Alcune situazioni di esempio in cui potrebbe verificarsi l'utilizzo di UUIDv8:
-
Un'implementazione desidera incorporare informazioni aggiuntive all'interno dell'UUID oltre a quanto definito in questo documento.
-
Un'implementazione ha altre restrizioni applicative e/o linguistiche che inibiscono l'uso di uno degli UUID attuali.
L'appendice B fornisce due esempi illustrativi di algoritmi UUIDv8 personalizzati per affrontare due scenari di esempio.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| custom_a |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| custom_a | ver | custom_b |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|var| custom_c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| custom_c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figura 12: Layout dei campi e dei bit UUIDv8
Definizioni dei campi:
custom_a: I primi 48 bit del layout che possono essere riempiti come un'implementazione ritiene opportuno. Occupa i bit da 0 a 47 (ottetti 0-5).
ver: Il campo versione di 4 bit come definito dalla sezione 4.2, impostato a 0b1000 (8). Occupa i bit da 48 a 51 dell'ottetto 6.
custom_b: 12 bit aggiuntivi del layout che possono essere riempiti come un'implementazione ritiene opportuno. Occupa i bit da 52 a 63 (ottetti 6-7).
var: Il campo variante di 2 bit come definito dalla sezione 4.1, impostato a 0b10. Occupa i bit 64 e 65 dell'ottetto 8.
custom_c: Gli ultimi 62 bit del layout immediatamente successivi al campo var da riempire come un'implementazione ritiene opportuno. Occupa i bit da 66 a 127 (ottetti 8-15).