libmdbx 0.11.7 saapuu projektien siirrolla GitFliciin, virheenkorjauksilla ja paljon muuta

The uuden libmdbx-kirjastoversion 0.11.7 julkaisu, laukaisu erottuu projektin siirtymisestä GitFlic-palveluun sen jälkeen, kun GitHubin hallinto poisti libmdbx:n yhdessä useiden muiden projektien kanssa 15. huhtikuuta 2022 ilman varoitusta tai selitystä, ja samalla esti pääsyn monille kehittäjille, jotka liittyvät Yhdysvaltojen pakotteiden alaisiksi joutuneisiin yrityksiin.

Käyttäjän näkökulmasta kaikki projektin sivut, arkisto ja haarukat muuttuivat yhtäkkiä "404"-sivuksi ilman kommunikaatiomahdollisuutta ja syitä selvittämättä.

Valitettavasti lähes kaikki versiot ovat kadonneet, jossa oli monia kysymyksiä ja yksityiskohtaisia ​​vastauksia, sekä monia keskusteluja. Näiden tietojen katoaminen on ainoa objektiivinen vahinko, jonka GitHubin hallinto onnistui aiheuttamaan hankkeelle, vaikka keskustelujen osittaiset kopiot ovat edelleen saatavilla archive.org-arkistossa.

Sisäänrakennetun CI-infrastruktuurin ja komentosarjojen menettäminen (saatavilla ilmaiseksi OpenSource-projekteille) pakotti meidät tarkistamaan, yhdistämään ja poistamaan pienen teknisen velan. Nyt CI on palautettu lähes samaan määrään (noin 100 koontikokoonpanoa), lukuun ottamatta kaikkien BSD- ja Solaris-versioiden rakennus- ja käyttötestejä. Kertoo, että GitHubin toiminnan jälkeen ei tullut mitään selvennyksiä tai ilmoituksia, lukuun ottamatta muistutusta maksun tarpeesta.

Libmdbx 0.11.7: n tärkeimmät uudet ominaisuudet

Uusimpien libmdbx v0.11.3 -julkaisujen uutisten jälkeen GitHub-toiminnoista toipumisen lisäksi seuraavat parannukset ja korjaukset ovat huomionarvoisia:

Yhteensä 185 muutosta tehtiin 89 tiedostoon, noin 3300 riviä lisättiin, noin 4100 XNUMX poistettiin. Poistettiin ensisijaisesti GitHubiin ja siihen liittyviin palveluihin liittyvien jo turhien teknisten tiedostojen poistamisen vuoksi.

Lisätty a Korjaa yhdistetyssä sivulla ja välimuistissa havaittu epäjohdonmukaisuusvaikutus/vika Linux-ytimen puskurista. Järjestelmissä, joissa sivu- ja puskurivälimuistit ovat todella yhtenäisiä, ytimen ei ole järkevää tuhlata muistia kahdelle datakopiolle kirjoittamalla jo muistiin varattuun tiedostoon. Siksi kirjoitettavat tiedot tulevat näkyviin muistin varauksen kautta ennen kuin write()-järjestelmäkutsu on valmis, vaikka tietoja ei olisi vielä kirjoitettu levylle.

Kaiken kaikkiaan muu toiminta ei ole järkevää, koska viivästetyssä yhdistämisessä joudut silti nappaamaan sivuluetteloiden lukot, kopioimaan tietoja tai säätämään PTE:itä. Näin ollen sanaton johdonmukaisuuden sääntö on ollut voimassa vuodesta 1989, jolloin yhtenäinen puskurivälimuisti ilmestyi SVR4:ään. Tämän seurauksena outojen virheiden löytäminen kiireisissä libmdbx-tuotantoskenaarioissa on ollut paljon työtä. Ensin toistetaan ongelma, sitten tarkistetaan hypoteesit ja tarkistetaan parannukset.

Voimme nyt vakuuttavasti sanoa, että ongelma tunnistettiin, paikannettiin ja poistettiin luotettavasti huolimatta toistoskenaarion monimutkaisuudesta ja spesifisyydestä. Myös ohitusmekanismin toiminnan vahvisti yksi Erigonin (Ethereum) kehittäjistä, hänen tapauksessaan debug-koontiversiossa suojaus laukesi regressiona lisävahvistustarkistuksen vuoksi.

On huomattava, että libmdbx:n laajan käytön yhteydessä työprojekteissa on pohjimmiltaan tärkeämpää varmistaa luotettava toiminta kuin selvittää, onko kyseessä vika vai ominaisuus ja voidaanko tällaiseen johdonmukaisuuteen luottaa. varsinkin etsimättä syitä epäjohdonmukaisuuteen Linux-ytimen sisällä. Joten tässä puhumme sellaisen ongelman korjaamisesta, joka voi vaikuttaa käyttäjiin.

Korjattu EXDEV-virheen regressio (linkki laitteiden välillä) kopioitaessa tietokantaa ilman pakkausta toiseen tiedostojärjestelmään sekä API:n että mdbx_copy-apuohjelman kautta.
Kris Zyp on ottanut käyttöön tuen libmdbx:lle Denossa.

Korjattu MDBX_opt_rp_augment_limit-vaihtoehdon asettaman arvon käsittely kun käsitellään suuria tapahtumia suurissa tietokannoissa. Aiemmin virheen vuoksi voitiin suorittaa tarpeettomia toimia, jotka joskus vaikuttivat suorituskykyyn Ethereum-toteutuksissa (Erigon/Akula/Silkworm) ja Binance Chain -projekteissa.

Monet bugit on korjattu, mukaan lukien C++ API:lle ja korjasi monia koontiongelmia harvinaisissa ja eksoottisissa kokoonpanoissa. Täydellinen luettelo kaikista merkittävistä parannuksista on saatavilla ChangeLogissa.

Lopuksi, jos olet kiinnostunut tietämään siitä lisää, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.