Divilgasyon DBMS entegre libmdbx 0.10.4 ak libfpta 0.3.9

Bibliyotèk libmdbx 0.10.4 (MDBX) yo te lage ak aplikasyon yon baz done kle-valè entegre ki wo-pèfòmans, ak bibliyotèk libfpta 0.3.9 (FPTA) ki asosye, ki aplike yon reprezantasyon tabular nan done ak endèks segondè ak konpoze. sou tèt MDBX. Tou de bibliyotèk yo distribye anba lisans OSI apwouve. Tout sistèm operasyon ak achitekti aktyèl yo sipòte, osi byen ke Ris Elbrus 2000.

Istorikman, libmdbx se yon retravay pwofon nan DBMS LMDB la epi li siperyè zansèt li yo nan fyab, seri karakteristik ak pèfòmans. Konpare ak LMDB, libmdbx mete anpil anfaz sou kalite kòd, estabilite API, tès, ak chèk otomatik. Yon sèvis piblik pou tcheke entegrite estrikti baz done a ak kèk kapasite rekiperasyon yo apwovizyone.

Teknoloji-saj, libmdbx ofri ACID, seri chanjman fò, ak lekti ki pa bloke ak echèl lineyè atravè nwayo CPU yo. Oto-konpaktifikasyon, jesyon otomatik gwosè baz done, ak estimasyon rechèch ranje yo sipòte. Depi 2016, pwojè yo te finanse pa Positive Technologies e depi 2017 yo te itilize nan pwodwi li yo.

libmdbx ofri yon API C++, ansanm ak langaj antouzyas yo sipòte pou Rust, Haskell, Python, NodeJS, Ruby, Go, ak Nim. Pou libfpta, se sèlman deskripsyon API ki disponib piblikman sou fòm yon dosye header C/C++.

Gwo inovasyon, amelyorasyon ak koreksyon te ajoute depi nouvèl anvan yo te 9 me:

  • Pèmèt bati repwodiktif.
  • Fikse yon ensèk akòz ki, nan sikonstans ki ra anpil, yon bouk / friz te kapab rive pandan yon tranzaksyon komèt. Pwoblèm nan te idantifye pa espesyalis Positive Tecnologies pandan tès entèn nan pwòp pwodwi yo.
  • Tès yo te amelyore ak senaryo tès yo te elaji pou tcheke tout eta ki pa izomòfik ki ka jwenn nan pyebwa paj la ak kontni GC andedan baz done a.
  • Nan API C++ a, yo te fikse yon "noexcept" siplemantè, yo te ajoute surcharge adisyonèl pou metòd "cursor::erase()", aplikasyon tanpon yo te evite itilize "std::string" pou asire aliyman. (ki enpòtan pou CLANG libstdc++).
  • Yo te elimine yon regresyon nan algorithm pou koule paj sal la (ekspilsyon selektif nan paj baz done ki chanje) ki te manifeste pa yon erè MDBX_PROBLEM ki ra inatandi lè chanje done nan tranzaksyon gwo yo te elimine.
  • Yon tès gradyasyon te pote soti ak adisyon a nan yon kantite chèk asire estabilite nan evènman an nan entansyonèl domaj nan baz done a.
  • Te fikse avètisman minè UndefinedBehaviorSanitizer ak pwoblèm Coverity Scan.
  • Fiks tcheke drapo entèn demode epi ki pa itilize ankò "P_DIRTY" nan paj enbrike andedan imaj baz done ki te kreye pa ansyen vèsyon bibliyotèk la.
  • Nan scripts CMake, rechèch la pou konpozan konpilatè ki nesesè pou LTO (optimize lyen-tan) te amelyore.
  • Kantite maksimòm lektè similtane yo ogmante a 32767.
  • Amelyore pèfòmans lè w ap itilize Valgrind ak AddressSanitizer.
  • Sou Windows, itilizasyon rekursif SRW-lock lè w ap travay nan mòd MDBX_NOTLS (san yo pa itilize fil depo lokal yo) te elimine, jenerasyon bootid yo te fiks si tan sistèm lan chanje, deteksyon WSL1 ak WSL2 te amelyore, ak kapasite nan. louvri yon baz done sou Plan 9 monte atravè DrvFS te ajoute.
  • An total, plis pase 160 chanjman yo te fè nan 57 fichye, ~5000 liy yo te ajoute, ~2500 yo te efase.

Mwen ta renmen espesyalman remèsye ekip pwojè Erigon (ekosistèm Ethereum) pou asistans yo nan tès nan senaryo itilizasyon ekstrèm. Li enpòtan ke nan senk mwa depi liberasyon libmdbx v0.10.0, ak yon volim baz done 1-2 TB nan chak enstalasyon Erigon (itilize sou 7% nan nœuds Ethereum), sèlman twa rapò sou koripsyon baz done yo te resevwa, tout nan ki te fèt akòz rezon ekstèn, epi yo pa erè lojisyèl: nan de ka kòz la te echèk RAM, nan twazyèm lan yon erè nan reset done nan yon konfigirasyon espesifik nan subsistèm nan depo lè l sèvi avèk BTRFS.

Sous: opennet.ru

Add nouvo kòmantè