libmdbx 0.10.4 arriba amb diverses millores i correccions d'errors

Es va donar a conèixer l'alliberament de la versió 0.10.4 les biblioteques «Libmdbx» en la qual en total, es van realitzar més de 160 canvis en 57 arxius, es van agregar ~ 5000 línies i ~ 2500 es van eliminar. Per als qui desconeixen de libmdbx, han de saber que aquest és un conjunt de biblioteques les quals són una implementació d'una base de dades integrada compacta d'alt rendiment de la classe de clau-valor.

històricament, libmdbx és una reelaboració profunda de l'DBMS de LMDB i supera el seu predecessor en fiabilitat, conjunt de característiques i rendiment. En comparació amb LMDB, libmdbx posa molt èmfasi en la qualitat de el codi, l'estabilitat de l'API, les proves i les comprovacions automatitzades. Es proporciona una utilitat per verificar la integritat de l'estructura de la base de dades amb algunes opcions de recuperació.

tecnològicament, libmdbx ofereix ACID, serialització de canvis estrictes i lectures sense bloqueig amb escalat lineal en els nuclis de la CPU. Admet la compactació automàtica, el control automàtic de la mida de la base de dades i l'estimació de consultes de rang. Des 2016, els projectes han estat finançats per Positive Technologies i s'han utilitzat en els seus productes des de 2017.

Per libmdbx, s'ofereix una API de C ++, així com enllaços compatibles amb els entusiastes de Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. Per libfpta, només la descripció de l'API en forma d'arxiu de capçalera C / C ++ està disponible públicament.

A més de que admet Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD i altres sistemes compatibles amb POSIX.1-2008.

Principals novetats de libmdbx 0.10.4

En aquesta nova versió de libmdbx 0.10.4 els desenvolupadors van treballar per poder proporcionar la capacitat de compilacions reproduïbles, a més que s'han millorat les proves i s'han ampliat els scripts de prova per comprovar tots els estats no isomòrfics assolibles de l'arbre de pàgines i el contingut de GC dins de la base de dades.

En l'API de C ++ corregida un cop «noexcept», es va agregar la sobrecàrrega addicional per al mètode «cursor :: erase ()», la implementació dels memòria intermèdia s'alleuja mitjançant l'ús de «std :: string» per garantir l'alineació (actual per Clang libstdc ++)

A més, també es destaca que es va dur a terme una verificació per fases amb l'addició d'una sèrie de verificacions per garantir l'estabilitat en cas de dany deliberat a la base de dades.

D'altra banda, es destaca que la recerca dels components de l'compilador necessaris per a LTO (optimització de el temps d'enllaç) s'ha millorat en els scripts de CMake, a més que el nombre màxim de lectors simultanis s'ha augmentat a 32.767 i també es ha millorat el rendiment a l'usar Valgrind i AddressSanitizer.

Pel que fa a les correccions d'errors que es van realitzar en aquesta nova versió, s'esmenten les següents:

  • Es va corregir un error pel qual, en molt rares circumstàncies, es podia produir un bucle / bloqueig durant la confirmació d'una transacció. El problema va ser identificat per especialistes de Positive Technologies durant les proves internes dels seus propis productes.
  • Es va corregir la regressió en l'algoritme de vessament de pàgines brutes (desallotjament selectiu de pàgines de base de dades modificades) que es manifestava en un rar error inesperat MDBX_PROBLEM a l'canviar dades en transaccions grans.
  • Es van corregir problemes menors de UndefinedBehaviorSanitizer i Coverity Scan.
    Es va corregir la comprovació de la bandera interna obsoleta i no utilitzada «P_DIRTY» a les pàgines niuades dins de les imatges de la base de dades creades per versions antigues de la biblioteca.
  • Es va corregir l'ús recursiu de SRW-lock en Windows quan es treballa en mode MDBX_NOTLS (sense usar l'emmagatzematge local de subprocessos), es va corregir la generació de bootid en cas de canvi d'hora de el sistema, es va millorar la detecció de WSL1 i WSL2 , es va agregar la capacitat d'obrir una base de dades Plan 9 muntada usant DrvFS.

Finalment si estàs interessat en poder conèixer més a l'respecte sobre aquesta nova versió, pots consultar els detalls en el següent enllaç.