Kompakti sulautetun DBMS:n libmdbx 0.9.1 julkaisu

Julkaistu kirjaston versio 0.9.1 libmdbx (MDBX) toteuttaa tehokkaan, kompaktin sulautetun avainarvotietokannan. Libmdbx-koodia jaetaan lisenssillä OpenLDAP julkinen lisenssi.

Nykyinen versio on kompromissi aikomuksesta julkaista pitkäaikainen vakaa versio 1.0 täydellä C++-tuella ja haluttomuus viivästyttää julkaisuja, koska ei ole valmistautunut jäädyttämään uutta C++ API:ta. Esitetty julkaisu on 9 kuukauden työn tulos kirjaston vakauttamiseksi ja käytettävyyden parantamiseksi ja sisältää myös alustavan version C++ API.

libmdbx-kirjasto ei ole vain "haarukka", vaan radikaalisti uudelleen suunniteltu jälkeläinen LMDB — "avainarvo"-luokan sulautettu DBMS, joka perustuu puu B+ без ennakoiva kirjaus, jonka avulla monisäikeiset prosessit voivat toimia kilpailukykyisesti ja tehokkaasti paikallisesti jaetun (ei-verkon) tietokannan kanssa ilman erillistä palvelinprosessia. libmdbx pohjimmiltaan laajenee esi-isänsä kykyjä samalla eliminoiden tai lieventäen haittoja. Samanaikaisesti kehittäjien mukaan libmdbx on hieman nopeampi ja huomattavasti luotettavampi kuin LMDB.

libmdbx ehdottaa ACID, tiukka muutosten sarjoittaminen ja estoton lukeminen lineaarisella skaalauksella prosessoriytimien välillä. Suorituskykytestauksen tulokset (lähettää rinnakkaisia ​​luku-/hakupyyntöjä 1-2-4-8 säikeessä CPU i7-4600U:ssa, jossa on 2 fyysistä ydintä 4-säikeisessä HyperThread-tilassa):

Kompakti sulautetun DBMS:n libmdbx 0.9.1 julkaisu

Tärkeimmät erot MDBX:n ja LMDB:n välillä:

  • Pohjimmiltaan enemmän huomiota kiinnitetään koodin laatuun, API-yhdenmukaisuuteen, testaukseen ja automaattisiin tarkistuksiin.
  • Huomattavasti enemmän hallintaa käytön aikana parametrien tarkistuksesta tietokantarakenteiden sisäiseen tarkastukseen.
  • Automaattinen tiivistys ja automaattinen tietokannan koon hallinta.
  • Yksi tietokantamuoto 32- ja 64-bittisille kokoonpanoille.
  • Näytemäärien estimointi alueittain (aluekyselyn estimointi).
  • Tuki kaksi kertaa pitemmille avaimille ja käyttäjän valittavissa oleville tietokantasivuille.
  • Apuohjelma tietokantarakenteen eheyden tarkistamiseen joillakin palautusominaisuuksilla.

Tärkeimmät innovaatiot ja parannukset jälkeen aiemmat uutiset tammikuussa 0.5 julkaistun version 2020 myötä:

  • Nopeaa tukea ja vastauksia kysymyksiin on luotu avoin järjestelmä. Telegram ryhmä.
  • Yli tusina virhettä ja puutetta on poistettu (katso. muutosloki).
  • Paljon kirjoitus- ja kirjoitusvirheitä on korjattu, ja lukuisia kosmeettisia parannuksia on tehty.
  • Testiskenaarioita on laajennettu.
  • Tuki iOS:lle, Androidille, buildroot, musli, uClibc, WSL1 и Viini.
  • C++ API esikatselu julkaistiin yksi otsikkotiedosto.
  • Sisäänrakennettu dokumentaatio Doxygen-muodossa ja automaattinen generointi Verkkodokumentaatio.
  • Tarjolla on automaattinen arkistojen luominen yhdistetyillä lähdeteksteillä.
  • Lisätty tuki tapahtumien ja kohdistimien valmisteluun, tapahtumien käyttäjäkontekstit ja kursorit.
  • Muita menetelmiä on toteutettu ohjaamaan viittauksen eheyttä B+puun MVCC-tilannekuvissa.
  • Lisätty tuki tietokannan MVCC-vedoksen tarkistamiseen, joka on käytettävissä minkä tahansa metasivun kautta, jolla on mahdollisuus vaihtaa palautusta varten.
  • Toteutettu tuki tietokannan avaamiselle uudelleen yhdestä prosessista testaustarkoituksiin jne.
  • Toteutettu MDBX_NOSUBDIR-vaihtoehdon automaattinen käsittely tietokantaa avattaessa.
  • Lisätty toimintoja kokonaislukuavainten luomiseen liukulukuarvoista ja JavaScriptin "universaalisista" numeroista.
  • Yhteensä tehtiin 430 muutosta, jotka vaikuttivat 93 tiedostoon, yli 25 tuhatta riviä lisättiin, yli 8.5 tuhatta riviä poistettiin.

Libmdbx:n myöhemmässä kehittämisessä keskitytään lopulliseen C++ API:iin, peruskoodin edelleen vakautukseen, kirjaston käytettävyyden parantamiseen ja suosittujen Linux-jakelujen pakkaamiseen. Ehdotettujen parannusten joukossa on syytä huomata muodon avainten tuki MessagePack.

Lähde: opennet.ru

Lisää kommentti