7 pontos por xguru 2025-06-25 | 2 comentários | Compartilhar no WhatsApp
  • Um banco de dados chave-valor de alto desempenho desenvolvido em Go, com suporte a interface C e incorporando princípios modernos de projeto de bancos de dados como árvore LSM, MVCC e arquitetura lock-free
  • Garante consistência imediata e durabilidade com base em WAL (Write Ahead Logging), oferecendo alto desempenho de leitura/escrita com flush/compactação em segundo plano e processamento paralelo lock-free
  • Com uma arquitetura embarcada de nó único, busca armazenamento de dados leve e rápido sem rede nem distribuição

Principais características do Wildcat

  • Baseado em árvore LSM, otimizado para cargas de trabalho intensivas em escrita
  • MVCC (controle de concorrência multiversão) e estruturas de dados lock-free, com processamento sem bloqueios nos caminhos principais
  • Log WAL: registra o estado completo das transações e oferece suporte à recuperação
  • Skip list com reconhecimento de versão para acelerar o MVCC em memória
  • Escritas thread-safe/lock-free e gerenciamento atômico de cache/memória
  • SSTable com estrutura BTree imutável, suporte a separação de chave-valor e otimização com Bloom Filter
  • Garantia ACID para transações e possibilidade de escolher níveis de durabilidade (Full/Partial/None)
  • Crash recovery para recuperar transações confirmadas e não concluídas
  • Batch/iterador: suporte a iteração por intervalo, prefixo e bidirecional
  • Projeto moderno com Bloom Filter, separação key-value (.klog, .vlog) e compactação com reconhecimento de tombstone/versão
  • Estatísticas/logging/monitoramento: fornece várias interfaces de diagnóstico e estatísticas, como Stats() e LogChannel
  • Build como biblioteca C e API: pode ser compilado como biblioteca compartilhada em Go e usado diretamente em várias linguagens
  • Suporte a Go 1.24+ e Linux/macOS/Windows (64 bits)

Por que isso importa? (diferenças em relação a outros KVs embarcados)

  • Tem uma arquitetura LSM+MVCC semelhante à de RocksDB e Badger, mas oferece design nativo em Go, lock-free e multithread, otimizado para uso no ecossistema Go
  • Especializado em banco de dados embarcado: entrega consistência imediata, durabilidade e alto desempenho sem overhead de rede/replicação
  • Alta confiabilidade e transparência com recuperação de transações e preservação de estados incompletos
  • Permite ajuste fino por carga de trabalho com diversos parâmetros de compactação/buffer/cache

2 comentários

 
kuber 2025-06-25

Uma linguagem em que, de forma suspeita, surgem muitos bancos de dados

 
sjc02183 2025-06-25

Uma linguagem da qual sai banco de dados demais, a ponto de parecer suspeito