Lëshimi i SGBD libmdbx 0.11.7. Kalimi i zhvillimit në GitFlic pas bllokimit në GitHub

ËshtĂ« lĂ«shuar biblioteka libmdbx 0.11.7 (MDBX) me implementimin e njĂ« baze tĂ« dhĂ«nash tĂ« integruar tĂ« klasĂ«s çelĂ«s-vlerĂ« me performancĂ« tĂ« lartĂ« dhe kompakte. Kodi libmdbx shpĂ«rndahet nĂ«n licencĂ«n OpenLDAP Public License. MbĂ«shteten tĂ« gjitha sistemet operativĂ« dhe arkitekturat aktuale, si dhe Elbrusi rus 2000.

Ky version është i veçantë për migrimin e projektit në shërbimin GitFlic pas fshirjes së papritur nga administrata e GitHub në 15 prill 2022, duke eliminuar libmdbx së bashku me shumë projekte të tjera, duke bllokuar njëkohësisht qasjen për shumë zhvillues të lidhur me kompani që kishin rënë nën sanksionet e SHBA. Nga pikëpamja e përdoruesve, të gjitha faqet, depoja dhe degët e projektit papritur u shndërruan në një faqe «404», pa mundësi komunikimi ose sqarimi të arsyeve.

Fatkeqësisht, janë humbur pothuajse të gjitha çështjet, ku kishte shumë pyetje me përgjigje të detajuara, si dhe diskutime të shumta. Humbja e kësaj informacioni është dëmimi i vetëm objektiv që administrata e GitHub ka mundur t'i bëjë projektit. Kopje të pjesëve të diskutimeve mbeten pjesërisht të aksesueshme në arkivën archive.org.

Humbja e CI skenarëve të ndërtuar dhe infrastrukturës (të disponueshme falas për projektet OpenSource) na bëri të merremi me rishikimin, unifikimin dhe eliminimin e borxheve të vogla teknike. Tani CI është restauruar pothuajse në vëllimin e tij të mëparshëm, përveç ndërtimit dhe testimeve për të gjitha variacionet e BSD dhe Solaris. E veçantë është se, pas veprimeve të GitHub, nuk ka ardhur ndonjë sqarim ose njoftim, përveç kujtesës për nevojën e pagesës dhe përpjekjeve për të tërhequr para.

Nga lajmërimi i fundit lidhur me lëshimin e libmdbx v0.11.3, përveç rikuperimit pas veprimeve të GitHub, duhet theksuar përmirësime dhe korrigjime të tjera:

  • ËshtĂ« shtuar zgjidhja e efektit / defektit tĂ« zbuluar tĂ« inkoherencĂ«s nĂ« cache-in e pĂ«rbashkĂ«t tĂ« faqeve dhe buferĂ«ve nĂ« kernelin Linux. NĂ« sistemet ku cache-i i faqeve dhe buferĂ«ve Ă«shtĂ« me tĂ« vĂ«rtetĂ« i bashkuar, nuk ka kuptim qĂ« kernel tĂ« harxhojĂ« memorie pĂ«r dy kopje tĂ« dhĂ«nash kur shkruan nĂ« njĂ« skedar qĂ« Ă«shtĂ« tashmĂ« i reflektuar nĂ« memorie. Prandaj, tĂ« dhĂ«nat e shkruara bĂ«hen tĂ« dukshme pĂ«rmes reflektimit nĂ« memorie para se tĂ« pĂ«rfundojĂ« thirrja sistemike write(), ndonĂ«se tĂ« dhĂ«nat nuk janĂ« shkruar ende nĂ« disk.

    Kështu, një sjellje tjetër nuk është racionale, sepse me bashkimin e vonuar do të duhet të merret përsëri me bllokimet për listat e faqeve, të kopjohen të dhënat ose të rregullohet PTE. Prandaj, një rregull i heshtur i koherencës ka vepruar që nga viti 1989, kur SRV4 mori cache-in e përbashkët të buferave. Zbulimi i dështimeve të çuditshme në skenarë të ngarkuar të përdorimit të libmdbx kërkoi punë të madhe; fillimisht për të rikrijuar problemin, pastaj për të verifikuar hipotezat dhe për të kontrolluar përmirësimet.

    Tani mund të thuhet me siguri se problemi është identifikuar saktësisht, lokalizuar dhe eliminuar me siguri, pavarësisht nga të gjithë kompleksitetin dhe specifikën e skenarëve të rikrijimit. Përveç kësaj, veprimi i mekanizmit të zgjidhjes është konfirmuar nga një nga zhvilluesit e Erigon (Ethereum), në rastin e tij, në një ndërtim debug, angazhimi i mbrojtjes shfaqej si regres për shkak të një kontrolli të tepërt.

    Duhet theksuar se, nĂ« kontekstin e pĂ«rdorimit tĂ« gjerĂ« tĂ« libmdbx nĂ« projekte tĂ« punĂ«s, Ă«shtĂ« nĂ« tĂ« vĂ«rtetĂ« mĂ« e rĂ«ndĂ«sishme tĂ« sigurohet funksionimi i besueshĂ«m sesa tĂ« zbulohet ‘nĂ«se Ă«shtĂ« njĂ« gabim apo njĂ« veçori’ dhe nĂ«se mund tĂ« besohet nĂ« kĂ«tĂ« koherencĂ«, e aq mĂ« tepĂ«r tĂ« mos kĂ«rkohet arsyet e inkoherencĂ«s brenda kernelit Linux. Prandaj, kĂ«tu bĂ«het fjalĂ« pĂ«r eliminimin e njĂ« problemi qĂ« mund tĂ« prekte pĂ«rdoruesit.

  • ËshtĂ« eliminuar regresi i shfaqjes sĂ« gabimit EXDEV (Lidhje ndĂ«rmjet pajisjeve) gjatĂ« kopjimit tĂ« nxehtĂ« tĂ« DB pa kompakti nĂ« njĂ« sistem tĂ« ndryshĂ«m tĂ« skedarĂ«ve, si pĂ«rmes API-sĂ«, ashtu edhe pĂ«rmes utilitarit mdbx_copy.
  • Kris Zyp realizoi mbĂ«shtetje pĂ«r libmdbx nĂ« Deno. Kai Wetlesen krijoi paketimin RPM pĂ«r Fedora. David BouyssiĂ© zbatou lidhjet pĂ«r Scala.
  • ËshtĂ« korrigjuar trajtimi i vlerĂ«s sĂ« caktuar nga opsioni MDBX_opt_rp_augment_limit gjatĂ« trajtimit tĂ« tranzaksioneve tĂ« mĂ«dha nĂ« DB tĂ« mĂ«dha. MĂ« parĂ«, pĂ«r shkak tĂ« njĂ« gabimi, mund tĂ« bĂ«heshin veprime tĂ« tepĂ«rta, qĂ« ndonjĂ«herĂ« ndikonte negativisht nĂ« performancĂ« nĂ« implementimet Ethereum (Erigon/Akula/Silkworm) dhe projektet Binance Chain.
  • ËshtĂ« korrigjuar njĂ« mori gabimesh, pĂ«rfshirĂ« nĂ« API-nĂ« C++. JanĂ« eliminuar shumĂ« probleme nĂ« ndĂ«rtim nĂ« konfigurime tĂ« rralla dhe ekzotike. Lista e plotĂ« e tĂ« gjitha pĂ«rmirĂ«simeve tĂ« rĂ«ndĂ«sishme Ă«shtĂ« e disponueshme nĂ« ChangeLog.
  • NĂ« total janĂ« bĂ«rĂ« 185 ndryshime nĂ« 89 skedarĂ«, janĂ« shtuar rreth 3300 rreshta dhe janĂ« fshirĂ« rreth 4100. ËshtĂ« fshirĂ« mĂ« shumĂ« kryesisht pĂ«r shkak tĂ« pastrimit tĂ« skedarĂ«ve teknologjikĂ« qĂ« janĂ« bĂ«rĂ« tĂ« panevojshĂ«m, tĂ« lidhura me GitHub dhe shĂ«rbimet e varura.

Historikisht, libmdbx është një ripunim i thellë i SGBD LMDB dhe e tejkalon paraardhësin e saj në besueshmërinë, setin e mundësive dhe performancën. Krahasuar me LMDB, libmdbx i kushton një vëmendje të madhe cilësisë së kodit, stabilitetit të API-t, testeve dhe kontrollit automatik. Ofrohet një utilitar për verifikimin e integritetit të strukturës së DB me disa mundësi rikuperimi.

Teknologjikisht, libmdbx ofron ACID, serializim rigoroz të ndryshimeve dhe lexim pa bllokim me shkallëzim linear mbi bërthamat e CPU. E mbështetur autokompanifikimi, menaxhimi automatik i madhësisë së DB dhe vlerësimi i volumit të kërkesave mbi intervale (range query estimation). Që nga viti 2016, projekti financohet nga kompania Positive Technologies dhe që nga viti 2017 është përdorur në produktet e saj.

Për libmdbx ofrohet një API e avancuar C++, si dhe lidhje të mbështetur nga entuziastë për gjuhët Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

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