Vabastatud kÔrge jÔudlusega manustatud andmebaas libmdbx 0.10

PĂ€rast kolme kuu arendust on vĂ€lja antud libmdbx 0.10.0 (MDBX) teek, mis on rakendatav kĂ”rgtehnoloogiline, kompaktne vĂ”tme-vÀÀrtuse andmebaas. libmdbx kood on levitatud OpenLDAP Public License'i all. libmdbx on sĂŒgavalt ĂŒmber töötatud LMDB andmebaas ja arendajate vĂ€itel ĂŒletab see oma eelkĂ€ijat usaldusvÀÀrsuse, funktsioonide komplekti ja jĂ”udluse osas. Teatatakse, et libmdbx on CRUD stsenaariumites kuni 20% kiirem kui LMDB ja kuni 30% kiirem, kui libmdbxi kompileerimisel on vĂ€lja lĂŒlitatud sisejĂ€lgimine, mis vastab LMDB tasemele.

Libmdbx pakub ACID-tugi, ranget muudatuste serialiseerimist ja mitteblokeerivat lugemist, mis vĂ”imaldab lineaarset skaleerimist CPU tuumade jĂ€rgi. libmdbx-s on rĂ”hk pandud koodikvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Toetatakse automaatset kompaktimist, automaatset andmebaasi suuruse haldamist, ĂŒhte andmebaasi vormingut 32-bitiste ja 64-bitiste koostete jaoks, vahemike (range query estimation) pĂ”hjal asetuste hindamine. Toodud on andmebaasi struktuuri terviklikkuse kontrollimise utiliit, millel on mĂ”ned taastamise vĂ”imalused. Alates 2016. aastast rahastatakse projekti Positive Technologies'i poolt ja alates 2017. aastast kasutatakse seda nende toodetes, samas ei avalda USA valitsuse kehtestatud sanktsioonid Positive Technologies'ile mingit mĂ€rkimisvÀÀrset mĂ”ju.

Peamised uuendused, tÀiustused ja parandused, mis lisati pÀrast eelmist vÀljalaset:

  • Saadaval on Ruby sidumine Mahlon E. Smithilt ja prooviversioon Python sidumist Noel Kuntzelt, samuti on vĂ€rskendatud GoLang sidumisi Aleksei Ć arovilt.
  • MDBX_WRITEMAP reĆŸiimis, kus andmebaasi andmeid muudetakse otse RAM-is, on rakendatud „lĂ€bipaistev voolamine“ kĂ”vaketta muutunud lehtedele. NĂŒĂŒd, pĂ€rast iga toimingu lĂ”petamist, on need lehed viivitamatult valmis kĂ”vakettale kirjutamiseks ning opsĂŒsteemi kernel vĂ”ib iseseisvalt muutunud lehti kĂ”vakettale tĂ”sta, mistĂ”ttu tehingu fikseerimine ei nĂ”ua nende modifitseerimist. Selle tulemusel vĂ”ib koormatud stsenaariumites, kus RAM-i on piiratud, kĂ”vaketta operatsioonide maht vĂ€heneda kuni 2 korda.
  • Tehti on Ă€ra kasutatud juba ammu mittekasutatud varjatud koopiad muudetud lehtedest, eelistades lehtede kustutamist, millel on suuremad/pikemad vÀÀrtused, mis enamikus stsenaariumides muudetakse ĂŒhe korra tehingu jooksul. Selle tulemusena vĂ€heneb andmevahetuse maht ketas ja suureneb jĂ”udlus vĂ€ga suurte tehingute korral.
  • Rakendatud on "nutikas" lehtede jagamise reĆŸiim vĂ”tmete sisestamisel. NĂŒĂŒd tagatakse jĂ€rjestatud jĂ€rjestuste sisestamisel automaatselt lehtede tĂ€ielik tĂ€itmine, samas kui muudel juhtudel saavutatakse optimaalne puu tasakaalustamine. Selle tulemusena tĂ€idetakse andmebaasi lehed keskmiselt paremini ja B-puu on paremini tasakaalustatud, mis mĂ”jutab positiivselt jĂ”udlust.
  • Lisatud on statistika lehtede operatsioonide kohta, mis vĂ”imaldab tĂ€pselt hinnata andmebaasi muutmise operatsioonide kulusid.
  • Lahendatud on rohkem kui tosin puudust ja viga, sealhulgas: lahendatud on probleeme MinGW koostamisel, `std::filesystem::path` kasutamisel iOS <= 13.0, koostamine vanemate Windowsi versioonide sihtimisega jne.
  • Kokku on tehtud ĂŒle 200 muudatuse 66 failis, lisatud on ~6500 rida, eemaldatud ~4500.

Eraldi soovime mĂ€rkida Turbo-Geth (turbo-foor Go-Ethereum) projekti valikut libmdbx uue ladustamise tagumise platvormina ning tĂ€nada projekti meeskonda (eriti Aleksei Ć arovit, Artem Vorotnikovit ja Aleksei Ahunovit) suure abistamise eest testimisel ekstreemsetes kasutusstsenaariumites. EelkĂ”ige tuvastati ja kĂ”rvaldatud defekt eelnevate lugemise/cache’imise haldamisel, mis pĂ”hjustas jĂ”udluse halvenemist keerukates reprodutseeritavates stsenaariumites suurte andmebaasidega.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster