Lançamento do banco de dados embutido de alto desempenho libmdbx 0.11.3

Foi lançado a biblioteca libmdbx 0.11.3 (MDBX) com a implementação de um banco de dados embutido compacto de alto desempenho do tipo chave-valor. O código da libmdbx é distribuído sob a licença OpenLDAP Public License. Todos os sistemas operacionais e arquiteturas atuais são suportados, incluindo o russo Elbrus 2000. Até o final de 2021, a libmdbx é utilizada como backend de armazenamento em dois dos clientes Ethereum mais rápidos — Erigon e o novo "Tubarão", que, segundo informações disponíveis, é o cliente Ethereum de maior desempenho.

Historicamente, a libmdbx é uma reestruturação profunda do SGBD LMDB e supera seu predecessor em confiabilidade, conjunto de recursos e desempenho. Em comparação com a LMDB, a libmdbx dedica grande atenção à qualidade do código, ao funcionamento estável da API, aos testes e às verificações automáticas. Uma ferramenta de verificação de integridade da estrutura do banco de dados é fornecida, com algumas opções de recuperação.

Tecnicamente, a libmdbx oferece ACID, serialização estrita de alterações e leitura não bloqueante com escalabilidade linear em núcleos de CPU. O suporte para auto-compacitação, gerenciamento automático do tamanho do banco de dados e avaliação de volumes de consultas em intervalos (estimação de consulta de intervalo) está disponível. Desde 2016, o projeto é financiado pela Positive Technologies e desde 2017 é usado em seus produtos.

Para a libmdbx, uma API C++ é oferecida, além de ligações suportadas por entusiastas para as linguagens Rust, Haskell, Python, NodeJS, Ruby, Go e Nim.

As principais novidades, melhorias e correções adicionadas após a última atualização de 11 de outubro:

  • A API C++ é considerada pronta para uso.
  • A atualização de dados do GC foi significativamente acelerada ao consolidar grandes transações, o que é especialmente relevante ao usar a libmdbx no ecossistema Ethereum.
  • A assinatura interna do formato do banco de dados foi alterada com suporte para atualização automática, que é completamente transparente para os usuários. Isso permite eliminar mensagens de dano falso ao banco de dados, quando versões antigas da biblioteca são usadas para ler transações registradas por versões atuais.
  • As funções mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() e mdbx_env_get_syncbytes() foram adicionadas. Suporte para a operação MDBX_SET_UPPERBOUND foi incluído.
  • Todos os avisos de compilação foram resolvidos para todos os compiladores suportados nas versões C++ 11/14/17/20. Garantida a compatibilidade com compiladores obsoletos: clang a partir da versão 3.9, gcc a partir da versão 4.8, incluindo compilação através do sdevtoolset-9 para CentOS/RHEL 7.
  • Resolvido o potencial conflito de meta-páginas após a troca manual para uma meta-página específica usando a ferramenta mdbx_chk.
  • Corrigido o retorno inesperado do erro MDBX_PROBLEM ao sobrescrever meta-páginas obsoletas.
  • Corrigido o retorno MDBX_NOTFOUND em caso de correspondência imprecisa ao processar a solicitação MDBX_GET_BOTH.
  • Corrigido um erro de compilação no Linux na ausência de arquivos de cabeçalho com descrições das interfaces do núcleo.
  • Corrigida a colisão entre a flag interna MDBX_SHRINK_ALLOWED e a opção MDBX_ACCEDE.
  • Removidos vários asserts desnecessários.
  • Corrigido o retorno inesperado MDBX_RESULT_TRUE da função mdbx_env_set_option().
  • Foram feitas mais de 90 alterações em 25 arquivos, com cerca de 1300 linhas adicionadas e aproximadamente 600 removidas.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster