Kuburitswa kwe libmdbx 0.13.3 (MDBX) kwakatsikiswa, kuita dhatabhesi repamusoro-soro compact embedded key-value database. Iyo libmdbx kodhi inogoverwa pasi peiyo Apache 2.0 rezinesi. Yese yazvino mashandiro masisitimu uye zvivakwa zvinotsigirwa, pamwe neRussia Elbrus 2000. libmdbx inopa yakagadziridzwa API yeC++, pamwe neanofarira-anotsigirwa anosunga kumitauro Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. , Deno, Scala.
Nhoroondo, libmdbx ndeyekudzikazve kugadzirisa kweLMDB DBMS uye yakakwirira kune tateguru wayo mukuvimbika, seti yemaitiro uye kuita. Kuenzaniswa neLMDB, libmdbx inoisa zvakanyanya kukoshesa pamhando yekodhi, kugadzikana kweAPI, kuyedzwa, uye otomatiki cheki. Chishandiso chekutarisa kutendeseka kweiyo dhatabhesi chimiro nehumwe hunyanzvi hwekudzoreredza chinopihwa. Tekinoroji-huchenjeri, libmdbx inopa ACID, yakasimba shanduko serialization, uye isiri-kuvhara kuverenga ine mutsara kuyera muCPU cores. Auto-compactification, otomatiki dhatabhesi saizi manejimendi, uye renji yemubvunzo fungidziro inotsigirwa.
Shanduko huru:
- Bazi re0.13.x rawana chimiro chakagadzikana. Kuvandudzwa kwebazi re0.14.x kwatanga.
- Iyo mdbx_cursor_count_ex() basa rakawedzerwa kuC API, iyo inokutendera iwe kuti uwane ese ari maviri ehuwandu hwehuwandu hunoenderana nekiyi iripo uye ruzivo nezve muti wakaiswa dendere unochengeta izvi zvakakosha.
- Iyo mdbx::txn::make_broken() nzira, yakafanana nemdbx_txn_break(), yakawedzerwa kuC++ API.
- Izvo zvinoshandiswa mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat shandisa kutema zvikanganiso, yambiro uye mameseji akakosha kubva ku libmdbx.
- Kuchinja maitiro:
- Kana GC profiling ikagoneswa (kuvaka neMDBX_ENABLE_PROFGC=ON sarudzo), iyo CPU nguva yakashandiswa kubatanidza mapeji mapeji yave kuverengwa, i.e. kuti pnl_merge () basa rishande.
- Muchishandiso chekuyedza, iyo data mode value yakapihwa zita kubva kudata.dups kuenda kudata.multi.
- Yakavandudzwa kiyi kureba kwekutonga mukati me cursor_seek().
- Kana mushandisi asingatsananguri kukosha chaiko achishandisa mdbx_env_set_option(MDBX_opt_txn_dp_limit), ipapo tsvina-mapeji-muganhu inogadziriswa pakutanga kweimwe neimwe isina-nested kunyora kutengeserana, zvichienderana nehuwandu hwe RAM iripo uye saizi yedatabase.
- Mune iyo MDBX_NOSTICKYTHREADS modhi, zvipira/kubvisa kutengeserana nested kubva kune chero shinda/shinda inotenderwa.
- Paunenge uchiedza kuita kutengeserana nested muMDBX_WRITEMAP mode, kutema kunoitwa uye kukanganisa kweMDBX_INCOMPATIBLE kunodzoserwa.
- MuC ++ API, muvaki / vanotanga uye nzira dzine chekuita nekugadzirwa kwedhatabhesi geometry, chete default tsika dzinoshandiswa nekukasira.
- Mukati mdbx_env_set_geometry(), heuristics yekusarudza dhatabhesi geometry paramita yakakumbirwa nemushandisi "nekusarudzika" yakagadziridzwa.
- Kugadziriswa:
- Yakagadzirisa kudzoreredzwa kwemutex isiri kuvhurwa paunenge uchiedza kuvhara dbi descriptor zvakare, kusanganisira kana uchiedza kuvhara zvakajeka descriptor mushure mekudzima tafura yakabatana nayo.
- Yakagadziriswa regression ye nested/dupsort cursor state mushure mekuisa data muMDBX_APPEND modhi.
- Tsigiro yekutora boot_id kana uchishanda mukati meLXC mudziyo.
- Yakagadzirisa nyaya nekugadzirisa zvisirizvo kwekuyedza kutanga nested kuverenga transaction. Iko kukanganisa MDBX_EINVAL kwave kudzoserwa mumamiriro ezvinhu aya nekuti nesting inotsigirwa chete pakuverenga-kunyora kutengeserana.
- Iyo SIGSEGV kudzoreredzwa kwekuwana zero kero kana uchishanda mukuverenga-chete modhi pasina kushandisa LCK faira yakabviswa, semuenzaniso, kana uchiisa dhatabhesi pakuverenga-chete midhiya.
Source: opennet.ru
