Gerador UUID Versão 6 (Timestamp Ordenado)

Gere UUIDs ordenados por timestamp otimizados para indexação em bancos de dados

Experimente estes exemplos:

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

  1. Calcular timestamp atual (intervalos de 100ns desde 15-10-1582)
  2. Reordenar bits do timestamp para melhor ordenação (bits mais significativos primeiro)
  3. Obter/incrementar sequência de relógio de 14 bits (para unicidade se o relógio retroceder)
  4. Obter ID do nó de 48 bits (geralmente do endereço MAC)
  5. Definir bits de versão (0110) e bits de variante (10)
  6. Montar como 32 dígitos hexadecimais com hífens: formato 8-4-4-4-12

Vantagens e Considerações

AdvantagesConsiderations
  • Ordenável lexicograficamente
  • Tempo de criação embutido
  • Geração de alto desempenho
  • Geração distribuída
  • Preocupações com privacidade do endereço MAC
  • Problemas de sincronização de relógio
  • Mais previsível que UUIDs aleatórios
  • Status da especificação preliminar

Estrutura do UUID v6

BitsContent
0-4748 bits altos do timestamp
48-51Versão (0110 para v6)
52-598 bits baixos do timestamp
60-634 bits altos do timestamp
64-65Variante (10 para RFC4122)
66-79Sequência de relógio (14 bits)
80-127ID do nó (48 bits)

UUID v6 vs. outras versões

VersionBaseado emCaso de usoPrivacy
UUID v1Tempo + MACIDs ordenados por tempo⚠️ Revela MAC
UUID v3Namespace + MD5IDs determinísticos✅ Privado
UUID v4RandomIDs aleatórios seguros✅ Privado
UUID v5Namespace + SHA-1IDs determinísticos✅ Privado
UUID v6Tempo (reordenado)IDs ordenáveis⚠️ Revela MAC
UUID v7Tempo + aleatórioIDs 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.

Resources