Що таке UUID v6?
UUID версії 6 - це 128-бітний ідентифікатор на основі часу (рядок із 36 символів), запропонований як удосконалення UUID v1. Він складається з:
- Переупорядкований часовий штамп: 60-бітний часовий штамп від найбільш до найменш значущих бітів
- Послідовність годинника: 14-бітний лічильник для налаштувань годинника
- ID вузла: 48-бітне значення (зазвичай MAC-адреса)
Приклад формату: 1eb527d6-e927-6511-9a03-0242ac130003
Як працює UUID v6
- Обчислення поточного часового штампу (інтервали 100нс з 15-10-1582)
- Переупорядкування бітів часового штампу для кращого сортування (спочатку найбільш значущі біти)
- Отримання/збільшення 14-бітної послідовності годинника (для унікальності, якщо годинник рухається назад)
- Отримання 48-бітного ID вузла (зазвичай з MAC-адреси)
- Встановлення бітів версії (0110) та бітів варіанту (10)
- Складання як 32 шістнадцяткових цифр з дефісами: формат 8-4-4-4-12
Переваги та міркування
Переваги | Міркування |
---|---|
|
|
Структура UUID v6
Біти | Вміст |
---|---|
0-47 | Верхні 48 біт часового штампу |
48-51 | Версія (0110 для v6) |
52-59 | Нижні 8 біт часового штампу |
60-63 | Верхні 4 біти часового штампу |
64-65 | Варіант (10 для RFC4122) |
66-79 | Послідовність годинника (14 біт) |
80-127 | ID вузла (48 біт) |
UUID v6 у порівнянні з іншими версіями
Версія | На основі | Варіант використання | Конфіденційність |
---|---|---|---|
UUID v1 | Час + MAC | ID з часовим порядком | ⚠️ Розкриває MAC |
UUID v3 | Простір імен + MD5 | Детерміновані ID | ✅ Приватний |
UUID v4 | Випадковий | Безпечні випадкові ID | ✅ Приватний |
UUID v5 | Простір імен + SHA-1 | Детерміновані ID | ✅ Приватний |
UUID v6 | Час (переупорядкований) | ID, що сортуються | ⚠️ Розкриває MAC |
UUID v7 | Час + випадковий | ID, що сортуються | ✅ Приватний |
Поширені випадки використання
- Ключі бази даних, які сортуються за часом: Для хронологічного сортування
- Розподілені бази даних: З індексацією, впорядкованою за часом
- Записи журналу: З природним хронологічним порядком
- Аудиторські сліди: З вбудованими часовими штампами
- Черги повідомлень: Для обробки на основі часу
- Записи транзакцій: З хронологічним впорядкуванням
Часті запитання
Яка різниця між UUID v1 та v6?
UUID v6 переупорядковує біти часового штампу з UUID v1, щоб зробити його природно сортованим у лексикографічному порядку. Вміст ідентичний v1, лише переупорядкований.
Чи є UUID v6 офіційним стандартом?
UUID v6 наразі є чернеткою специфікації в запропонованому документі RFC 4122bis. Він ще не є офіційним стандартом RFC, але реалізований у багатьох бібліотеках UUID.
Чи можу я вилучити час створення з UUID v6?
Так. Компонент часового штампу можна вилучити з бітів 0-59 і перетворити назад у значення дати та часу.
Чи можуть UUID v6 сортуватися за часом створення?
Так. На відміну від v1, UUID v6 розміщує біти часового штампу в порядку від найбільш до найменш значущих, дозволяючи лексикографічне (рядкове) порівняння відповідати хронологічному порядку.
Чи розкриває UUID v6 мою MAC-адресу?
За замовчуванням, так. Як і UUID v1, більшість реалізацій використовують MAC-адресу для ID вузла. Реалізації, орієнтовані на конфіденційність, можуть використовувати випадкові ID вузлів замість цього.