Serbestberdana DBMS-ya bicîbûyî ya bi performansa bilind libmdbx 0.11.3

Pirtûkxaneya libmdbx 0.11.3 (MDBX) bi pêkanîna databasek nirxa-kilît a bihevrekirî ya bi performansa bilind hate berdan. Koda libmdbx di bin Lîsansa Giştî ya OpenLDAP de destûrdar e. Hemî pergalên xebitandinê yên heyî û mîmarî têne piştgirî kirin, û her weha Elbrus 2000-a Rûsî. Di dawiya sala 2021-an de, libmdbx di her du xerîdarên Ethereum-ê yên bilez de - Erigon û "Shark"-ya nû wekî paşgirek hilanînê tê bikar anîn. agahî, muwekîlê Ethereum-performansa herî bilind e.

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. Tevhevkirina otomatîkî, rêveberiya mezinahiya databasê ya otomatîk, û texmîna pirsê ya rêzê piştgirî dikin. Ji sala 2016-an vir ve, proje ji hêla Teknolojiyên Positive ve tê fînanse kirin û ji 2017-an vir ve di hilberên xwe de tê bikar anîn.

libmdbx ji bo Rust, Haskell, Python, NodeJS, Ruby, Go, û Nim C++ API pêşkêşî dike, û her weha girêdanên zimanî yên ku ji hêla enthusiast ve têne piştgirî kirin.

Nûbûn, başkirin û rastkirinên sereke ji nûçeyên berê yên di 11ê Cotmehê de hatine zêdekirin:

  • C++ API ji bo karanîna amade tête hesibandin.
  • Nûvekirina daneyên GC-ê dema ku kirinên danûstendinên mezin têne kirin bi girîngî bilez bûye, ku bi taybetî dema ku libmdbx di ekosîstema Ethereum de bikar bînin girîng e.
  • Îmzeya navxweyî ya formata databasê hate guheztin da ku piştgirî bide nûvekirina otomatîk, ku ji bikarhêneran re bi tevahî zelal e. Ev rê dide we ku hûn peyamên derewîn-erênî yên di derbarê xerabûna databasê de ji holê rakin dema ku guhertoyên kevnar ên pirtûkxaneyê ji bo xwendina danûstendinên ku ji hêla guhertoyên heyî ve hatine tomar kirin têne bikar anîn.
  • Fonksiyonên zêde kirin mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() û mdbx_env_get_syncbytes(). Ji bo operasyona MDBX_SET_UPPERBOUND piştgirî zêde kir.
  • Hemî hişyariyên dema avakirina bi hemî berhevkarên piştgirîkirî di modên C++ 11/14/17/20 de hatine rakirin. Lihevhatina bi berhevkarên mîras re tê misoger kirin: clang ji 3.9-ê dest pê dike, gcc ji 4.8-an dest pê dike, tevî kombûnê bi karanîna cdevtoolset-9 ji bo CentOS/RHEL 7.
  • Piştî ku bi destan veguheztina rûpelek meta ya taybetî bi karanîna amûra mdbx_chk, îhtîmala pevçûnek rûpelê meta rast kir.
  • Çewtiya MDBX_PROBLEM ya neçaverêkirî rast kir ku dema ku rûpelên meta yên mîras têne nivîsandin.
  • Dema ku daxwazek MDBX_GET_BOTH hildiweşîne, MDBX_NOTFOUND vedigere rast.
  • Di nebûna pelên sernavê de bi danasîna pêwendiyên bi kernelê re xeletiyek berhevkirinê li Linux-ê rast kir.
  • Nakokiyek di navbera ala navxweyî ya MDBX_SHRINK_ALLOWED û vebijarka MDBX_ACCEDE de rast kir.
  • Gelek kontrolên îsbatkirina nepêwîst hatine rakirin.
  • Vegera neçaverêkirî ya MDBX_RESULT_TRUE ji fonksiyona mdbx_env_set_option() rast kir.
  • Bi tevayî, zêdetirî 90 guhertin li 25 pelan hatin kirin, ~ 1300 rêz hatin zêdekirin, ~ 600 jê hatin jêbirin.

Source: opennet.ru

Add a comment