Rilis DBMS sing dipasang kanthi kinerja dhuwur libmdbx 0.11.3

Pustaka libmdbx 0.11.3 (MDBX) dirilis kanthi implementasi database nilai kunci sing dipasang ing kinerja dhuwur. Kode libmdbx dilisensi ing lisensi OpenLDAP Public License. Kabeh sistem operasi lan arsitektur saiki didhukung, uga Elbrus Rusia 2000. Ing pungkasan taun 2021, libmdbx digunakake minangka backend panyimpenan ing loro klien Ethereum paling cepet - Erigon lan "Shark" anyar, sing, miturut kasedhiya. informasi, minangka klien Ethereum kinerja paling dhuwur.

Secara historis, libmdbx minangka desain ulang jero saka LMDB DBMS lan ngluwihi progenitor ing babagan linuwih, set fitur lan kinerja. Dibandhingake karo LMDB, libmdbx menehi akeh penekanan ing kualitas kode, stabilitas API, tes, lan pamriksa otomatis. Sawijining sarana kanggo mriksa integritas struktur database diwenehake karo sawetara opsi pemulihan.

Bijaksana teknologi, libmdbx nawakake ACID, serialisasi owah-owahan sing kuat, lan maca non-blocking kanthi skala linear ing inti CPU. Kompaktifikasi otomatis, manajemen ukuran basis data otomatis, lan estimasi pitakon kisaran didhukung. Wiwit 2016, proyek kasebut didanai dening Positive Technologies lan wis digunakake ing produke wiwit 2017.

libmdbx nawakake API C ++, uga ikatan basa sing didhukung penggemar kanggo Rust, Haskell, Python, NodeJS, Ruby, Go, lan Nim.

Inovasi utama, dandan lan koreksi ditambahake wiwit warta sadurunge tanggal 11 Oktober:

  • C++ API dianggep siap digunakake.
  • Nganyari data GC nalika nindakake transaksi gedhe wis cepet banget, sing penting banget nalika nggunakake libmdbx ing ekosistem Ethereum.
  • Tandha internal format basis data wis diganti kanggo ndhukung nganyari otomatis, sing transparan kanggo pangguna. Iki ngidini sampeyan ngilangi pesen positif palsu babagan korupsi database nalika versi perpustakaan sing lawas digunakake kanggo maca transaksi sing direkam dening versi saiki.
  • Ditambahake fungsi mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() lan mdbx_env_get_syncbytes(). Ditambahake dhukungan kanggo operasi MDBX_SET_UPPERBOUND.
  • Kabeh bebaya nalika mbangun karo kabeh compiler didhukung ing C ++ 11/14/17/20 mode wis ngilangi. Kompatibilitas karo kompiler warisan dipesthekake: clang wiwit saka 3.9, gcc wiwit saka 4.8, kalebu perakitan nggunakake cdevtoolset-9 kanggo CentOS / RHEL 7.
  • Ndandani kamungkinan konflik kaca meta sawise ngalih kanthi manual menyang kaca meta tartamtu nggunakake sarana mdbx_chk.
  • Ndandani kesalahan MDBX_PROBLEM sing ora dikarepke nalika bali nalika nimpa kaca meta warisan.
  • Ndandani bali MDBX_NOTFOUND yen ana pertandhingan sing ora pas nalika ngolah panyuwunan MDBX_GET_BOTH.
  • Ndandani kesalahan kompilasi ing Linux yen ora ana file header kanthi deskripsi antarmuka karo kernel.
  • Ndandani konflik antarane gendera internal MDBX_SHRINK_ALLOWED lan pilihan MDBX_ACCEDE.
  • Sawetara pamriksan sing ora perlu wis diilangi.
  • Ndandani bali MDBX_RESULT_TRUE sing ora dikarepke saka fungsi mdbx_env_set_option().
  • Total, luwih saka 90 owah-owahan digawe kanggo 25 file, ~1300 baris ditambahake, ~600 dibusak.

Source: opennet.ru

Add a comment