Suorituskykyisen sulautetun DBMS:n libmdbx 0.11.3 julkaisu

Libmdbx 0.11.3 (MDBX) -kirjasto julkaistiin tehokkaan kompaktin sulautetun avainarvotietokannan avulla. Libmdbx-koodi on lisensoitu OpenLDAP Public License -lisenssillä. Kaikki nykyiset käyttöjärjestelmät ja arkkitehtuurit ovat tuettuja, samoin kuin venäläinen Elbrus 2000. Vuoden 2021 lopussa libmdbx:ää käytetään tallennustaustana kahdessa nopeimmassa Ethereum-asiakkaassa - Erigonissa ja uudessa "Sharkissa", jotka saatavilla olevien tietojen mukaan tiedot, on tehokkain Ethereum-asiakas.

Historiallisesti libmdbx on LMDB DBMS:n syvällinen uudistus, ja se ylittää edeltäjänsä luotettavuuden, ominaisuuksien ja suorituskyvyn suhteen. LMDB:hen verrattuna libmdbx painottaa paljon koodin laatua, API-vakautta, testausta ja automaattisia tarkistuksia. Tietokantarakenteen eheyden tarkistamiseen tarkoitettu apuohjelma toimitetaan joidenkin palautusvaihtoehtojen kanssa.

Teknologiallisesti libmdbx tarjoaa ACID:n, voimakkaan muutosserialisoinnin ja estämättömän lukemisen lineaarisella skaalauksella prosessoriytimien välillä. Automaattinen tiivistäminen, automaattinen tietokannan koon hallinta ja aluekyselyn arviointi ovat tuettuja. Projektia on vuodesta 2016 lähtien rahoittanut Positive Technologies, ja sitä on käytetty sen tuotteissa vuodesta 2017 lähtien.

libmdbx tarjoaa C++ API:n sekä harrastajien tukemat kielisidokset Rustille, Haskellille, Pythonille, NodeJS:lle, Rubylle, Golle ja Nimille.

Tärkeimmät innovaatiot, parannukset ja korjaukset lisätty edellisen uutisen jälkeen 11. lokakuuta:

  • C++ API katsotaan käyttövalmiiksi.
  • GC-tietojen päivitystä suuria tapahtumia tehtäessä on nopeutettu merkittävästi, mikä on erityisen tärkeää käytettäessä libmdbx:ää Ethereum-ekosysteemissä.
  • Tietokantamuodon sisäinen allekirjoitus on muutettu tukemaan automaattista päivitystä, joka on täysin läpinäkyvä käyttäjille. Tämän avulla voit poistaa väärät positiiviset viestit tietokannan vioittumisesta, kun kirjaston vanhentuneita versioita käytetään nykyisten versioiden tallentamien tapahtumien lukemiseen.
  • Lisätty funktiot mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() ja mdbx_env_get_syncbytes(). Lisätty tuki MDBX_SET_UPPERBOUND-toiminnolle.
  • Kaikki varoitukset rakennettaessa kaikilla tuetuilla kääntäjillä C++ 11/14/17/20 -tiloissa on poistettu. Yhteensopivuus vanhojen kääntäjien kanssa varmistetaan: clang alkaen 3.9, gcc alkaen 4.8, mukaan lukien kokoonpano käyttämällä cdevtoolset-9 CentOS/RHEL 7:lle.
  • Korjattu metasivuristiriidan mahdollisuus manuaalisen vaihtamisen jälkeen tietylle metasivulle mdbx_chk-apuohjelmalla.
  • Korjattu odottamaton MDBX_PROBLEM-virhe, joka palautetaan, kun vanhoja metasivuja korvataan.
  • Korjattu MDBX_NOTFOUND-palautus, jos vastaavuus on epätarkka käsiteltäessä MDBX_GET_BOTH-pyyntöä.
  • Korjattu käännösvirhe Linuxissa, koska otsikkotiedostot puuttuivat ytimen liitäntöjen kuvauksista.
  • Korjattu ristiriita MDBX_SHRINK_ALLOWED sisäisen lipun ja MDBX_ACCEDE-vaihtoehdon välillä.
  • Useat tarpeettomat vahvistustarkastukset on poistettu.
  • Korjattu odottamaton MDBX_RESULT_TRUE palautus mdbx_env_set_option()-funktiosta.
  • Yhteensä yli 90 muutosta tehtiin 25 tiedostoon, ~1300 riviä lisättiin, ~600 poistettiin.

Lähde: opennet.ru

Lisää kommentti