për testimin e kandidatit të dytë në lëshimet e bibliotekës me implementimin e një baze të dhënash të integruar, të kompresuar dhe të klasës çelës-vlerë me performancë të lartë. Versioni aktual (0.5) është një lëshim teknik që shënon përfundimin e përmirësimeve dhe kalimin në fazën e testimit final publik dhe stabilizimit, me formimin e mëtejshëm të lëshimit të parë të plotë të bibliotekës. Kodi libmdbx nën licencën OpenLDAP Public License.
Biblioteka MDBX Ă«shtĂ« njĂ« ndryshim i konsiderueshĂ«m nga â njĂ« DBMS tĂ« integruar nĂ« transaksion nĂ« klasĂ«n çelĂ«s-vlerĂ«, e bazuar nĂ« pa , qĂ« lejon procese tĂ« shumĂ«fishta tĂ« funksionojnĂ« konkurruese dhe efektivisht me njĂ« DB tĂ« ndarĂ« lokal (jo rrjet). NĂ« tĂ« njĂ«jtĂ«n kohĂ«, MDBX Ă«shtĂ« mĂ« i shpejtĂ« dhe mĂ« i besueshĂ«m se LMDB, dhe gjithashtu ruan tĂ« gjitha mundĂ«sitĂ« kryesore tĂ« paraardhĂ«sit tĂ« tij, siç janĂ« dhe leximi pa bllokim me shkallĂ«zim linear sipas bĂ«rthamave CPU.
Dallimet më të rëndësishme të MDBX në krahasim me LMDB:
- Dhe më shumë vëmendje i është kushtuar cilësisë së kodit, testimit dhe verifikimeve automatike.
- Kontrolli është dukshëm më i madh gjatë punës, duke filluar nga verifikimi i parametrave deri te auditimi i brendshëm i strukturave të bazës së të dhënave.
- Kompaktifikimi automatik dhe menaxhimi automatik i madhësisë së DB.
- Formati i vetëm i DB për përmbledhjet 32-bit dhe 64-bit.
- Vlerësimi i volumit të mostrave sipas intervaleve (vlerësimi i pyetjeve në interval).
- Mbështetje për çelësa me dy herë më shumë për blina dhe madhësinë e DB të zgjedhur nga përdoruesi.
Kandidati i lëshimeve të libmdbx është rezultat i vendimit të marrë në gusht 2019 për të ndarë projektet MDBX dhe MithrilDB. Në të njëjtën kohë, në libmdbx u vendos të eliminohej (racionalisht) maksimumi i borxhit teknik dhe të stabilizohej biblioteka. Në fakt, në drejtimin e caktuar është bërë 2-3 herë më shumë sesa ishte vlerësuar dhe planifikuar në fillim:
- Support for macOS and "second-tier" platforms has been implemented: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Support for AIX and HP-UX can be added if necessary.
- Code sanitization has been carried out using Undefined Behavior Sanitizer and Address Sanitizer, all warnings during compilation with "-Wpedantic" have been resolved, as well as warnings from Coverity Static Analyzer, etc.
- Aktualizimi .
- Shkrirja (amalgame) e kodit burimor për lehtësimin e integrimit.
- Mbështetje CMake.
- Mbështetje për transaksione të thelluara.
- Përdorimi i bootid për të përcaktuar faktin e rilindjes së OS (ndërprerje të papritur të DB).
- Numërimi i vazhdueshëm i faqeve të reja të azhurnuara/vjetra dhe informacione të zgjeruara në lidhje me transaksionet.
- Mundësia MDBX_ACCEDE për lidhje me një DB të hapur tashmë në modalitetin e përputhshmërisë.
- Përdorimi kur janë të aksesueshme.
- Kopje rezervë të nxehtë në pipe.
- A specialized optimized algorithm for internal sorting (2-3 times faster than "qsort()" and up to 30% faster than "std::sort()").
- Rritja e gjatësi maksimale të çelësit.
- Menaxhimi automatik i leximeve përpara (strategjia e memorizimit të skedarit DB në memorie).
- Kompaktifikimi automatik më agresiv dhe më i shpejtë.
- Strategji më optimale për bashkimin e faqeve të pemës B+.
- Kontrolli i sistemeve të skedarëve që nuk janë lokale (NFS, Samba etj.) për të parandaluar dëmtimin e DB-së në përdorim të gabuar.
- Shtuar grupi i testeve.
Zhvillimi i versionit të "në vijim" të libmdbx do të vazhdojë në kuadër të një projekti të veçantë. , ndërsa drejtimi i zhvillimit të versionit "aktual" të MDBX është orientuar drejt ngrirjes së grupit të mundësive dhe stabilizimit. Ky vendim është marrë për tre arsye:
- Përshtatshmëri e plotë e papërputhshme: për të realizuar të gjitha mundësitë e planifikuara në MithrilDB kërkohet një format tjetër skedarësh DB (i papërputhshëm) dhe një API tjetër (i papërputhshëm).
- Kodi i ri burimor: për kodin burimor të MithrilDB është garantuar pavarësia licencore nga LMDB dhe projekti vetë planifikohet të publikohet nën një licencë tjetër (të miratuar nga licenca Apache 2.0, dhe jo ).
- Ndarja lejon shmangien e ngatërrimeve të mundshme, duke sjellë më shumë sqarim dhe duke siguruar pavarësinë e rrugës së zhvillimit të projekteve.
MithrilDB ashtu si MDBX, gjithashtu bazohet nĂ« dhe gjithashtu do tĂ« ketĂ« njĂ« performancĂ« maksimale tĂ« lartĂ«, ndĂ«rsa do tĂ« eliminojĂ« njĂ« sĂ«rĂ« tĂ« meta thelbĂ«sore tĂ« MDBX dhe LMDB. NĂ« veçanti, do tĂ« zgjidhet problemi i âleximeve tĂ« gjataâ, i cili manifeston si âshkarkimâ i DB-sĂ« pĂ«r shkak se pĂ«rpunimi i mbeturinave bllokohet nga transaksionet e gjatĂ« lexuese. NĂ« mesin e mundĂ«sive tĂ« reja tĂ« MithrilDB, duhet theksuar:
- Mbështetje për vendosjen e DB-së në disa media të ndryshme: HDD, SSD dhe memorie jo-efikase.
- Optimal strategies for "valuable" and "less valuable", for "hot", "warm", and "cold" data.
- Përdorimi i Merkle tree për kontrollin e integritetit të DB-së.
- Përdorimi opsional i WAL dhe një produktivitet shumë më i lartë në skenarët me shkrim intensiv dhe garancitë për integritetin e të dhënave.
- Korrigjimi i lenjave të të dhënave në disqe.
Burimi: opennet.ru
