libmdbx 0.11.7 arriveert met projectmigratie naar GitFlic, bugfixes en meer

De release van nieuwe libmdbx-bibliotheekversie 0.11.7, de lancering valt op door de migratie van het project naar de GitFlic-service nadat GitHub-administratie libmdbx samen met een aantal andere projecten op 15 april 2022 had verwijderd zonder enige waarschuwing of uitleg, terwijl ook de toegang werd geblokkeerd voor veel ontwikkelaars die geassocieerd zijn met bedrijven die onder Amerikaanse sancties vielen.

Vanuit het oogpunt van de gebruiker veranderden alle pagina's, de repository en de forks van het project plotseling in een "404"-pagina, zonder mogelijkheid tot communicatie en zonder de redenen te achterhalen.

Helaas zijn bijna alle versies verloren gegaan, waarin veel vragen met gedetailleerde antwoorden waren, evenals veel discussies. Het verlies van deze informatie is de enige objectieve schade die de GitHub-administratie aan het project heeft kunnen toebrengen, hoewel gedeeltelijke kopieën van de discussies beschikbaar blijven in het archief archive.org.

Het verlies van de ingebouwde CI-infrastructuur en scripts (gratis beschikbaar voor OpenSource-projecten) dwong ons om een ​​beetje technische schuld te herzien, te verenigen en te elimineren. Nu is CI hersteld tot bijna hetzelfde volume (ongeveer 100 buildconfiguraties), met uitzondering van het bouwen en uitvoeren van tests voor alle BSD- en Solaris-varianten. Veelzeggend is dat er na de acties van GitHub geen verduidelijkingen of meldingen zijn ontvangen, afgezien van een herinnering aan de noodzaak van betaling.

Belangrijkste nieuwe functies van libmdbx 0.11.7

Sinds het laatste nieuws over de release van libmdbx v0.11.3, naast het herstellen van GitHub-acties, zijn de volgende verbeteringen en fixes het vermelden waard:

Er zijn in totaal 185 wijzigingen aangebracht in 89 bestanden, er zijn ongeveer 3300 regels toegevoegd, er zijn ongeveer 4100 verwijderd, voornamelijk verwijderd vanwege het opschonen van al nutteloze technische bestanden die zijn gekoppeld aan GitHub en afhankelijke services.

Toegevoegd een oplossing voor een gedetecteerd inconsistentie-effect/defect in de samengevoegde pagina en cache van de buffer in de Linux-kernel. Op systemen waar de pagina- en buffercaches echt verenigd zijn, heeft het geen zin dat de kernel geheugen verspilt aan twee kopieën van gegevens door naar een reeds geheugen toegewezen bestand te schrijven. Daarom worden de gegevens die zijn geschreven zichtbaar via de geheugentoewijzing voordat de systeemaanroep write() is voltooid, zelfs als de gegevens nog niet naar de schijf zijn geschreven.

Al met al is ander gedrag niet rationeel, want met een vertraagde samenvoeging moet je nog steeds vergrendelingen voor paginalijsten opvangen, gegevens kopiëren of PTE's aanpassen. De onuitgesproken regel van consistentie is dus van kracht sinds 1989, toen de uniforme buffercache in SVR4 verscheen. Als gevolg hiervan was het veel werk om rare bugs te vinden in drukke libmdbx-productiescenario's. Eerst het probleem reproduceren, vervolgens hypothesen verifiëren en verbeteringen controleren.

We kunnen nu vol vertrouwen zeggen dat het probleem op betrouwbare wijze is geïdentificeerd, gelokaliseerd en verwijderd, ondanks de complexiteit en specificiteit van het afspeelscenario. Ook werd het werk van het bypass-mechanisme bevestigd door een van de Erigon (Ethereum) -ontwikkelaars, in zijn geval, in de debug-build, werd de bescherming geactiveerd als een regressie vanwege een extra beweringcontrole.

Opgemerkt moet worden dat in de context van het wijdverbreide gebruik van libmdbx in werkende projecten, het van fundamenteel belang is om te zorgen voor een betrouwbare werking, dan om uit te zoeken of het een bug of een functie is, en of op dergelijke consistentie kan worden vertrouwd vooral zonder te zoeken naar de oorzaken van inconsistentie binnen de Linux-kernel. Dus hier hebben we het over het oplossen van een probleem dat van invloed kan zijn op gebruikers.

Een regressie van de EXDEV-bug gerepareerd (koppeling tussen apparaten) bij het hot kopiëren van een database zonder verdichting naar een ander bestandssysteem, zowel via de API als met het hulpprogramma mdbx_copy.
Kris Zyp heeft ondersteuning voor libmdbx geïmplementeerd op Deno.

Vaste verwerking van waarde ingesteld door MDBX_opt_rp_augment_limit optie bij het verwerken van grote transacties op grote databases. Voorheen konden vanwege een bug onnodige acties worden uitgevoerd, wat soms van invloed was op de prestaties van Ethereum-implementaties (Erigon/Akula/Silkworm) en Binance Chain-projecten.

Veel bugs zijn verholpen, inclusief die voor de C++ API en loste veel bouwproblemen op in zeldzame en exotische configuraties. Een volledige lijst van alle belangrijke verbeteringen is beschikbaar op de ChangeLog.

Tot slot, als u er meer over wilt weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.