libmdbx 0.10.4 inclúe varias melloras e corrección de erros

O lanzamento de versión 0.10.4 bibliotecas "Libmdbx" en que en total, realizáronse máis de 160 cambios en 57 ficheiros, engadíronse ~ 5000 liñas e elimináronse ~ 2500. Para aqueles que non estean familiarizados con libmdbx, debes saber que se trata dun conxunto de bibliotecas que é unha implementación dunha base de datos incrustada compacta e de alto rendemento da clase clave-valor.

Historicamente, libmdbx é unha profunda reelaboración do SGBD de LMDB e supera ao seu predecesor en fiabilidade, conxunto de funcións e rendemento. En comparación con LMDB, libmdbx fai moita énfase na calidade do código, estabilidade da API, probas e comprobacións automatizadas. Algunhas opcións de recuperación ofrécense unha utilidade para verificar a integridade da estrutura da base de datos.

Tecnoloxicamente, libmdbx ofrece ACID, serialización de cambios estritos e lecturas sen bloqueo con escala lineal nos núcleos CPU. Admite compactación automática, control automático de tamaño de base de datos e estimación de consultas de rango. Desde 2016, os proxectos están financiados por Positive Technologies e utilizados nos seus produtos desde 2017.

Para libmdbx, ofrécese unha API C ++, así como enlaces compatibles con entusiastas de Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. Para libfpta, só está dispoñible publicamente a descrición da API en forma de ficheiro de cabeceira C / C ++.

Ademais de soportar Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD e outros sistemas compatibles POSIX.1-2008.

Principais novidades de libmdbx 0.10.4

Nesta nova versión de libmdbx 0.10.4 os desenvolvedores traballaron para poder proporcionar a posibilidade de construír xogables, Ademais, melloráronse as probas e ampliáronse os scripts de proba para comprobar todos os estados non isomorfos alcanzables da árbore de páxinas e contido GC dentro da base de datos.

Na API de C ++ corrixida unha vez "noexcept", engadiuse unha sobrecarga extra para o método "cursor :: erase ()", a implementación de búferes aliviase usando "std :: string" para garantir o aliñamento (actual para CLANG libstdc ++)

Ademais, tamén se destaca que levouse a cabo unha verificación por fases coa adición dunha serie de verificacións para garantir a estabilidade en caso de danos deliberados á base de datos.

Por outra banda, resáltase que a busca dos compoñentes do compilador necesarios para LTO (optimización do tempo de enlace) mellorouse nos scripts CMake, ademais de que o número máximo de lectores simultáneos aumentou a 32.767 e tamén o rendemento ten mellorouse ao usar Valgrind e AddressSanitizer.

Respecto á corrección de erros que se fixeron nesta nova versión, mencionanse os seguintes:

  • Solucionouse un erro no que, en moi raras circunstancias, podía producirse un bucle / fallo durante a comisión dunha transacción. Os especialistas de Positive Technologies identificaron o problema durante as probas internas dos seus propios produtos.
  • Corrixiu a regresión no algoritmo de derramamento de páxinas sucias (desafiuzamento selectivo de páxinas de base de datos modificadas) que se manifestaba nun raro erro MDBX_PROBLEM inesperado ao cambiar datos en transaccións grandes.
  • Solucionáronse problemas menores de UndefinedBehaviorSanitizer e Scan Coverity.
    Arranxouse o marcado interno obsoleto e sen uso que marcaba "P_DIRTY" nas páxinas anidadas nas imaxes da base de datos creadas por versións anteriores da biblioteca.
  • Fixouse o uso recursivo do bloqueo SRW en Windows cando se traballaba en modo MDBX_NOTLS (sen usar almacenamento local de fíos), xeración de arranque fixa en caso de cambio de hora do sistema, detección mellorada de WSL1 e WSL2, engadiu a posibilidade de abrir unha base de datos de Plan 9 montada usando DrvFS.

Finalmente se estás interesado en saber máis sobre el sobre esta nova versión, podes consultar os detalles Na seguinte ligazón.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

Sexa o primeiro en opinar sobre

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.