PÄc trÄ«s mÄneÅ”u izstrÄdes tika izlaists libmdbx 0.10.0 (MDBX), ievieÅ”ot augstas veiktspÄjas, kompaktu iegulto atslÄgu vÄrtÄ«bu datu bÄzi. Libmdbx kods ir licencÄts saskaÅÄ ar OpenLDAP publisko licenci. libmdbx ir dziļa LMDB DBVS pÄrstrÄde, un, pÄc izstrÄdÄtÄju domÄm, tÄ ir pÄrÄka par savu priekÅ”teci uzticamÄ«bas, iespÄju diapazona un veiktspÄjas ziÅÄ. Tiek norÄdÄ«ts, ka libmdbx ir lÄ«dz 20% ÄtrÄks nekÄ LMDB CRUD scenÄrijos un lÄ«dz 30% ÄtrÄks, ja iekÅ”ÄjÄs kontroles ir atspÄjotas, veidojot libmdbx lÄ«menÄ«, kas ir salÄ«dzinÄms ar LMDB.
Libmdbx piedÄvÄ ACID, spÄcÄ«gu izmaiÅu serializÄciju un nebloÄ·ÄjoÅ”us nolasÄ«jumus, kas lineÄri mÄrogojas visos CPU kodolos. Libmdbx liela uzmanÄ«ba tiek pievÄrsta koda kvalitÄtei, stabilai API darbÄ«bai, testÄÅ”anai un automÄtiskajÄm pÄrbaudÄm. Atbalsta automÄtisko sablÄ«vÄÅ”anu, automÄtisku datu bÄzes lieluma pÄrvaldÄ«bu, vienotu datu bÄzes formÄtu 32 bitu un 64 bitu komplektiem un diapazona vaicÄjumu novÄrtÄÅ”anu. Tiek nodroÅ”inÄta utilÄ«ta datu bÄzes struktÅ«ras integritÄtes pÄrbaudei ar dažÄm atkopÅ”anas iespÄjÄm. KopÅ” 2016. gada projektu finansÄ Positive Technologies, un tas tiek izmantots tÄ produktos kopÅ” 2017. gada, un ASV valdÄ«bas noteiktajÄm sankcijÄm pret Positive Technologies nav manÄmas ietekmes.
KopÅ” pÄdÄjÄs izlaiÅ”anas pievienoti galvenie jauninÄjumi, uzlabojumi un labojumi:
- Ir pieejams Mahlona E. Smita Ruby iesÄjums un Noela Kunces Python iesÄjumu izmÄÄ£inÄjuma versija, un ir atjauninÄti Alekseja Å arova iesÄjumi GoLang.
- RežīmÄ āMDBX_WRITEMAPā, kad datu bÄzes dati tiek mainÄ«ti tieÅ”i RAM, tiek ieviesta mainÄ«to datu bÄzes lapu ācaurspÄ«dÄ«ga izlieÅ”anaā uz diska. Tagad, pÄc katras darbÄ«bas pabeigÅ”anas, Å”Ädas lapas uzreiz ir pilnÄ«bÄ gatavas ierakstÄ«Å”anai diskÄ un OS kodols var patstÄvÄ«gi izskalot mainÄ«tÄs lapas diskÄ, un darÄ«juma veikÅ”anai tÄs nav jÄmaina. TÄ rezultÄtÄ noslogotos scenÄrijos ar nepietiekamu operatÄ«vo atmiÅu diska darbÄ«bu apjomu var samazinÄt lÄ«dz pat 2 reizÄm.
- Ieviesta sen neizmantotu modificÄtu lapu Änu kopiju izlikÅ”ana, dodot priekÅ”roku lapu izlikÅ”anai ar lielÄm/garÄm vÄrtÄ«bÄm, kuras lielÄkajÄ daÄ¼Ä gadÄ«jumu tiek mainÄ«tas tikai vienu reizi vienÄ darÄ«jumÄ. RezultÄts ir samazinÄta diska trafika un uzlabota veiktspÄja scenÄrijos ar ļoti lieliem darÄ«jumiem.
- Ieviests āviedaisā režīms lapu sadalÄ«Å”anai, ievietojot atslÄgas. Tagad, ievietojot sakÄrtotas secÄ«bas, lapas tiek automÄtiski pilnÄ«bÄ aizpildÄ«tas, un citos gadÄ«jumos koks ir optimÄlÄk lÄ«dzsvarots. LÄ«dz ar to caurmÄrÄ datu bÄzes lapas tiek aizpildÄ«tas optimÄlÄk un B-koks ir lÄ«dzsvarotÄks, kas pozitÄ«vi ietekmÄ veiktspÄju.
- Ir pievienota operÄciju statistika ar lapÄm, kas ļauj precÄ«zi novÄrtÄt operÄciju modificÄÅ”anas ar datu bÄzi izmaksas.
- Ir novÄrstas vairÄk nekÄ ducis kļūdu un kļūdu, tostarp: problÄmas ar veidoÅ”anu, izmantojot MinGW, izmantojot `std::filesystem::path` operÄtÄjsistÄmÄ iOS <= 13.0, veidoÅ”anu, kuru mÄrÄ·auditorija tiek atlasÄ«ta vecÄkÄm Windows versijÄm utt.
- KopumÄ 200 failos veiktas vairÄk nekÄ 66 izmaiÅas, pievienotas ~6500 rindas, dzÄstas ~4500.
AtseviŔķi es vÄlos atzÄ«mÄt Turbo-Geth projekta (Go-Ethereum turbo dakÅ”a) libmdbx izvÄli kÄ jaunu krÄtuves aizmuguri, kÄ arÄ« pateikties projekta komandai (jo Ä«paÅ”i Aleksejam Å arovam, Artjomam VorotÅikovam un Aleksejam Akhunovam) par viÅu darbu. lieliska palÄ«dzÄ«ba testÄÅ”anÄ ÄrkÄrtÄjos lietoÅ”anas gadÄ«jumos. Jo Ä«paÅ”i tika atklÄts un novÄrsts priekÅ”lasÄ«Å”anas/keÅ”atmiÅas vadÄ«bas defekts, kas izraisÄ«ja veiktspÄjas pasliktinÄÅ”anos grÅ«ti reproducÄjamos scenÄrijos ar lielÄm datu bÄzÄm.
Avots: opennet.ru