Mae'r llyfrgell libmdbx 0.13.6 (MDBX) wedi'i rhyddhau, gan weithredu cronfa ddata perfformiad uchel, gryno, gwerth allwedd wedi'i hymgorffori. Mae'r cod libmdbx yn cael ei ddosbarthu o dan Drwydded Apache 2.0. Cefnogir yr holl systemau gweithredu a phensaernΓ―aeth gyfredol, yn ogystal Γ’'r Elbrus Rwsia 2000. Ar gyfer libmdbx, cynigir API uwch ar gyfer C ++, yn ogystal Γ’ rhwymiadau a gefnogir gan frwdfrydedd i'r ieithoedd Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala. Mae prosiectau sy'n defnyddio libmdbx yn cynnwys Isar, Erigon, a Reth, yn ogystal Γ’ datblygiadau gan StarkWare a Positive Technologies.
Yn hanesyddol, mae libmdbx yn ail-weithio dwfn o'r LMDB DBMS ac yn rhagori ar ei hynafiad o ran dibynadwyedd, set nodwedd a pherfformiad. O'i gymharu Γ’ LMDB, mae libmdbx yn rhoi llawer o bwyslais ar ansawdd cod, sefydlogrwydd API, profi, a gwiriadau awtomataidd. Darperir cyfleustodau ar gyfer gwirio cywirdeb strwythur y gronfa ddata gyda rhai galluoedd adfer. Yn dechnolegol, mae libmdbx yn cynnig ACID, cyfresoli newidiadau yn gryf, a darlleniadau di-rwystro gyda graddio llinellol ar draws creiddiau CPU. Cefnogir awto-gywasgu, rheoli maint cronfa ddata yn awtomatig, ac amcangyfrif ymholiad amrediad.
Newidiadau mawr:
- Newid Ymddygiad: Pan na ellir dadrwymo cyrchwr o'i drafodyn cyfredol, mae mdbx_cursor_bind() bellach yn dychwelyd MDBX_EINVAL yn lle MDBX_BAD_TXN.
- Er mwyn osgoi problemau posibl, mae defnyddio copy_file_range() ar gnewyllynnau wedi'i analluogi. Linux 5.3 - 5.18 .
- Mae taflu std::invalid_argument bellach yn cael ei wneud gyda neges MDBX_EINVAL benodol.
- Wedi trwsio atchweliad wrth ddefnyddio cyrchyddion ar gyfer DBI = 0 (aka GC / FreeDB) mewn trafodion darllen.
- Atchweliad sefydlog ar ffurf gwall EAGAIN wrth gopΓ―o cronfa ddata i NFS a CIFS / SMB.
- Yn ystod mireinio/datblygu'r API, ychwanegwyd caffael clo ffeiliau at y swyddogaeth copΓ―o gan ddefnyddio fcntl() a flock(). Fodd bynnag, yn dibynnu ar fersiwn y cnewyllyn lleol, y fersiwn o bell gweinydd NFS ac opsiynau mowntio, gallai hyn arwain at ddychwelyd y gwall POSIX EAGAIN (11) ar y rhan fwyaf o lwyfannau, gan gynnwys Linux).
- Wedi trwsio gwall uno/adseilio y tu mewn i mdbx_txn_release_all_cursors_ex() a allai arwain at wallau MDBX_EBADSIGN annisgwyl dilynol a gollyngiadau cof.
- Gwiriad honiad sefydlog yn y llwybr cwblhau trafodion nythu.
- Posibilrwydd sefydlog o ddychwelyd gwall annisgwyl MDBX_BUSY o mdbx_txn_lock(dont_wait=false).
- Ar gyfer cydnawsedd Γ’ GCC 15.x yn y modd C23, mae trefn pennu priodoleddau swyddogaeth wedi'i newid.
Ffynhonnell: opennet.ru
