Välja on antud sisseehitatud andmebaas libmdbx 0.13

Avaldatud on libmdbx 0.13.1 (MDBX) raamatukogu versioon, mis sisaldab kõrge jõudlusega kompaktset ning sisseehitatud võtme-väärtuse andmebaasi. libmdbx kood levitatakse Apache 2.0 litsentsiga. Toetatakse kõiki kaasaegseid operatsioonisüsteeme ja arhitektuure, sealhulgas Venemaa Elbrus 2000. libmdbx jaoks on saadaval arenenud API C++-le ning toetatud on ka entusiastide loodud sidemed Rusti, Haskell'i, Pythoni, NodeJS, Ruby, Go, Nim, Deno, Scala jaoks.

Ajalooliselt on libmdbx sügavalt ümber töödelud andmebaas LMDB-st ning ületab oma eelkäijat usaldusväärsuse, võimaluste ja jõudluse poolest. LMDB-ga võrreldes on libmdbx-is suurt tähelepanu pööratud koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Saadaval on andmebaasi struktuuri terviklikkuse kontrollimise utiliit mõningate taastamisvõimalustega. Tehnoloogiliselt pakub libmdbx ACID-i, ranget muudatuste seeriat ja mittetakistavat lugemist, millel on lineaarne skaleerimine CPU tuumade vahel. Toetatud on automaatne kompaktimine, andmebaasi suuruse automaatne haldamine ning vahemike põhjal tehtud valimite hindamine.

Peamised muudatused:

  • Koodi litsentsi muutmine OpenLDAP Public License'ist Apache 2.0-ks.
  • Kursorite API laiendamine mugavamate ja selgemate positsioneerimise operatsioonidega, mis on sarnased tingimustele <, <=, ==, >=, > nii võtmete kui ka võtme-väärtuse paaride jaoks. Lisatud funktsioonid mdbx_cursor_unbind() ja mdbx_txn_release_all_cursors() kursorite paindlikuks haldamiseks taaskasutusstsenaariumites, et vähendada kulusid. Funktsioonid mdbx_cursor_scan() ja mdbx_cursor_scan_from() tabelite skaneerimiseks, kasutades funktsionaalset predikaati ja vähendades sellega kaasnevaid kulusid.
  • Kursorite ümberkujundamine käitumise ühtlustamiseks, koodi ühtlustamiseks, haru ja masinatoimingute arvu vähendamiseks.
  • mdbx_chk utiliidi funktsionaalsuse viimine raamatukogusse kujul mdbx_env_chk() funktsiooni, et kontrollida andmebaasi struktuuri terviklikkust, sealhulgas rakenduse loogika kaasama.
  • MDBX_opt_gc_time_limit võimalus, et paindlikumalt hallata aega, mis kulub naaber vabad lehekülgede järjestuste otsimiseks GC-s.
  • Oluline kulude vähenemine tehingute alustamisel stsenaariumites, kus on suur hulk DBI-handleid, tänu edasi lükatud/halvale algatamisele teenustabelite elementide puhul. Sealhulgas mehhanism haruldaste DBI-handleid haldamiseks, mida juhtib kompilatsiooni valik MDBX_ENABLE_DBI_SPARSE, mis on vaikimisi sisse lülitatud.
  • DBI-handleid avamise kulude vähendamine. Sealhulgas edasi lükatud vabastamise mehhanism ja kiire avamise toega, mis ei kasuta lukke, mida juhib kompilatsiooni valik MDBX_ENABLE_DBI_LOCKFREE, mis on vaikimisi sisse lülitatud.
  • Toetab parkimise reading transactionide toetust koos nende eemaldamisega vanade MVCC-piltide töötlemise nimel ning probleemide vältimist, mida põhjustab prügi töötlemise peatamine. Parkimis- ja eemaldamisprotsess on nii täiendus kui ka lihtsam kasutada alternatiiv Handle-Slow-Readers tagasisidemehhanismile. Mugavuse huvides on funktsioonidel mdbx_txn_park() ja mdbx_txn_unpark() täiendavad argumendid, mis võimaldavad nõuda parkimise automaatset „ülespärkamist“ ja eemaldatud tehingute taaskäivitamist. Mdbx_copy tööriistale on lisatud vastavad suvandid -d ja -p.
  • Toetab avatud andmebaasi töökeskkonna taastamist tütarprotsessis pärast protsessi harunemist/jaotumist mdbx_env_resurrect_after_fork() kaudu.
  • Toetab tabelite ümbernimetamist mdbx_dbi_rename() ja mdbx_dbi_rename2() kaudu. Lisatud on funktsioon mdbx_enumerate_tables(), et saada teavet nimetatud kasutaja tabelite kohta.
  • MDBX_NOSTICKYTHREADS töörežiim MDBX_NOTLS asemel, et lihtsustada integreerimist kergete voogude/nitšitega nende mitme ülesande täitmisega koos operatsioonisüsteemi voogude tehingutega.
  • Andmebaasi identifitseerimiseks on lisatud UUID, mis on saadaval väljal mi_dxbid MDBX_envinfo struktuuris, mille saab kätte mdbx_env_info_ex() kaudu. Teostatud on andmebaasi teabe saamine selle avamata mdbx_preopen_snapinfo() kaudu.
  • Toetab tagasiside logimise funktsioone ilma vprintf() funktsionaalsuseta, mis oluliselt lihtsustab logimise kasutamist teiste programmeerimiskeelte raamistikes.
  • API funktsioonide mdbx_txn_copy2pathname() ja mdbx_txn_copy2fd() lisamine.
  • Algkoodi restruktureerimine koos refaktooringuga.
  • Kasutatakse terminit „tabel“ asemel „subDb“.
  • MDBX_COALESCE ja MDBX_NOTLS valikute kuulutamine aegunuks. Kokkuvõtte opsioon MDBX_USE_VALGRIND asendamine üldiselt aktsepteeritud ENABLE_MEMCHECKiga.

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