Pas pesë vjetësh zhvillim, është publikuar kandidati i dytë për lëshim të libmdbx 1.0.

I disponueshëm për testimin e kandidatit të dytë për publikim të bibliotekës libmdbx me zbatimin e një baze të dhënash të integrueshme, kompakte dhe me performancë të lartë të klasës çelës-vlerë. Versioni aktual (0.5) është një publikim teknik, që shënon përfundimin e çdo përpunimi të mëtejshëm dhe kalimin në fazën e testimit publik final dhe stabilizimit, me krijimin pasues të publikimit të parë të plotë të bibliotekës. Kodi i libmdbx shpërndahet nën licencën OpenLDAP Public License.

Biblioteka MDBX Ă«shtĂ« njĂ« degĂ«zim i ripunuar ndjeshĂ«m nga LMDB — njĂ« SGBD transaksionale e integrueshme e klasĂ«s «çelĂ«s-vlerë» e bazuar nĂ« pemĂ«n B+ pa journalim paraprak, e cila u mundĂ«son proceseve shumĂ«fijĂ«she tĂ« punojnĂ« nĂ« mĂ«nyrĂ« konkurruese dhe efikase me njĂ« BD tĂ« ndarĂ« lokalisht (jo nĂ« rrjet). Nga ana tjetĂ«r, MDBX Ă«shtĂ« mĂ« e shpejtĂ« dhe mĂ« e besueshme se LMDB, duke ruajtur njĂ«kohĂ«sisht tĂ« gjitha mundĂ«sitĂ« kryesore tĂ« paraardhĂ«ses sĂ« saj, si p.sh. ACID dhe lexim pa bllokim me shkallĂ«zim linear sipas bĂ«rthamave tĂ« CPU.

Dallimet më të rëndësishme të MDBX në krahasim me LMDB:

  • I kushtohet dukshĂ«m mĂ« shumĂ« vĂ«mendje cilĂ«sisĂ« sĂ« kodit, testimit dhe kontrolleve automatike.
  • Ka ndjeshĂ«m mĂ« shumĂ« kontroll gjatĂ« funksionimit, duke nisur nga verifikimi i parametrave e deri te auditimi i brendshĂ«m i strukturave tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave.
  • Auto-kompaktim dhe menaxhim automatik i madhĂ«sisĂ« sĂ« BD-sĂ«.
  • Format unik i BD-sĂ« pĂ«r build-et 32-bit dhe 64-bit.
  • VlerĂ«simi i vĂ«llimit tĂ« pĂ«rzgjedhjeve sipas intervaleve (range query estimation).
  • MbĂ«shtetje pĂ«r çelĂ«sa me gjatĂ«si dy herĂ« mĂ« tĂ« madhe dhe madhĂ«si tĂ« faqes sĂ« BD-sĂ« tĂ« zgjedhshme nga pĂ«rdoruesi.

Kandidati për publikim i libmdbx i publikuar është rezultat i vendimit të marrë në gusht 2019 për ndarjen e projekteve MDBX dhe MithrilDB. Në të njëjtën kohë, në libmdbx u vendos të eliminohej maksimumi (i arsyeshëm) i borxhit teknik dhe të stabilizohej biblioteka. Në praktikë, në këtë drejtim është bërë 2-3 herë më shumë sesa ishte vlerësuar dhe planifikuar fillimisht:

  • ËshtĂ« zbatuar mbĂ«shtetja pĂ«r macOS dhe platformat «tĂ« nivelit tĂ« dytë»: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. MbĂ«shtetja pĂ«r AIX dhe HP-UX mund tĂ« shtohet nĂ«se Ă«shtĂ« e nevojshme.
  • ËshtĂ« kryer pastrimi i kodit me ndihmĂ«n e Undefined Behavior Sanitizer dhe Address Sanitizer, janĂ« eliminuar tĂ« gjitha paralajmĂ«rimet gjatĂ« kompilimit me «-Wpedantic», tĂ« gjitha paralajmĂ«rimet e Coverity Static Analyzer, etj.
  • PĂ«rditĂ«simi i pĂ«rshkrimit tĂ« API.
  • Bashkimi (amalgamimi) i kodit burimor pĂ«r lehtĂ«si integrimi.
  • MbĂ«shtetje pĂ«r CMake.
  • PĂ«rkrahja e transaksioneve tĂ« ndĂ«rlidhura.
  • PĂ«rdorimi i bootid pĂ«r tĂ« pĂ«rcaktuar faktin e rinisjes sĂ« OS (ndalimit jo tĂ« pastĂ«r tĂ« BD).
  • NumĂ«rim i plotĂ« i faqeve tĂ« pĂ«rditĂ«suara/tĂ« vjetra dhe informacion i zgjeruar mbi transaksionet.
  • Opsioni MDBX_ACCEDE pĂ«r t'u lidhur me njĂ« BD tashmĂ« tĂ« hapur nĂ« modalitet tĂ« pĂ«rputhshĂ«m.
  • PĂ«rdorimi bllokimeve OFD kur ato janĂ« tĂ« disponueshme.
  • Kopjim rezervĂ« i nxehtĂ« nĂ« pipe.
  • AlgoritĂ«m i specializuar dhe i optimizuar i renditjes sĂ« brendshme (deri 2-3 herĂ« mĂ« i shpejtĂ« se «qsort()» dhe deri 30% mĂ« i shpejtĂ« se «std::sort()»).
  • ËshtĂ« rritur gjatĂ«sia maksimale e çelĂ«sit.
  • Menaxhim automatik i read ahead (strategjisĂ« sĂ« cache-imit tĂ« skedarit tĂ« BD nĂ« memorie).
  • Auto-kompaktim mĂ« agresiv dhe mĂ« i shpejtĂ«.
  • Strategji mĂ« optimale pĂ«r bashkimin e faqeve tĂ« pemĂ«s B+.
  • Kontroll i sistemeve tĂ« skedarĂ«ve jo lokale (NFS, Samba etj.) pĂ«r tĂ« parandaluar dĂ«mtimin e BD nga pĂ«rdorimi i pasaktĂ«.
  • ËshtĂ« zgjeruar grupi i testeve.

Zhvillimi i versionit «të ardhshëm» të libmdbx do të vazhdojë në kuadër të një projekti të veçantë MithrilDB, ndërsa drejtimi i zhvillimit të versionit «aktual» të MDBX synon ngrirjen e grupit të funksionaliteteve dhe stabilizimin. Ky vendim është marrë për tre arsye:

  • PapajtueshmĂ«ri e plotĂ«: pĂ«r tĂ« zbatuar tĂ« gjitha funksionalitetet e planifikuara nĂ« MithrilDB kĂ«rkohet njĂ« format tjetĂ«r (i papajtueshĂ«m) i skedarĂ«ve tĂ« BD dhe njĂ« API tjetĂ«r (i papajtueshĂ«m).
  • Kod burimor i ri: pĂ«r kodin burimor tĂ« MithrilDB Ă«shtĂ« siguruar pavarĂ«si licencore nga LMDB, ndĂ«rsa vetĂ« projekti planifikohet tĂ« publikohet me njĂ« licencĂ« tjetĂ«r (tĂ« miratuar nga OSI licenca Apache 2.0, dhe jo OpenLDAP Public License).
  • Ndarja lejon tĂ« shmanget konfuzioni i mundshĂ«m, tĂ« sjellĂ« mĂ« shumĂ« qartĂ«si dhe tĂ« sigurojĂ« pavarĂ«sinĂ« e rrugĂ«s sĂ« zhvillimit tĂ« projekteve.

MithrilDB, ashtu si MDBX, bazohet gjithashtu në pemën B+ dhe gjithashtu do të dallohet për performancë jashtëzakonisht të lartë, duke eliminuar njëkohësisht disa mangësi thelbësore të MDBX dhe LMDB. Në veçanti, do të eliminohet problemi i «leximeve të gjata», që shfaqet si «fryrje» e BD sepse riciklimi i mbetjeve bllokohet nga transaksionet e leximit afatgjata. Ndër veçoritë e reja të MithrilDB duhen përmendur:

  • MbĂ«shtetje pĂ«r vendosjen e BD nĂ« disa media heterogjene: HDD, SSD dhe memorie jo tĂ« paqĂ«ndrueshme.
  • Strategji optimale pĂ«r tĂ« dhĂ«na «me vlerë» dhe «me pak vlerë», si edhe pĂ«r tĂ« dhĂ«na «tĂ« nxehta», «tĂ« vakĂ«ta» dhe «tĂ« ftohta».
  • PĂ«rdorimi i Merkle tree pĂ«r kontrollin e integritetit tĂ« BD.
  • PĂ«rdorim opsional i WAL dhe performancĂ« dukshĂ«m mĂ« e lartĂ« nĂ« skenarĂ«t me shkrim intensiv, me garanci pĂ«r integritetin e tĂ« dhĂ«nave.
  • Ruajtje e vonuar e tĂ« dhĂ«nave nĂ« disqe.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster