Serbestberdana DBMS libmdbx 0.11.7. Piştî Girtina li ser GitHub Pêşveçûn veguherînin GitFlic

Pirtûkxaneya libmdbx 0.11.7 (MDBX) bi pêkanîna databasa nirxa-kilît-nirxê ya tevhevkirî ya bi performansa bilind hate berdan. Koda libmdbx di bin Lîsansa Giştî ya OpenLDAP de destûrdar e. Hemî pergalên xebitandinê û mîmariya heyî, û her weha Elbrus 2000-a rûsî têne piştgirî kirin.

Serbestberdan ji ber koçkirina projeyê ber bi karûbarê GitFlic ve girîng e piştî ku di 15ê Avrêl, 2022-an de, rêveberiya GitHub, bêyî hişyarî û ravekirinek, libmdbx digel gelek projeyên din jêbirin, di heman demê de gihandina gelek pêşdebirên têkildar bi şîrketên ku di bin cezayên Dewletên Yekbûyî de ne. Ji nêrîna bikarhêneran, hemî rûpel, depo û forkên projeyê ji nişka ve veguherî rûpelek 404, bêyî ku îmkana danûstandinê hebe û sedeman were zanîn.

Mixabin, hema hema hemû mijarên ku tê de gelek pirs bi bersivên berfireh hebûn, her weha gelek nîqaş, winda bûne. Wendakirina vê agahiyê tenê zirara objektîf e ku rêveberiya GitHub kariye ku li projeyê bide. Kopiyên qismî yên nîqaşan li ser archive.org berdest in.

Wendakirina senaryoyên CI-ya çêkirî û binesaziyê (ji bo projeyên OpenSource belaş heye) me neçar kir ku em verastkirin, yekbûn û rakirina deynên piçûk ên teknîkî bikin. Naha CI hema hema di heman astê de hate sererast kirin, ji bilî ceribandinên çêkirin û xebitandinê ji bo hemî guhertoyên BSD û Solaris. Bi gelemperî, piştî çalakiyan, GitHub ji bilî bîranînên di derbarê hewcedariya dravdanê û hewildanên nivîsandina drav de, ti zelalkirin an agahdarî wernegirt.

Ji ber ku nûçeyên paşîn ên di derbarê serbestberdana libmdbx v0.11.3 de, ji bilî vegerandina ji kiryarên GitHub, hêjayî başbûn û sererastkirinên jêrîn e:

  • Di rûpela hevgirtî û cache tampon a di kernel Linux de rêçareyek ji bo bandorek/kêmasîyek bêserûberî ya hatî tespît kirin zêde kir. Di pergalên ku rûpel û kaşeyên tampon bi rastî bi hev re ne, dema ku li pelek ku ji berê ve di bîranînê de hatî nexşe kirin dinivîse de kernel bîra du kopiyên daneyê winda dike. Ji ber vê yekê, daneyên ku têne nivîsandin, beriya ku banga pergala nivîsandinê () biqede, bi riya nexşeya bîranînê xuya dibe, tevî ku hêj data li ser dîskê nehatibe nivîsandin.

    Bi gelemperî, tevgerên din ne maqûl e, ji ber ku bi hevgirtinek paşdemayî re, hûn ê dîsa jî neçar bin ku ji bo navnîşên rûpelan qefleyan bistînin, daneyan kopî bikin, an PTE-ê rast bikin. Ji ber vê yekê, qaîdeya hevrêziya negotî ji sala 1989-an vir ve di meriyetê de ye, dema ku cache tampon a yekbûyî di SRV4 de xuya bû. Ji ber vê yekê, di senaryoyên îstismarkirina libmdbx-ê yên barkirî de tesbîtkirina şikestinên ecêb gelek xebat hewce dike. Pêşî ji bo nûvekirina pirsgirêkê, dûv re verastkirina hîpotezan û ceribandina çêtirkirinan.

    Naha em dikarin bi pêbawerî bibêjin ku pirsgirêk bi pêbawerî hatiye nas kirin, herêmîkirin û bi pêbawerî ji holê rabûye, tevî tevlihevî û taybetmendiya senaryoya ji nû ve hilberandinê. Wekî din, xebata mekanîzmaya dorpêçê ji hêla yek ji pêşdebirên Erigon (Ethereum) ve hate pejirandin; di doza wî de, li ser avakirina debugê, parastin wekî paşveçûnek ji ber vekolînek nehewce hate destpêkirin.

    Divê were zanîn ku di çarçoweya karanîna berbelav a libmdbx di projeyên hilberînê de, misogerkirina operasyona pêbawer ji bingehîn girîngtir e ji fêhmkirina ka ew xeletiyek e an taybetmendiyek e û gelo meriv dikare li ser hevbendiyek weha were piştguh kirin, pir hindiktir lêgerîna li sedemên bêhevsengiyê di nav kernel Linux de. Ji ber vê yekê, li vir em li ser rastkirina pirsgirêkek ku dibe ku bandor li bikarhêneran kiriye diaxivin.

  • Paşvekêşana xeletiya EXDEV (Girêdana nav-cîhazê) dema kopîkirina databasek germ bêyî kompaktkirin li pergalek pelê din, hem bi navgîniya API-yê û hem jî bi navgîniya mdbx_copy, hate rakirin.
  • Kris Zyp piştgiriya libmdbx li Deno bicîh kir. Kai Wetlesen ji bo Fedora pakkirina RPM sêwirand. David Bouyssié girêdanên ji bo Scala pêk anî.
  • Pêvajoya rastkirina nirxa ku ji hêla vebijarka MDBX_opt_rp_augment_limit ve hatî destnîşan kirin dema ku di databasên mezin de danûstendinên mezin têne kirin. Berê, ji ber xeletiyekê, dibe ku kiryarên nepêwist werin kirin, ku carinan bandor li ser performansa pêkanînên Ethereum (Erigon / Akula / Silkworm) û projeyên Binance Chain dike.
  • Gelek xeletî hatine rast kirin, di nav de C++ API. Gelek pirsgirêkên avakirinê di mîhengên kêm û biyanî de rast kirin. Navnîşek bêkêmasî ya hemî pêşkeftinên girîng di ChangeLog de heye.
  • Bi tevahî 185 guhertin li 89 pelan hatin kirin, ≈3300 rêz hatin zêdekirin, ≈4100 hatin jêbirin. Zêdetir bi taybetî ji ber paqijkirina pelên teknolojiyê yên bêkêr ên ku bi GitHub û karûbarên girêdayî ve girêdayî ne hatine rakirin.

Ji hêla dîrokî ve, libmdbx ji nû ve vejandinek kûr a LMDB DBMS ye û di pêbawerî, komek taybetmendî û performansê de ji bav û kalê xwe bilindtir e. Li gorî LMDB, libmdbx gelek giraniyê dide ser kalîteya kodê, aramiya API, ceribandin, û kontrolên otomatîk. Karûbarek ji bo kontrolkirina yekrêziya avahiya databasê bi hin kapasîteyên vegerandinê re tê peyda kirin.

Ji hêla teknolojiyê ve, libmdbx ACID, serialîzasyona guheztinê ya bihêz, û xwendinên ne-astengkirî bi pîvana xêzikî li seranserê navikên CPU-yê pêşkêşî dike. Tevlihevkirina otomatîkî, rêveberiya mezinahiya databasa otomatîk, û texmîna pirsiyariya rêzê piştgirî dikin. Ji sala 2016-an vir ve, proje ji hêla Teknolojiyên Positive ve tê fînanse kirin û ji sala 2017-an vir ve di hilberên xwe de tê bikar anîn.

libmdbx C++ API-ya pêşkeftî pêşkêşî dike, û her weha girêdanên ku ji hêla dilxwazan ve têne piştgirî kirin bi zimanên Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala pêşkêşî dike.

Source: opennet.ru

Add a comment