versioon 0.9.1 raamatukogust (MDBX), mis sisaldab kÔrge jÔudluse ja kompaktsusega sisseehitatud vÔtme-vÀÀrtuse andmebaasi. Raamatukood libmdbx levitatakse litsentsi alusel .
Praegune versioon on kompromiss sooviga vĂ€lja anda pikaajaline stabiilne versioon 1.0, millel on tĂ€ielik C++ tugi, ja soovimatus edasi lĂŒkata vĂ€ljalaskeid uue C++ API valmiduse puudumise tĂ”ttu. Esitatud vĂ€ljaanne on 9 kuu töö tulemus, mille eesmĂ€rk on raamatukogu stabiliseerimine ja selle kasutamise mugavuse suurendamine ning sisaldab esialgset versiooni .
Raamatukogu libmdbx ei ole lihtsalt 'fork', vaid kardinaalselt ĂŒmber töödatud jĂ€reltulija â tehingupsĂŒsteem, mis on sisseehitatud vĂ”tme-vÀÀrtuse andmebaasis, pĂ”hinedes ilma , mis vĂ”imaldab mitme lĂ”ime protsessidel konkurentsituks ja efektiivseks töötamiseks kohaliku jagatud (mitte vĂ”rgus) andmebaasiga ilma eraldiseisva serveri protsessita. Libmdbx on pĂ”himĂ”tteliselt oma esivanema vĂ”imeid, samas kĂ”rvaldades vĂ”i leevendades puudusi. Samuti usuvad arendajad, et libmdbx on veidi kiiremini ja oluliselt usaldusvÀÀrsem kui LMDB.
libmdbx pakub , ranget muudatuste serialiseerimist ja mitteblokeerivat lugemist, mis skaleerub lineaarselt CPU tuumadele. JĂ”udluse testimise tulemused (paralleelse lugemisotsingute saatmine 1-2-4-8 lĂ”imes CPU i7-4600U 2 fĂŒĂŒsilise tuumaga 4 lĂ”ime HyperThread reĆŸiimis):
Olulised erinevused MDBX-i ja LMDB vahel:
- PÔhimÔtteliselt pööratakse rohkem tÀhelepanu koodikvaliteedile, API 'katkestamatusele', testimisele ja automaatsetele kontrollidele.
- Oluliselt rohkem kontrolli töö kÀigus, alustades parameetrite kontrollimisest kuni andmebaasi struktuuride sisemiste audititeni.
- Automaatne kompaktimine ja automaatne andmebaasi suuruse haldamine.
- Ăksne andmebaasi formaat 32-bitiste ja 64-bitiste kogumite jaoks.
- KĂŒsimuste osas on vahemiku pĂ€ringute hindamine.
- Toetatakse kahe korda pikemaid vÔtmeid ja kasutajate valida andmebaasi lehe suurust.
- Andmebaasi struktuuri terviklikkuse kontrollimise tööriist koos mÔningate taastamisvÔimalustega.
Peamised uuendused ja parandused pÀrast versiooni 0.5 esitlemine jaanuaris 2020:
- Kiireks toeks ja kĂŒsimustele vastamiseks on loodud avatud .
- Eemaldatud rohkem kui tosin viga ja puudust (vt. ).
- Parandatud hulgaliselt trĂŒkivigu ja Ă”igekirja vigu, mitmeid kosmeetilisi tĂ€iustusi.
- Teststsenaariume on laiendatud.
- Toetatakse iOS-i, Androidi, , , , ja .
- C++ API eelnÔu on esitatud .
- Sisseehitatud dokumentatsioon on vormindatud Doxygensi ja automaatse genereerimisega .
- Automaatne arhiivide loomine on tagatud kompaktselt koondatud allikatekstidega.
- Lisatud on tugi tehingute ja kursorite ettevalmistamiseks, kasutaja kontekstide jaoks tehingutes ja kursorites.
- Lisa meetodid viidete terviklikkuse kontrollimiseks on rakendatud MVCC-piltides B+puus.
- MVCC-pildi DB kontrollimise tugi on lisatud, mis on saadaval igas meta-lehes taastamise lĂŒliti vĂ”imalusega.
- Toetatakse DB uuesti avamist ĂŒhest protsessist testimise ja sarnaste eesmĂ€rkide jaoks.
- MDBX_NOSUBDIR valiku automaatne töötlemine on rakendatud DB avamisel.
- TĂ€iendavad funktsioonid tĂ€isarvuliste vĂ”tmete genereerimiseks ujukpunktide vÀÀrtustest ja JavaScripti 'ĂŒldsest' numbrist on lisatud.
- Kokku on tehtud 430 muudatust, mis on mĂ”jutanud 93 faili, lisatud on ĂŒle 25 000 rida, kustutatud on ĂŒle 8,5 tuhande rida.
Edasine libmdbx arendamine keskendub lÔpliku C++ API kujundamisele, pÔhikoode stabiliseerimisele, raamatukogu kasutusmugavuse tÔstmisele ning pakettide koostamisele populaarsetele Linuxi distributsioonidele. Eeldatavatest tÀiustustest tasub mÀrkida vÔtmete toe lisamist formaadis .
Allikas: opennet.ru
