Ngaleupaskeun kompak DBMS libmdbx 0.9.1

Dileupaskeun Vérsi perpustakaan 0.9.1 libmdbx (MDBX) palaksanaan kinerja tinggi, kompak embedded key-value database. Kode libmdbx disebarkeun dina lisénsi Lisensi Publik OpenLDAP.

Versi ayeuna mangrupikeun kompromi antara niat pikeun ngaleupaskeun versi stabil jangka panjang 1.0 kalayan dukungan C ++ lengkep sareng horéam ngalambatkeun rilis kusabab teu siap pikeun beku C ++ API anyar. Pelepasan anu disayogikeun mangrupikeun hasil tina 9 bulan padamelan anu ditujukeun pikeun nyaimbangkeun perpustakaan sareng ningkatkeun kagunaanna, sareng ogé kalebet versi awal. C++ API.

Perpustakaan libmdbx henteu ngan ukur "garpu", tapi turunan anu didesain ulang sacara radikal LMDB - transactional DBMS embedded tina "konci-nilai" kelas dumasar kana tangkal B+ tanpa logging proaktif, anu ngamungkinkeun prosés multi-threaded tiasa dianggo sacara kompetitif sareng éfisién sareng database anu dibagi sacara lokal (non-jaringan) tanpa prosés server khusus. libmdbx dasarna ngalegaan kamampuan karuhunna, bari sakaligus ngaleungitkeun atanapi ngirangan kalemahan. Dina waktos anu sami, numutkeun pamekar, libmdbx sakedik langkung gancang sareng langkung dipercaya tibatan LMDB.

libmdbx nyarankeun Asid, serialization ketat parobahan sarta non-blocking bacaan kalawan skala linier sakuliah cores CPU. Hasil tés kinerja (ngirim pamundut maca / milarian paralel dina 1-2-4-8 utas dina CPU i7-4600U sareng 2 inti fisik dina modeu HyperThread 4-thread):

Ngaleupaskeun kompak DBMS libmdbx 0.9.1

Bedana pangpentingna antara MDBX sareng LMDB:

  • Dasarna, perhatian langkung dibayar ka kualitas kode, konsistensi API, uji sareng cek otomatis.
  • Nyata langkung kontrol nalika operasi, ti mariksa parameter pikeun Inok internal tina struktur database.
  • Otomatis-compactification sarta manajemén ukuran database otomatis.
  • Hiji format database tunggal pikeun rakitan 32-bit jeung 64-bit.
  • Estimasi volume sampel ku rentang (rentang query estimasi).
  • Rojongan pikeun konci dua kali langkung panjang sareng ukuran halaman database anu tiasa dipilih ku pangguna.
  • Utiliti pikeun mariksa integritas struktur database sareng sababaraha kamampuan pamulihan.

inovasi utama jeung perbaikan sanggeus warta saméméhna kalayan ngenalkeun versi 0.5 dina Januari 2020:

  • Sistem kabuka parantos diciptakeun pikeun ngadukung gancang sareng ngajawab patarosan. Grup telegram.
  • Langkung ti belasan kasalahan sareng kakurangan parantos dileungitkeun (tingali. log robah).
  • Seueur typo sareng kasalahan éjahan parantos dilereskeun, sareng seueur perbaikan kosmetik parantos dilakukeun.
  • Skenario tés geus dimekarkeun.
  • Rojongan pikeun ios, Android, ngawangun akar, musl, uClibc, WSL1 и Inuman anggur.
  • C++ API sawangan dirilis dina hiji file lulugu.
  • Dokuméntasi anu diwangun dina format Doxygen sareng generasi otomatis Dokuméntasi online.
  • Generasi otomatis arsip sareng téks sumber anu dihijikeun disayogikeun.
  • Ditambahkeun dukungan pikeun nyiapkeun transaksi sareng kursor, kontéks pangguna pikeun transaksi sareng kursor.
  • Métode tambahan geus dilaksanakeun pikeun ngadalikeun integritas rujukan dina B + tangkal MVCC snapshots.
  • Ditambahkeun dukungan pikeun mariksa snapshot MVCC tina pangkalan data, tiasa diaksés tina halaman meta mana waé kalayan kamampuan ngalih pikeun pamulihan.
  • Dilaksanakeun dukungan pikeun muka deui pangkalan data tina hiji prosés pikeun tujuan uji, jsb.
  • Dilaksanakeun ngolah otomatis tina pilihan MDBX_NOSUBDIR nalika muka database.
  • Ditambahkeun fungsi pikeun ngahasilkeun konci integer tina nilai titik ngambang sareng angka "universal" JavaScript.
  • Dina total, 430 parobahan dilakukeun mangaruhan 93 file, leuwih ti 25 sarébu garis ditambahkeun, leuwih ti 8.5 sarébu baris dihapus.

Ngembangkeun salajengna libmdbx bakal difokuskeun API C ++ final, stabilisasi salajengna kode dasar, ngaronjatkeun usability perpustakaan, sarta bungkusan keur distribusi Linux Ubuntu populér. Diantara perbaikan anu diusulkeun, perhatoskeun dukungan pikeun konci dina formatna MessagePack.

sumber: opennet.ru

Tambahkeun komentar