Famotsorana ny DBMS libmdbx 0.10.4 sy libfpta 0.3.9 mipetaka avo lenta

Ny trano famakiam-boky libmdbx 0.10.4 (MDBX) dia navoaka niaraka tamin'ny fampiharana ny angon-drakitra manan-danja manan-danja voarakitra avo lenta avo lenta, ary ny tranomboky libfpta 0.3.9 (FPTA) mifandraika, izay mametraka fanehoana tabilao misy angon-drakitra miaraka amin'ny indeksa faharoa sy mitambatra. an-tampon'ny MDBX. Ireo tranomboky roa ireo dia zaraina amin'ny alàlan'ny fahazoan-dàlana ankatoavin'ny OSI. Ny rafitra miasa sy ny maritrano rehetra dia tohanana, ary koa ny Elbrus 2000 Rosiana.

Ara-tantara, ny libmdbx dia fanavaozana lalina ny LMDB DBMS ary ambony noho ny razambeny amin'ny fahamendrehana, ny endri-javatra ary ny fampisehoana. Raha ampitahaina amin'ny LMDB, ny libmdbx dia manome lanja be ny kalitaon'ny code, ny fahamarinan'ny API, ny fitsapana ary ny fisavana mandeha ho azy. Misy fitaovana iray hanamarinana ny fahamarinan'ny rafitra angon-drakitra miaraka amin'ny fahafaha-manao fanarenana sasany.

Ny teknolojia, ny libmdbx dia manolotra ACID, serialization mahery vaika, ary famakiana tsy manakana miaraka amin'ny scaling linear manerana ny cores CPU. Ny fanamafisam-peo mandeha ho azy, ny fitantanana ny haben'ny angon-drakitra mandeha ho azy, ary ny fanombantombanana ny fangataham-panontaniana dia tohana. Nanomboka ny taona 2016, novatsian'ny Positive Technologies ny tetikasa ary nanomboka ny taona 2017 no nampiasaina tamin'ny vokatra.

libmdbx dia manolotra API C ++, ary koa fatorana fiteny tohanan'ny mpankafy ho an'ny Rust, Haskell, Python, NodeJS, Ruby, Go, ary Nim. Ho an'ny libfpta, ny famaritana API ihany no hita ampahibemaso amin'ny endrika rakitra lohapejy C/C++.

Fanavaozana lehibe, fanatsarana ary fanitsiana nampiana hatramin'ny vaovao teo aloha tamin'ny 9 Mey:

  • Mamela ny fananganana azo averina.
  • Namboarina ny bug izay, amin'ny toe-javatra tsy fahita firy, mety hitranga ny loop/freeze mandritra ny fifampiraharahana. Ny olana dia hitan'ny manam-pahaizana manokana momba ny Positive Tecnologies nandritra ny fitiliana anatiny ny vokatra azony.
  • Nohatsaraina ny fitsapana ary nitarina ny seha-pitsapana mba hanamarinana ireo fanjakana tsy isomorphic rehetra amin'ny hazo pejy sy ny atiny GC ao anaty angon-drakitra.
  • Ao amin'ny C ++ API, misy "noexcept" fanampiny dia raikitra, fanampiny fanampiny dia nampiana ho an'ny "cursor :: erase ()", ny fampiharana ny buffers dia voatsimbina ny fampiasana "std:: string" mba hiantohana ny fampifanarahana. (mifanaraka amin'ny CLANG libstdc++).
  • Ny fihemorana amin'ny algorithm fandrotsahana pejy maloto (fandroahana voafantina amin'ny pejin'ny angon-drakitra voaova) izay nasehon'ny fahadisoana MDBX_PROBLEM tsy nampoizina tsy fahita firy rehefa niova ny angona tamin'ny fifampiraharahana goavana dia nesorina.
  • Nisy ny andrana misesisesy natao niaraka tamin’ny fanampim-panamarinana maromaro mba hiantohana ny fitoniana raha sanatria misy fahavoazana niniana natao tamin’ny angon-drakitra.
  • Fampitandremana madinidinika tsy voafaritra UndefinedBehaviorSanitizer sy Coverity Scan.
  • Namboarina ny fanamarinana ny sainam-pirenena efa lany andro ary tsy ampiasaina intsony “P_DIRTY” amin'ny pejy misy akany ao anaty sary angon-drakitra noforonin'ny dikan-teny tranainy kokoa amin'ny tranomboky.
  • Ao amin'ny script CMake, nohatsaraina ny fikarohana ireo singa mpanangom-bokatra ilaina amin'ny LTO (fanamafisana ny fotoanan'ny rohy).
  • Ny isan'ny mpamaky simultaneous ambony indrindra dia nitombo ho 32767.
  • Fampisehoana nohatsaraina rehefa mampiasa Valgrind sy AddressSanitizer.
  • Amin'ny Windows, nesorina ny fampiasana SRW-lock recursive rehefa miasa amin'ny mode MDBX_NOTLS (tsy mampiasa fitehirizana an-toerana), raikitra ny famokarana bootid raha niova ny fotoanan'ny rafitra, nohatsaraina ny fitiliana WSL1 sy WSL2, ary ny fahafahana Sokafy ny tahiry ao amin'ny Plan 9 napetraka amin'ny DrvFS dia nampiana.
  • Raha atambatra, mihoatra ny 160 ny fanovana natao tamin'ny rakitra 57, ~5000 andalana no nampiana, ~2500 no voafafa.

Isaorako manokana ny ekipan'ny tetikasa Erigon (Ecosystem Ethereum) noho ny fanampian'izy ireo tamin'ny fanaovana fitiliana amin'ny tranganà fampiasana tafahoatra. Zava-dehibe fa tao anatin'ny dimy volana hatramin'ny nivoahan'ny libmdbx v0.10.0, miaraka amin'ny habetsaky ny angon-drakitra 1-2 TB isaky ny fametrahana Erigon (ampiasaina amin'ny 7% amin'ny node Ethereum), dia tatitra telo monja momba ny kolikoly amin'ny database no voaray, ny rehetra izay nitranga noho ny antony ivelany, fa tsy ny lozisialy fahadisoana: amin'ny tranga roa ny antony dia ny RAM tsy fahombiazana, ny fahatelo fahadisoana amin'ny resetting angon-drakitra ao amin'ny rafitra manokana ny fitehirizana subsystem mampiasa BTRFS.

Source: opennet.ru

Add a comment