O que é UUID v6?
Versão 6 do UUID é um identificador de 128 bits baseado em tempo (string de 36 caracteres) proposto como uma melhoria para o UUID v1. Consiste em:
- Timestamp reordenado: timestamp de 60 bits do mais para o menos significativo
- Sequência de relógio: contador de 14 bits para ajustes de relógio
- ID do nó: valor de 48 bits (tipicamente endereço MAC)
Exemplo de formato: 1eb527d6-e927-6511-9a03-0242ac130003
Como o UUID v6 funciona
- Calcular timestamp atual (intervalos de 100ns desde 15-10-1582)
- Reordenar bits do timestamp para melhor ordenação (bits mais significativos primeiro)
- Obter/incrementar sequência de relógio de 14 bits (para unicidade se o relógio retroceder)
- Obter ID do nó de 48 bits (geralmente do endereço MAC)
- Definir bits de versão (0110) e bits de variante (10)
- Montar como 32 dígitos hexadecimais com hífens: formato 8-4-4-4-12
Vantagens e Considerações
Advantages | Considerations |
---|---|
|
|
Estrutura do UUID v6
Bits | Content |
---|---|
0-47 | 48 bits altos do timestamp |
48-51 | Versão (0110 para v6) |
52-59 | 8 bits baixos do timestamp |
60-63 | 4 bits altos do timestamp |
64-65 | Variante (10 para RFC4122) |
66-79 | Sequência de relógio (14 bits) |
80-127 | ID do nó (48 bits) |
UUID v6 vs. outras versões
Version | Baseado em | Caso de uso | Privacy |
---|---|---|---|
UUID v1 | Tempo + MAC | IDs ordenados por tempo | ⚠️ Revela MAC |
UUID v3 | Namespace + MD5 | IDs determinísticos | ✅ Privado |
UUID v4 | Random | IDs aleatórios seguros | ✅ Privado |
UUID v5 | Namespace + SHA-1 | IDs determinísticos | ✅ Privado |
UUID v6 | Tempo (reordenado) | IDs ordenáveis | ⚠️ Revela MAC |
UUID v7 | Tempo + aleatório | IDs ordenáveis | ✅ Privado |
Casos de uso comuns
- Chaves de banco de dados ordenáveis por tempo: Para ordenação cronológica
- Bancos de dados distribuídos: Com indexação ordenada por tempo
- Entradas de log: Com ordem cronológica natural
- Trilhas de auditoria: Com timestamps embutidos
- Filas de mensagens: Para processamento baseado em tempo
- Registros de transações: Com ordenação cronológica
Perguntas frequentes
Qual a diferença entre UUID v1 e v6?
UUID v6 reorganiza os bits do timestamp do UUID v1 para torná-lo naturalmente ordenável em ordem lexicográfica. O conteúdo é idêntico ao v1, apenas reordenado.
UUID v6 é um padrão oficial?
UUID v6 é atualmente uma especificação preliminar no documento proposto RFC 4122bis. Ainda não é um padrão oficial RFC, mas está implementado em muitas bibliotecas UUID.
Posso extrair o tempo de criação do UUID v6?
Sim. O componente timestamp pode ser extraído dos bits 0-59 e convertido de volta para um valor datetime.
Os UUIDs v6 são ordenáveis por tempo de criação?
Sim. Diferente do v1, o UUID v6 coloca os bits do timestamp na ordem do mais para o menos significativo, permitindo comparação lexicográfica (string) direta que corresponde à ordem cronológica.
UUID v6 expõe meu endereço MAC?
Por padrão, sim. Como o UUID v1, a maioria das implementações usa o endereço MAC para o ID do nó. Implementações focadas em privacidade podem usar IDs de nó aleatórios em vez disso.