Co to jest UUID v6?
Wersja UUID 6 to 128-bitowy identyfikator oparty na czasie (ciąg 36 znaków) zaproponowany jako ulepszenie UUID v1. Składa się z:
- Przearanżowany znacznik czasu: 60-bitowy znacznik czasu od najbardziej do najmniej znaczącego
- Sekwencja zegara: 14-bitowy licznik do regulacji zegara
- ID węzła: 48-bitowa wartość (zwykle adres MAC)
Przykład formatu: 1eb527d6-e927-6511-9a03-0242ac130003
Jak działa UUID v6
- Oblicz aktualny znacznik czasu (interwały 100ns od 1582-10-15)
- Przearanżuj bity znacznika czasu dla lepszego sortowania (najbardziej znaczące bity jako pierwsze)
- Pobierz/incrementuj 14-bitową sekwencję zegara (dla unikalności, jeśli zegar cofa się)
- Pobierz 48-bitowe ID węzła (zwykle z adresu MAC)
- Ustaw bity wersji (0110) i wariantu (10)
- Złóż jako 32 cyfry szesnastkowe z myślnikami: format 8-4-4-4-12
Zalety i uwagi
Advantages | Considerations |
---|---|
|
|
Struktura UUID v6
Bits | Content |
---|---|
0-47 | Wysokie 48 bitów znacznika czasu |
48-51 | Wersja (0110 dla v6) |
52-59 | Niskie 8 bitów znacznika czasu |
60-63 | Wysokie 4 bity znacznika czasu |
64-65 | Wariant (10 dla RFC4122) |
66-79 | Sekwencja zegara (14 bitów) |
80-127 | ID węzła (48 bitów) |
UUID v6 a inne wersje
Version | Na podstawie | Przypadek użycia | Privacy |
---|---|---|---|
UUID v1 | Czas + MAC | ID uporządkowane czasowo | ⚠️ Ujawnia MAC |
UUID v3 | Namespace + MD5 | Deterministyczne ID | ✅ Prywatne |
UUID v4 | Random | Bezpieczne losowe ID | ✅ Prywatne |
UUID v5 | Namespace + SHA-1 | Deterministyczne ID | ✅ Prywatne |
UUID v6 | Czas (przearanżowany) | ID sortowalne | ⚠️ Ujawnia MAC |
UUID v7 | Czas + losowe | ID sortowalne | ✅ Prywatne |
Typowe przypadki użycia
- Klucze baz danych sortowalne czasowo: Do sortowania chronologicznego
- Bazy danych rozproszone: Z indeksowaniem uporządkowanym czasowo
- Wpisy dziennika: Z naturalnym porządkiem chronologicznym
- Ścieżki audytu: Z osadzonymi znacznikami czasu
- Kolejkowanie wiadomości: Do przetwarzania opartego na czasie
- Rekordy transakcji: Z uporządkowaniem chronologicznym
Najczęściej zadawane pytania
Jaka jest różnica między UUID v1 a v6?
UUID v6 przearanżowuje bity znacznika czasu z UUID v1, aby był naturalnie sortowalny w porządku leksykograficznym. Zawartość jest identyczna jak w v1, tylko przearanżowana.
Czy UUID v6 jest oficjalnym standardem?
UUID v6 jest obecnie specyfikacją roboczą w proponowanym dokumencie RFC 4122bis. Nie jest jeszcze oficjalnym standardem RFC, ale jest implementowany w wielu bibliotekach UUID.
Czy mogę wyodrębnić czas utworzenia z UUID v6?
Tak. Komponent znacznika czasu można wyodrębnić z bitów 0-59 i przekształcić z powrotem na wartość daty i czasu.
Czy UUID v6 są sortowalne według czasu utworzenia?
Tak. W przeciwieństwie do v1, UUID v6 umieszcza bity znacznika czasu w kolejności od najbardziej do najmniej znaczącego, co pozwala na bezpośrednie porównanie leksykograficzne (łańcuchowe) odpowiadające porządkowi chronologicznemu.
Czy UUID v6 ujawnia mój adres MAC?
Domyślnie tak. Podobnie jak UUID v1, większość implementacji używa adresu MAC jako ID węzła. Implementacje skoncentrowane na prywatności mogą zamiast tego używać losowych ID węzła.