Pas pesë vitesh zhvillimi, është publikuar kandidati i dytë për lëshimin libmdbx 1.0.

I verfĂŒshĂ«m pĂ«r testimin e kandidatit tĂ« dytĂ« nĂ« lĂ«shimet e bibliotekĂ«s libmdbx 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 distribuohet nĂ«n licencĂ«n OpenLDAP Public License.

Biblioteka MDBX Ă«shtĂ« njĂ« ndryshim i konsiderueshĂ«m nga LMDB — njĂ« DBMS tĂ« integruar nĂ« transaksion nĂ« klasĂ«n çelĂ«s-vlerĂ«, e bazuar nĂ« pemĂ«n B+ pa dhe regjistrimin e parandalimit, 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Ă« ACID 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 i pĂ«rshkrimit tĂ« API.
  • 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 OFD-bllokimet 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ë. MithrilDB, 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 OSI licenca Apache 2.0, dhe jo Licenca Publike OpenLDAP).
  • 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Ă« pemĂ«n B+ 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

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