Sortie de la base de données intégrée compacte libmdbx 0.9.1

Lancée version 0.9.1 de la bibliothèque libmdbx (MDBX) avec une implémentation d'une base de données intégrée, compacte et hautement performante de type clé-valeur. Le code libmdbx est distribué sous licence licence publique OpenLDAP..

La version actuelle est un compromis entre l'intention de publier une version stable à long terme 1.0 avec un support complet de C++ et le refus de retarder les sorties en raison de l'incapacité à geler la nouvelle API C++. La version présentée est le résultat de 9 mois de travail visant à stabiliser la bibliothèque et à améliorer sa convivialité, et comprend une version préliminaire API C++.

La bibliothèque libmdbx n'est pas simplement un « fork », mais un descendant radicalement retravaillé LMDB - un SGBD intégré de type clé-valeur basé sur l'arbre B+ sans journalisation anticipée, qui permet aux processus multithread de travailler de manière concurrente et efficace avec une base de données localement partagée (non réseau) sans processus serveur dédié. Libmdbx est fondamentalement élargit les capacités de son ancêtre, tout en éliminant ou en atténuant les défauts. Selon les développeurs, libmdbx est légèrement plus rapide et nettement plus fiable que LMDB.

libmdbx propose ACID, une sérialisation stricte des modifications et une lecture non bloquante avec une mise à l'échelle linéaire sur les cœurs CPU. Les résultats des tests de performances (envoi de requêtes parallèles de lecture/recherche en 1-2-4-8 flux sur CPU i7-4600U avec 2 cœurs physiques en mode 4 flux HyperThread) :

Sortie de la base de données intégrée compacte libmdbx 0.9.1

Les différences les plus importantes entre MDBX et LMDB :

  • Une attention particulièrement accrue est portée à la qualité du code, à la « non-chute » de l'API, aux tests et aux vérifications automatiques.
  • Un contrôle beaucoup plus important pendant l'exécution, allant de la vérification des paramètres à l'audit interne des structures de la base de données.
  • Auto-compaction et gestion automatique de la taille de la base de données.
  • Format de base de données unifié pour les builds 32 bits et 64 bits.
  • Évaluation du volume des échantillons par plages (estimation de requêtes par plage).
  • Prise en charge des clés de deux fois plus de longueur et taille de page de base de données choisie par l'utilisateur.
  • Un utilitaire de vérification de l'intégrité de la structure de la base de données avec certaines capacités de récupération.

Les principales nouveautés et améliorations après la dernière nouvelle présentant la version 0.5 en janvier 2020 :

  • Pour un soutien opérationnel et des réponses aux questions, un groupe ouvert a été créé dans Telegram.
  • Plus d'une dizaine de bogues et de défauts ont été corrigés (voir journal des modifications).
  • Une multitude de fautes de frappe et d'erreurs orthographiques ont été corrigées, ainsi que de nombreuses améliorations cosmétiques.
  • Les scénarios de test ont été élargis.
  • Le support pour iOS, Android a été mis en œuvre, buildroot, Musl, uClibc, WSL1 et Wine.
  • Une version préliminaire de l'API C++ a été présentée dans un seul fichier d'en-tête.
  • La documentation intégrée a été formulée au format Doxygen et la génération automatique de la documentation en ligne.
  • La création automatique d'archives avec des textes d'origine amalgamés est assurée.
  • Ajout du support pour la préparation des transactions et des curseurs, ainsi que des contextes utilisateur pour les transactions et les curseurs.
  • Des méthodes supplémentaires de contrôle de l'intégrité des liens dans les instantanés MVCC B+tree ont été mises en œuvre.
  • Ajout du support pour la vérification des instantanés MVCC de la base de données, accessible via n'importe quelle méta-page avec la possibilité de basculer pour le rétablissement.
  • Le support de la réouverture de la base de données depuis un processus unique a été réalisé à des fins de test, etc.
  • La gestion automatique de l'option MDBX_NOSUBDIR lors de l'ouverture de la base de données a été réalisée.
  • Des fonctions de génération de clés entières à partir de valeurs à virgule flottante et de nombres 'universels' JavaScript ont été ajoutées.
  • Au total, 430 modifications ont été apportées touchant 93 fichiers, avec plus de 25 000 lignes ajoutées et plus de 8 500 lignes supprimées.

Le développement ultérieur de libmdbx se concentrera sur la formation de l'API C++ finale, la stabilisation du code de base, l'amélioration de la convivialité de la bibliothèque et la création de paquets pour les distributions Linux populaires. Parmi les améliorations prévues, on note le support des clés au format. MessagePack.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster