libmdbx 0.10.4 est livré avec diverses améliorations et corrections de bogues

La libération de bibliothèques version 0.10.4 "Libmdbx" dans lequel au total, plus de 160 modifications apportées à 57 fichiers, ~ 5000 lignes ajoutées et ~ 2500 supprimées. Pour ceux qui ne connaissent pas libmdbx, sachez qu'il s'agit d'un ensemble de bibliothèques qui sont une implémentation d'une base de données embarquée compacte et performante de la classe clé-valeur.

Historiquement, libmdbx est une refonte en profondeur du SGBD LMDB et surpasse son prédécesseur en termes de fiabilité, de fonctionnalités et de performances. Par rapport à LMDB, libmdbx met beaucoup l'accent sur la qualité du code, la stabilité de l'API, les tests et les contrôles automatisés. Un utilitaire permettant de vérifier l'intégrité de la structure de la base de données est fourni avec certaines options de récupération.

Technologiquement, libmdbx offre ACID, une sérialisation stricte des modifications et des lectures non bloquantes avec une mise à l'échelle linéaire sur les cœurs du processeur. Prend en charge le compactage automatique, le contrôle automatique de la taille de la base de données et l'estimation des requêtes de classement. Depuis 2016, les projets sont financés par Positive Technologies et utilisés dans leurs produits depuis 2017.

Pour libmdbx, une API C++ est proposée, ainsi que des fixations compatibles avec les passionnés de Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. Pour libfpta, seule la description de l'API sous la forme d'un fichier d'en-tête C/C++ est accessible au public.

En plus de prendre en charge Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD et d'autres systèmes compatibles POSIX.1-2008.

Principales nouvelles fonctionnalités de libmdbx 0.10.4

Dans cette nouvelle version de libmdbx 0.10.4 les développeurs ont travaillé pour être en mesure de fournir la possibilité de builds jouables, De plus, les tests ont été améliorés et les scripts de test ont été étendus pour vérifier tous les états non isomorphes réalisables de l'arborescence des pages et du contenu GC dans la base de données.

Dans l'API C ++ corrigé une fois "noexcept", ajout d'une surcharge supplémentaire pour la méthode "cursor :: effacer ()", l'implémentation des tampons est soulagée en utilisant "std :: string" pour assurer l'alignement (actuel pour CLANG libstdc ++)

En outre, il est également souligné que une vérification par étapes a été effectuée avec l'ajout d'une série de vérifications pour assurer la stabilité en cas d'endommagement délibéré de la base de données.

D'autre part, il est souligné que la recherche des composants du compilateur nécessaires au LTO (optimisation du temps de liaison) a été améliorée dans les scripts CMake, en plus du fait que le nombre maximum de lecteurs simultanés a été augmenté à 32.767 XNUMX et que les performances ont également été améliorées. amélioré lors de l'utilisation de Valgrind et AddressSanitizer.

Concernant les corrections de bogues qui ont été faites dans cette nouvelle version, les éléments suivants sont mentionnés :

  • Correction d'un bug où, dans de très rares circonstances, une boucle / plantage pouvait se produire lors de la validation d'une transaction. Le problème a été identifié par des spécialistes de Positive Technologies lors de tests internes de leurs propres produits.
  • Correction de la régression dans l'algorithme de déversement de pages sales (éviction sélective des pages de base de données modifiées) se manifestant par une rare erreur inattendue MDBX_PROBLEM lors de la modification de données dans des transactions volumineuses.
  • Correction de problèmes mineurs avec UndefinedBehaviorSanitizer et Coverity Scan.
    Correction de la vérification de drapeau interne périmée et inutilisée "P_DIRTY" sur les pages imbriquées dans les images de base de données créées par les anciennes versions de la bibliothèque.
  • Correction de l'utilisation récursive du verrouillage SRW dans Windows lorsque vous travaillez en mode MDBX_NOTLS (sans utiliser le stockage local des threads), génération de bootid fixe en cas de changement d'heure système, détection améliorée de WSL1 et WSL2, ajout de la possibilité d'ouvrir une base de données Plan 9 montée à l'aide DrvFS.

Enfin si vous souhaitez en savoir plus à propos de cette nouvelle version, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.