Kandidati i dytë i lëshimit të libmdbx v1.0 pas pesë vitesh zhvillimi.

Bibliotekë libmdbx është një pasardhës i ridizajnuar ndjeshëm i LMDB - një bazë të dhënash me vlera kyçe të ngulitura kompakte me performancë jashtëzakonisht të lartë.
Versioni aktual v0.5 është një version teknik, që shënon përfundimin e çdo përmirësimi dhe kalimin në fazën e testimit dhe stabilizimit përfundimtar publik, me formimin e mëvonshëm të botimit të parë të plotë të bibliotekës.

LMDB është një DBMS e ngulitur transaksionale mjaft e njohur e klasës së vlerës-kyç bazuar në pema B+ pa prerje proaktive, i cili lejon një tufë procesesh shumëthreadësh të punojnë në mënyrë konkurruese dhe jashtëzakonisht efikase me një bazë të dhënash të përbashkët (jo rrjet) në nivel lokal. Nga ana tjetër, MDBX është më i shpejtë dhe më i besueshëm se LMDB, ndërsa libmdbx ruan të gjitha tiparet kryesore të paraardhësit të tij, si p.sh. ACID dhe lexim pa bllokim me shkallëzim linear nëpër bërthamat e CPU-së, dhe gjithashtu shton disa të reja.

Një përshkrim i ndryshimeve dhe përmirësimeve të libmdbx në lidhje me LMDB meriton një artikull të veçantë (është planifikuar të publikohet në Habré dhe Medium). Këtu është e përshtatshme të përmendim më të rëndësishmet dhe më të dukshmet:

  • NĂ« thelb, mĂ« shumĂ« vĂ«mendje i kushtohet cilĂ«sisĂ« sĂ« kodit, testimit dhe kontrolleve automatike.
  • NĂ« mĂ«nyrĂ« tĂ« konsiderueshme mĂ« shumĂ« kontroll gjatĂ« funksionimit, nga kontrolli 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Ă« bazĂ«s sĂ« tĂ« dhĂ«nave.
  • NjĂ« format i vetĂ«m i bazĂ«s sĂ« tĂ« dhĂ«nave pĂ«r asambletĂ« 32-bit dhe 64-bit.
  • VlerĂ«simi i vĂ«llimit tĂ« mostrave sipas diapazoneve (vlerĂ«simi i pyetjes sĂ« rangut).
  • MbĂ«shtetje pĂ«r çelĂ«sat dyfishin e madhĂ«sisĂ« sĂ« petullave dhe madhĂ«sisĂ« sĂ« faqes sĂ« bazĂ«s sĂ« tĂ« dhĂ«nave tĂ« pĂ«rzgjedhur nga pĂ«rdoruesi.

Kandidati i lëshuar i libmdbx është rezultat i vendimit (shih më poshtë) për të ndarë projektet MDBX dhe MithrilDB në gusht 2019. Duke vepruar kështu, libmdbx vendosi të eliminojë borxhin maksimal teknik (të arsyeshëm) dhe të stabilizojë bibliotekën. Në fakt, është bërë 2-3 herë më shumë punë në drejtimin e treguar sesa ishte parashikuar dhe planifikuar fillimisht:

  • MbĂ«shtetje e zbatuar pĂ«r Mac OS dhe platformat e nivelit tĂ« dytĂ«: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. MbĂ«shtetja pĂ«r AIX dhe HP -UX mund tĂ« shtohet sipas nevojĂ«s.
  • Kodi i dezinfektuar me Sanitizer tĂ« Sjelljes sĂ« PapĂ«rcaktuar dhe Sanitizer i Adresave, fiksoi tĂ« gjitha paralajmĂ«rimet e ndĂ«rtimit me -Wpedantic, tĂ« gjitha paralajmĂ«rimet e Coverity Static Analyzer, etj.
  • PĂ«rditĂ«so PĂ«rshkrimet API.
  • PĂ«rzierja e kodit burimor pĂ«r lehtĂ«sinĂ« e futjes.
  • MbĂ«shtetje CMake.
  • MbĂ«shtetje pĂ«r transaksionet e ndĂ«rlidhura.
  • PĂ«rdorimi i bootidit pĂ«r tĂ« pĂ«rcaktuar nĂ«se sistemi operativ Ă«shtĂ« rindezur (fikja e ndyrĂ« e bazĂ«s sĂ« tĂ« dhĂ«nave).
  • NumĂ«rimi nga fundi nĂ« fund i faqeve tĂ« pĂ«rditĂ«suara/tĂ« vjetra dhe informacione tĂ« avancuara rreth transaksioneve.
  • Opsioni MDBX_ACCEDE pĂ«r t'u lidhur me njĂ« bazĂ« tĂ« dhĂ«nash tashmĂ« tĂ« hapur nĂ« modalitetin e pĂ«rputhshĂ«m.
  • PĂ«rdorim FlokĂ«t OFD sipas disponueshmĂ«risĂ« sĂ« tyre.
  • Rezervimi i nxehtĂ« nĂ« tub.
  • Algoritmi i specializuar i optimizuar i renditjes sĂ« brendshme (deri nĂ« 2-3 herĂ« mĂ« i shpejtĂ« se qsort() dhe deri nĂ« 30% mĂ« i shpejtĂ« se std::sort()).
  • Rritja e gjatĂ«sisĂ« maksimale tĂ« çelĂ«sit.
  • Kontroll automatik i leximit pĂ«rpara (strategjia e ruajtjes sĂ« skedarĂ«ve tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave nĂ« memorie).
  • Kompaktizimi automatik mĂ« agresiv dhe mĂ« i shpejtĂ«.
  • NjĂ« strategji mĂ« optimale pĂ«r bashkimin e faqeve tĂ« pemĂ«s B+.
  • Kontrolli i sistemeve tĂ« skedarĂ«ve jo-lokalĂ« (NFS, Samba, etj.) pĂ«r tĂ« parandaluar prishjen e bazĂ«s sĂ« tĂ« dhĂ«nave pĂ«r shkak tĂ« keqpĂ«rdorimit.
  • Komplet testimi i zgjeruar.

Zhvillimi i versionit "tjetër" të libmdbx do të vazhdojë si një projekt i veçantë MithrilDB, ndërsa vektori i zhvillimit të versionit "aktual" të MDBX ka për qëllim ngrirjen dhe stabilizimin e grupit të veçorive. Ky vendim është marrë për tre arsye:

  • PapajtueshmĂ«ri totale: MithrilDB kĂ«rkon njĂ« format skedari tĂ« ndryshĂ«m (tĂ« papajtueshĂ«m) tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave dhe njĂ« API tĂ« ndryshme (tĂ« papajtueshme) pĂ«r tĂ« zbatuar tĂ« gjitha veçoritĂ« e planifikuara.
  • Kodi i ri burimor: Kodi burimor i MithrilDB Ă«shtĂ« i pavarur nga licenca LMDB, dhe vetĂ« projekti Ă«shtĂ« planifikuar tĂ« publikohet nĂ«n njĂ« licencĂ« tjetĂ«r (miratuar nga OSE NESE liçensĂ« Apache 2.0Dhe jo Fondacioni OpenLDAP).
  • Ndarja shmang konfuzionin e mundshĂ«m, sjell mĂ« shumĂ« siguri dhe siguron pavarĂ«sinĂ« e rrugĂ«s sĂ« zhvillimit tĂ« projekteve.

MithrilDB, si MDBX, bazohet gjithashtu në pema B+ dhe gjithashtu do të karakterizohet nga performanca jashtëzakonisht e lartë, duke eliminuar një sërë mangësish themelore të MDBX dhe LMDB. Në veçanti, do të eliminohet problemi i "leximeve të gjata", i cili manifestohet si "ënjtje" e bazës së të dhënave për faktin se përpunimi i plehrave bllokohet nga transaksionet e leximit të gjatë. Karakteristikat e reja të MithrilDB përfshijnë:

  • mbĂ«shtetje pĂ«r vendosjen e bazĂ«s sĂ« tĂ« dhĂ«nave nĂ« disa media heterogjene: HDD, SSD dhe memorie jo tĂ« paqĂ«ndrueshme.
  • strategjitĂ« optimale pĂ«r tĂ« dhĂ«na "tĂ« vlefshme" dhe "me vlerĂ« tĂ« ulĂ«t", pĂ«r tĂ« dhĂ«na "tĂ« nxehta", "tĂ« ngrohta" dhe "tĂ« ftohta".
  • duke pĂ«rdorur pemĂ«n Merkle pĂ«r tĂ« kontrolluar integritetin e bazĂ«s sĂ« tĂ« dhĂ«nave.
  • pĂ«rdorimi opsional i WAL dhe performanca dukshĂ«m mĂ« e mirĂ« nĂ« skenarĂ«t me intensitet tĂ« shkruar me garanci pĂ«r integritetin e tĂ« dhĂ«nave.
  • dembel catch-up angazhohet nĂ« disqe.

Burimi: linux.org.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster