Keluaran DBMS terbenam berprestasi tinggi libmdbx 0.11.3

Pustaka libmdbx 0.11.3 (MDBX) telah dikeluarkan dengan pelaksanaan pangkalan data nilai kunci terbenam padat berprestasi tinggi. Kod libmdbx dilesenkan di bawah Lesen Awam OpenLDAP. Semua sistem pengendalian dan seni bina semasa disokong, serta Elbrus Rusia 2000. Pada penghujung tahun 2021, libmdbx digunakan sebagai bahagian belakang storan dalam dua pelanggan Ethereum terpantas - Erigon dan "Shark" baharu, yang, mengikut tersedia maklumat, adalah pelanggan Ethereum berprestasi tertinggi.

Dari segi sejarah, libmdbx ialah reka bentuk semula mendalam bagi DBMS LMDB dan mengatasi pendahulunya dari segi kebolehpercayaan, set ciri dan prestasi. Berbanding dengan LMDB, libmdbx memberi banyak penekanan pada kualiti kod, kestabilan API, ujian dan semakan automatik. Utiliti untuk menyemak integriti struktur pangkalan data dibekalkan dengan beberapa pilihan pemulihan.

Dari segi teknologi, libmdbx menawarkan ACID, siri perubahan yang kuat dan bacaan tanpa sekatan dengan penskalaan linear merentas teras CPU. Auto-pemadatan, pengurusan saiz pangkalan data automatik dan anggaran pertanyaan julat disokong. Sejak 2016, projek itu telah dibiayai oleh Positive Technologies dan telah digunakan dalam produknya sejak 2017.

libmdbx menawarkan API C++, serta pengikatan bahasa yang disokong peminat untuk Rust, Haskell, Python, NodeJS, Ruby, Go dan Nim.

Inovasi utama, penambahbaikan dan pembetulan ditambah sejak berita sebelumnya pada 11 Oktober:

  • API C++ dianggap sedia untuk digunakan.
  • Kemas kini data GC apabila melakukan transaksi besar telah dipercepatkan dengan ketara, yang amat penting apabila menggunakan libmdbx dalam ekosistem Ethereum.
  • Tandatangan dalaman format pangkalan data telah ditukar untuk menyokong pengemaskinian automatik, yang benar-benar telus kepada pengguna. Ini membolehkan anda menghapuskan mesej positif palsu tentang rasuah pangkalan data apabila versi perpustakaan yang lapuk digunakan untuk membaca transaksi yang direkodkan oleh versi semasa.
  • Menambah fungsi mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() dan mdbx_env_get_syncbytes(). Menambah sokongan untuk operasi MDBX_SET_UPPERBOUND.
  • Semua amaran apabila membina dengan semua penyusun yang disokong dalam mod C++ 11/14/17/20 telah dihapuskan. Keserasian dengan penyusun legasi dipastikan: dentang bermula dari 3.9, gcc bermula dari 4.8, termasuk pemasangan menggunakan cdevtoolset-9 untuk CentOS/RHEL 7.
  • Memperbaiki kemungkinan konflik halaman meta selepas beralih secara manual ke halaman meta tertentu menggunakan utiliti mdbx_chk.
  • Membetulkan ralat MDBX_PROBLEM yang tidak dijangka yang dikembalikan apabila menimpa halaman meta lama.
  • Membetulkan pemulangan MDBX_NOTFOUND sekiranya terdapat padanan yang tidak tepat semasa memproses permintaan MDBX_GET_BOTH.
  • Memperbaiki ralat kompilasi pada Linux jika tiada fail pengepala dengan perihalan antara muka dengan kernel.
  • Memperbaiki konflik antara bendera dalaman MDBX_SHRINK_ALLOWED dan pilihan MDBX_ACCEDE.
  • Beberapa pemeriksaan penegasan yang tidak perlu telah dihapuskan.
  • Membetulkan pulangan MDBX_RESULT_TRUE yang tidak dijangka daripada fungsi mdbx_env_set_option() .
  • Secara keseluruhan, lebih daripada 90 perubahan telah dibuat kepada 25 fail, ~1300 baris ditambah, ~600 telah dipadamkan.

Sumber: opennet.ru

Tambah komen