Arquitetura Corporativa para Todos

Artigo / Post

UUID (GUID)- Algumas provocações Praticas

Tive uma reunião a algum tempo para avaliar uma solução de alta volumetria com persistência de dados; para entendimento das grandezas envolvidas, são alguns terabytes de armazenamento e algo próximo de 1 bilhão de registros.  São números significativos onde, entre outros temas relevantes e uma excelente apresentação pelo time de engenharia da épocaa escolhas de tipos de dados foram debatidas.

Um dos tipos que participaram deste discursão produtiva foi o uso de GUID como identificadores de registros. Este é um tipo recorrente em varias solução que vejo por aqui e resolvi fazer uma provocação:


Usar GUID como um identificador único **externo** e uma coisa, Usar GUID como um identificador único **interno** para representar a unicidade de dado é outra coisa!


UUID garante aleatoriedade e unicidade , características desejadas de segurança para não permitir a previsão de valores e manter um identificador único. Estas características são uteis quando precisamos expor estes identificadores para o mundo externo ou fora do domínio
de uma solução.

UUID aplicada a representar a unicidade de dado, presumindo que este dado é persistido sobre esta chave, é uma grande dor de cabeça, sabe porquê ? Como a chave não é ordenada, o banco de dados armazenar esta informação de forma não eficiente em disco, gerando uma quantidade de operações E/S em disco para encontrar o registro apropriado. Isso é custo de cpu e perda de performance (latência).

Alguns bancos de dados possuem funcionalidades para gerar uma UUID capaz de ser ordenada mas vale apena ?

  • Se acoplamento não é problema e restringir a geração somente no contexto de banco de dados então pode ser uma alternativa a ser avaliada.
    Se você desejar ter esta funcionalidade “cross” independente de contexto talvez devesse avaliar alternativas como identificadores únicos Lexicograficamente Classificáveis : ULID (https://lnkd.in/dE34e-HK)
  • Algumas de suas característicasCompatibilidade de 128 bits com UUID
  • 1.21e+24 ULIDs exclusivos por milissegundo
  • Classificável lexicograficamente!
  • Codificado canonicamente como uma sequência de 26 caracteres, em oposição ao UUID de 36 caracteres
  • Usa base32 de “Crockford” para melhor eficiência e legibilidade (5 bits por caractere)
  • Não diferencia maiúsculas de minúsculas
  • Sem caracteres especiais (URL seguro)
  • Ordem de classificação monotônica (detecta e trata corretamente o mesmo milissegundo)

Quando você escolhe trabalhar com GUIDS, quais considerações você utiliza ?


Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 30 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

A Desmaterialização do Meio Físico e a Ascensão da Identidade Digital

Introdução A transformação digital tem provocado uma profunda reconfiguração na forma como indivíduos, empresas e governos interagem com o mundo. Um dos fenômenos marcantes desse processo é a desmaterialização do meio físico, acompanhada pela ascensão da identidade digital. Essa mudança não é apenas tecnológica, mas estrutural, afetando modelos de negócio, estruturas

Calibrando a intensidade ao risco real

Calibrando a intensidade ao risco real A confiança na IA não começa no modelo, começa no processo. Esta é a décima parte de uma série sobre a metodologia que uso para continuar sendo, de fato, o responsável pelo que um agente de IA produz. Aqui, respondo à pergunta que fica

TI x Negócio – Contexto é uma palavra-chave

Algum tempo atrás estive envolvido em uma solução para aumento de capacidade transacional de vários produtos. Foi necessário um redesenho arquitetural por diversos motivos visando um horizonte maior de crescimento de negócio (presente e futuro) alinhado com uma nova estratégia executiva. Iniciativas assim são fruto de um processo de amadurecimento

Arquitetura NÃO é somente sobre tecnologia é essencialmente sobre pessoas!

Melvin Conway foi um cientista da computação e programador. Por volta de 1968, em um de seus estudos (“How Do Committees Invent?”) na sua conclusão escreveu: “Ao desenhar seus sistemas, as organizações estão fadadas a produzir cópias de suas estruturas de comunicação.” Melvin Conway Isso na época (55 anos atrás!)

"Open Finance,  wstamos testemunhando uma transição de bancos de dados fragmentados para bancos de dados distribuídos no ecossistema financeiro. Isso não é apenas uma mudança tecnológica, mas uma evolução nos negócios e nas barreiras para novos concorrentes."

Fernando Cerqueira | Arquiteto Corporativo

Sua Reflexão

0
Adoraria saber sua opinião, comente.x