Ukukhishwa kokusebenza okuphezulu kwe-DBMS eshumekiwe libmdbx 0.11.3

Umtapo wezincwadi we-libmdbx 0.11.3 (MDBX) ukhululwe ngokusetshenziswa kwesizindalwazi senani lokhiye olusebenza ngokuhlangene olusebenza kahle kakhulu. Ikhodi ye-libmdbx ilayisensi ngaphansi kwe-OpenLDAP Public License. Zonke izinhlelo zokusebenza zamanje nezakhiwo zisekelwa, kanye ne-Russian Elbrus 2000. Ekupheleni kuka-2021, i-libmdbx isetshenziswa njenge-backend yokugcina kumakhasimende amabili e-Ethereum ashesha kakhulu - i-Erigon kanye ne-"Shark" entsha, ngokusho okutholakalayo. imininingwane, iyiklayenti le-Ethereum elisebenza kakhulu.

Ngokomlando, i-libmdbx iwukuklama kabusha okujulile kwe-LMDB DBMS futhi idlula umsunguli wayo ngokokwethembeka, ukusethwa kwesici nokusebenza. Uma kuqhathaniswa ne-LMDB, i-libmdbx igcizelela kakhulu ikhwalithi yekhodi, ukuzinza kwe-API, ukuhlola, nokuhlola okuzenzakalelayo. Isisetshenziswa sokuhlola ubuqotho besakhiwo sesizindalwazi sihlinzekwa ngezinye izinketho zokuthola kabusha.

Ngokusebenzisa ubuchwepheshe, i-libmdbx inikeza i-ACID, ukuguqulwa okuqinile kwe-serialization, nokufunda okungavimbeli okunomugqa wokukala kuwo wonke ama-CPU cores. Ukuhlanganisa okuzenzakalelayo, ukuphathwa kosayizi wesizindalwazi okuzenzakalelayo, kanye nesilinganiso semibuzo yobubanzi kuyasekelwa. Kusukela ngo-2016, iphrojekthi ixhaswe yi-Positive Technologies futhi isetshenziswe emikhiqizweni yayo kusukela ngo-2017.

I-libmdbx inikeza i-C++ API, kanye nezibopho zolimi ezisekelwa umshisekeli zeRust, Haskell, Python, NodeJS, Ruby, Go, kanye ne-Nim.

Ukuqamba okusha okukhulu, ukuthuthukiswa nokulungiswa kwengezwe kusukela ezindabeni zangaphambilini ngo-Okthoba 11:

  • I-C++ API ithathwa njengelungele ukusetshenziswa.
  • Ukubuyekezwa kwedatha ye-GC lapho kwenziwa ukuthengiselana okukhulu kuye kwasheshisa kakhulu, okubaluleke kakhulu uma usebenzisa i-libmdbx ku-Ethereum ecosystem.
  • Isiginesha yangaphakathi yefomethi yesizindalwazi ishintshiwe ukuze isekele ukubuyekezwa okuzenzakalelayo, okukhanya ngokuphelele kubasebenzisi. Lokhu kukuvumela ukuthi ususe imilayezo engelona iqiniso mayelana nenkohlakalo egciniwe lapho izinguqulo eziphelelwe yisikhathi zomtapo wezincwadi zisetshenziselwa ukufunda okwenziwayo okurekhodwe yizinguqulo zamanje.
  • Imisebenzi eyengeziwe mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() kanye ne-mdbx_env_get_syncbytes(). Kwengezwe usekelo lomsebenzi we-MDBX_SET_UPPERBOUND.
  • Zonke izixwayiso uma wakha nabo bonke abahlanganisi abasekelwayo kumamodi we-C++ 11/14/17/20 zisusiwe. Ukuhambisana nabahlanganisi befa kuyaqinisekiswa: i-clang eqala ku-3.9, i-gcc eqala ku-4.8, okuhlanganisa ukuhlanganisa kusetshenziswa i-cdevtoolset-9 ye-CentOS/RHEL 7.
  • Kulungiswe ukuthi kungenzeka kube khona ukungqubuzana kwekhasi le-meta ngemuva kokushintshela mathupha ekhasini elithile le-meta usebenzisa insiza ye-mdbx_chk.
  • Kulungiswe iphutha elingalindelekile le-MDBX_PROBLEM elibuyiswayo uma kubhalwa phezu kwamakhasi e-meta yefa.
  • Kulungiswe ukubuyisela i-MDBX_NOTFOUND esimweni lapho kufana ncamashi lapho kucutshungulwa isicelo se-MDBX_GET_BOTH.
  • Kulungiswe iphutha lokuhlanganisa ku-Linux ngaphandle kwamafayela anhlokweni anezincazelo zokuhlangana ne-kernel.
  • Kulungiswe ukungqubuzana phakathi kwefulegi langaphakathi le-MDBX_SHRINK_ALLOWED kanye nenketho ye-MDBX_ACCEDE.
  • Ukuhlola okuningi okungadingekile kwempahla kususiwe.
  • Kulungiswe imbuyiselo engalindelekile ye-MDBX_RESULT_TRUE kusukela kumsebenzi we-mdbx_env_set_option().
  • Sekukonke, izinguquko ezingaphezu kuka-90 zenziwe kumafayela angu-25, ~ imigqa engu-1300 yengezwe, ~ 600 yasuswa.

Source: opennet.ru

Engeza amazwana