versioon 0.9.1 raamatukogust (MDBX) rakenduses, mis sisaldab kõrge jõudlusega, kompaktset, sisselogitavat võtme-väärtuse andmebaasi. Kood libmdbx on litsentseeritud .
Praegune versioon on kompromiss kava vahel vabastada pikaajaline stabiilne versioon 1.0, mida toetab täielikult C++, ja soovimatu lükata release edasi uue C++ API külmutamise valmiduse puudumise tõttu. Esitatud väljaanne on 9-kuulise töö tulemus, mille eesmärk on stabiliseerida raamatukogu ja suurendada selle kasutusmugavust, ning sisaldab ka eelversiooni .
Raamatukogu libmdbx ei ole lihtsalt 'fork', vaid radikaalselt ümber disainitud järeltulija — tehinguline sisselogitav andmebaasi haldussüsteem, mis põhineb ilma , mis võimaldab mitme lõime protsessidel samaaegselt ja efektiivselt töötada kohalikult jagatud (mitte võrgu) andmebaasi ilma pühendatud serveriprotsessita. Libmdbx põhimõtteliselt eemaldades ta puudusi või leevendades neid, usuvad arendajad, et libmdbx on veidi kiirem ja oluliselt usaldusväärsem kui LMDB.
libmdbx pakub , ranget muudatuste seriaalimist ja mittesulgevust lugemist, mis skaleerub lineaarselt CPU tuumade kaupa. Tulemuslikkuse testimise tulemused (paralleelsete lugemisotsingute saatmine 1-2-4-8 voogudes CPU i7-4600U puhul koos 2 füüsilise tuumaga nelja juhi HyperThread režiimis):
Kõige olulisemad erinevused MDBX ja LMDB vahel:
- Pööratakse põhjalikult rohkem tähelepanu koodi kvaliteedile, API 'langemiskindlusele', testimisele ja automaatsetele kontrollidele.
- Oluliselt rohkem kontrolli töö käigus, alates parameetrite kontrollimisest kuni andmebaasi struktuuride sisemise auditini.
- Automaatne kompaktimine ja automaatne andmebaasi suuruse juhtimine.
- Ühtne andmebaasi formaat 32-bitiste ja 64-bitiste kogumiks.
- Valimite mahtude hindamine vahemike järgi (range query estimation).
- Kaks korda pikemate võtmete tugi ja kasutaja määratud andmebaasi lehe suurus.
- Andmebaasi struktuuri terviklikkuse kontrollimise utiliit, millel on mõned taastamisvõimalused.
Peamised uuendused ja täiustused pärast versiooni 0.5 esitlemisega jaanuaris 2020:
- Kiireks toeks ja küsimustele vastamiseks on loodud avatud .
- On kõrvaldatud rohkem kui kümme viga ja puudust (vt. ).
- Parandatud hulk trükivigu ja õigekirjavigu, mitmeid kosmeetilisi täiustusi.
- Teststsenaariumid on laienenud.
- On rakendatud toetus iOS-i, Androidi, , , , ja .
- Esitleti C++ API eelversiooni .
- Sisseehitatud dokumentatsioon on vormindatud Doxygeni formaadis ja automaatne genereerimine .
- On tagatud automaatne arhiivide loomine amalgameeritud lähtekoodidega.
- Lisatud on tugi tehingute ja kursorite ettevalmistamiseks, kasutaja kontekstide jaoks tehingute ja kursorite puhul.
- Rakendatud on täiendavad meetodid seoste terviklikkuse kontrollimiseks MVCC-piltides B+tree.
- Lisatud on toetus MVCC-db pildi kontrollimiseks, mis on saadaval igasuguse meta-lehe kaudu taastamise võimalusega.
- On rakendatud toetus andmebaasi korduva avamise toetamiseks ühest protsessist testimise eesmärkidel jne.
- MDBX_NOSUBDIR valiku automaatne töötlemine on andmebaasi avamisel rakendatud.
- Lisatud funktsioonid täisarvuliste võtmete genereerimiseks ujukomaarvudest ja JavaScripti "universaalsetest" numbritest.
- Kokku on tehtud 430 muudatust, mis hõlmavad 93 faili, lisatud üle 25 000 rea, kustutatud üle 8 500 rea.
Libmdbx edasine arendus keskendub lõpliku C++ API loomisele, baaskoodi stabiliseerimisele, raamatukogu kasutusmugavuse parandamisele ning pakettide koostamisele tuntud Linuxi distributsioonide jaoks. Eeldatavate täiustuste hulgas on võtmete toetamine vormingus. .
Allikas: opennet.ru
