Välja on antud kõrge jõudlusega sisseehitatud andmebaasi libmdbx 0.10.4 ja libfpta 0.3.9

Välja anti libmdbx 0.10.4 (MDBX), mis rakendab kõrge jõudlusega kompaktset integreeritud võtme-väärtuse andmebaasi ning sellele seotud raamatukogu libfpta 0.3.9 (FPTA), mis rakendab MDBX-i peal andmete tabeluvat esitamist koos sekundaarsete ja komposiitindeksitega. Mõlemad raamatukogud on litsentseeritud OSI poolt heakskiidetud litsentside järgi. Toetatakse kõiki praeguseid operatsioonisüsteeme ja arhitektuure, sealhulgas Venemaa Elbrus 2000.

Ajalooliselt on libmdbx sügava ülenägemine andmebaasidest LMDB ning ületab oma eelkäijat usaldusväärsuse, funktsioonide kogumi ja jõudluse poolest. Võrreldes LMDB-ga on libmdbx-s suurt tähelepanu pööratud koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Pakutakse andmebaasi struktuuri terviklikkuse kontrolli utiliiti koos mõnede taastamisvõimalustega.

Tehniliselt pakub libmdbx ACID-i, ranget muudatuste serialiseerimist ning mittetakistavat lugemist, millel on lineaarne skaleerimine CPU südamike järgi. Toetatakse automaatset kompaktimist, automaatset andmebaasi suuruse haldamist ning ulatuslike valikute mõõtmist vahemikes (range query estimation). Alates 2016. aastast finantseeritakse projekte Positive Technologiesi poolt ja alates 2017. aastast kasutatakse neid nende toodetes.

libmdbx-i jaoks on saadaval C++ API ning toetatakse entusiastide poolt pakkumisi keeles Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. libfpta jaoks on avalikult saadaval ainult API kirjeldus C/C++ pealkirja failina.

Peamised uuendused, parendused ja veaparandused, mis on lisatud pärast eelmist teadet 9. mail:

  • Tagatud on reprodutseeritavad kogud.
  • Parandatud viga, mille tõttu väga harvadel juhtudel võis tehingu fikseerimise käigus tekkida lõputu silmus/peatumine. Probleem tuvastati Positive Technologiesi spetsialistide poolt nende toodete sisetestimise käigus.
  • Testid on täiendatud ja teststsenaariume on laiendatud, et kontrollida kõiki saavutatavaid mitte-isomorfseid lehekülgede puu seisundeid ja GC sisu andmebaasis.
  • C++ API-s on parandatud liigne „noexcept“, lisatud täiendavad ülekloaded meetodi „cursor::erase()“ jaoks, ning puutemetoodikad on vabastatud „std::string“ kasutamisest suhteliselt tasakaalu saavutamiseks (relevantne CLANG libstdc++ jaoks).
  • Vea eba jaunegatavas, kuras landīgas proses site va šunter, un reģistrā lidos laika apstākļus, piegādinga negaidīta kļūda MDBX_PROBLEM, mainot datus milzīgos transakcijās.
  • Tika veikta fāzēšanas pārbaude, pievienojot vairākas pārbaudes, lai nodrošinātu stabilitāti, tīši bojājot DB.
  • Novērstas nelielas brīdināšanas UndefinedBehaviorSanitizer un Coverity Scan problēmas.
  • Izlabota bāzes lapa pārbaude novecojušo un vairs neizmantojamo iekšējo flagu 'P_DIRTY' iekšējām līmenēm DB attēlos, kuri izveidoti ar vecām bibliotēkas versijām.
  • CMake skriptos uzlabota kompilatora komponentu meklēšana, kas nepieciešama LTO (link-time optimization).
  • Maksimālais vienlaicīgo lasītāju skaits palielināts līdz 32767.
  • Paātrināta darbība, izmantojot Valgrind un AddressSanitizer.
  • Windows novērsta rekursīva SRW-lock izmantošana MDBX_NOTLS režīmā (bez pavedienu lokālās krātuves izmantošanas), labota bootid ģenerēšana mainoties sistēmas laikam, uzlabota WSL1 un WSL2 noteikšana, pievienota iespēja atvērt DB uz Plan 9, kas pieslēgta caur DrvFS.
  • Kopumā veikti vairāk nekā 160 izmaiņu 57 failos, pievienotas ~5000 rindkopas, un izdzēstas ~2500.

Atsevišķi jāizsaka pateicība Erigon projekta komandai (Ethereum ekosistēmā) par palīdzību testēšanas laikā ekstrēmās lietošanas situācijās. Ir ievērojami, ka piecu mēnešu laikā kopš libmdbx v0.10.0 iznākšanas, ar 1-2 TB DB katrā Erigon instalācijā (17% Ethereum mezglu tiek izmantots), saņemti tikai trīs paziņojumi par DB bojājumiem, kas visi notikuši ārēju iemeslu dēļ, nevis programmatūras kļūdu dēļ: divos gadījumos problēmas radīja RAM avārijas, bet trešajā kļūda datu nullifikācijā specifiskā krātuves apakšsistēmas konfigurācijā, izmantojot BTRFS.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster