Kompaktse manustatud DBMS-i libmdbx 0.9.1 väljalase

Välja antud raamatukogu versioon 0.9.1 LIMBDBX (MDBX) suure jõudlusega kompaktse manustatud võtmeväärtuste andmebaasi juurutamine. Libmdbx koodi levitatakse litsentsi alusel OpenLDAP avalik litsents.

Praegune versioon on kompromiss kavatsuse vahel välja anda pikaajaline stabiilne versioon 1.0 koos täieliku C++ toega ja vastumeelsus väljalaseid edasi lükata, kuna ei oldud valmis uue C++ API külmutamiseks. Esitatud väljalase on 9-kuulise töö tulemus, mille eesmärk on raamatukogu stabiliseerimine ja selle kasutatavuse parandamine, ning sisaldab ka esialgset versiooni C++ API.

libmdbx teek pole lihtsalt "kahvel", vaid radikaalselt ümber kujundatud järeltulija LMDB — tehingupõhise manustatud DBMS-i klassi „võtmeväärtus”, mis põhineb puu B+ ilma ennetav metsaraie, mis võimaldab mitme lõimega protsessidel töötada konkurentsivõimeliselt ja tõhusalt kohapeal jagatud (võrguvälise) andmebaasiga ilma spetsiaalse serveri protsessita. libmdbx põhimõtteliselt laieneb oma esivanema võimeid, kõrvaldades või leevendades samal ajal puudusi. Samas on libmdbx arendajate sõnul veidi kiirem ja oluliselt töökindlam kui LMDB.

libmdbx soovitab ACID, muudatuste range serialiseerimine ja mitteblokeeriv lugemine lineaarse skaleerimisega protsessori tuumade lõikes. Jõudlustestimise tulemused (paralleelsete lugemis-/otsingupäringute saatmine 1-2-4-8 lõimes 7 füüsilise tuumaga protsessoris i4600-2U 4-lõimelises HyperThreadi režiimis):

Kompaktse manustatud DBMS-i libmdbx 0.9.1 väljalase

Kõige olulisemad erinevused MDBX ja LMDB vahel:

  • Põhimõtteliselt pööratakse rohkem tähelepanu koodi kvaliteedile, API järjepidevusele, testimisele ja automaatsele kontrollile.
  • Oluliselt suurem kontroll töö ajal, alates parameetrite kontrollimisest kuni andmebaasistruktuuride siseauditini.
  • Automaatne tihendamine ja automaatne andmebaasi suuruse haldamine.
  • Üks andmebaasivorming 32-bitiste ja 64-bitiste komplektide jaoks.
  • Proovimahtude hindamine vahemike kaupa (vahemiku päringu hinnang).
  • Tugi kaks korda pikematele võtmetele ja kasutaja poolt valitud andmebaasi lehe suurusele.
  • Utiliit andmebaasi struktuuri terviklikkuse kontrollimiseks koos mõningate taastamisvõimalustega.

Peamised uuendused ja täiustused pärast eelmised uudised versiooni 0.5 kasutuselevõtuga jaanuaris 2020:

  • Kiireks toeks ja küsimustele vastuste saamiseks on loodud avatud süsteem. Telegrami grupp.
  • Kõrvaldatud on üle tosina vea ja puuduse (vt. muudatuste logi).
  • Parandatud on palju kirja- ja kirjavigu ning tehtud on mitmeid kosmeetilisi täiustusi.
  • Testistsenaariume on laiendatud.
  • iOS-i, Androidi, buildroot, musli, uClibc, WSL1 и Vein.
  • C++ API eelvaade avaldati üks päisefail.
  • Sisseehitatud dokumentatsioon Doxygen-vormingus ja automaatne genereerimine Interneti-dokumentatsioon.
  • Pakutakse ühendatud lähtetekstidega arhiivide automaatset genereerimist.
  • Lisatud tugi tehingute ja kursorite ettevalmistamiseks, tehingute kasutajakontekstid ja kursorid.
  • B+puu MVCC hetktõmmistes viiteterviklikkuse kontrollimiseks on rakendatud täiendavaid meetodeid.
  • Lisatud tugi andmebaasi MVCC hetktõmmise kontrollimiseks, millele pääseb juurde mis tahes metalehe kaudu, millel on võimalus taastamiseks lülituda.
  • Rakendatud tugi ühest protsessist andmebaasi taasavamiseks testimise eesmärgil jne.
  • Rakendatud MDBX_NOSUBDIR valiku automaatne töötlemine andmebaasi avamisel.
  • Lisatud funktsioonid täisarvuvõtmete genereerimiseks ujukomaväärtustest ja JavaScripti “universaalsetest” numbritest.
  • Kokku tehti 430 muudatust, mis mõjutasid 93 faili, lisati üle 25 tuhande rea, kustutati üle 8.5 tuhande rea.

Edasine libmdbx arendus keskendub lõplikule C++ API-le, baaskoodi edasisele stabiliseerimisele, teegi kasutatavuse parandamisele ja populaarsete Linuxi distributsioonide pakkimisele. Kavandatud täiustuste hulgas väärib märkimist vormingu võtmete tugi MessagePack.

Allikas: opennet.ru

Lisa kommentaar