Kapindho libmdbx v1.0 release calon sawise limang taun pembangunan.

perpustakaan libmdbx minangka turunan LMDB sing didesain ulang kanthi signifikan - database nilai kunci sing dipasang kanthi kinerja dhuwur banget.
Versi saiki v0.5 punika release technical, nandhani completion saka sembarang dandan lan transisi kanggo phase testing final umum lan stabil, karo tatanan sakteruse saka release lengkap pisanan perpustakaan.

LMDB minangka DBMS nilai kunci transaksional sing cukup kondhang adhedhasar wit B+ tanpa logging proaktif, sing ngidini grombolan pangolahan multi-utas bisa digunakake kanthi kompetitif lan efisien banget karo basis data sing dienggo bareng sacara lokal (dudu jaringan). Sabanjure, MDBX luwih cepet lan luwih dipercaya tinimbang LMDB, dene libmdbx nahan kabeh fitur utama leluhure, kayata ACID lan non-blocking maos karo skala linear antarane inti CPU, lan uga nambah sawetara anyar.

Katrangan babagan beda lan perbaikan libmdbx relatif marang LMDB pantes artikel kapisah (direncanakake bakal diterbitake ing HabrΓ© lan Medium). Ing kene cocog kanggo nyebutake sing paling penting lan katon:

  • Intine, luwih akeh perhatian dibayar kanggo kualitas kode, tes lan mriksa otomatis.
  • Ngartekno luwih kontrol sak operasi, saka mriksa parameter kanggo audit internal struktur database.
  • Kompaktifikasi otomatis lan manajemen ukuran database otomatis.
  • Format database siji kanggo rakitan 32-bit lan 64-bit.
  • Perkiraan ukuran sampel kanthi kisaran (estimasi pitakon kisaran).
  • Dhukungan kanggo tombol kaping pindho luwih gedhe tinimbang pancake lan ukuran kaca database sing bisa dipilih pangguna.

Calon rilis libmdbx minangka asil keputusan (ndeleng ngisor) kanggo misahake proyek MDBX lan MithrilDB ing Agustus 2019. Ing wektu sing padha, libmdbx mutusake kanggo ngilangi utang teknis maksimal (rasional) lan nyetabilake perpustakaan. Nyatane, 2-3 kaping luwih ditindakake ing arah sing wis ditemtokake tinimbang sing dikira lan direncanakake:

  • Dhukungan kanggo Mac OS lan platform tingkat kapindho wis dileksanakake: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Dhukungan AIX lan HP-UX bisa ditambahake yen perlu.
  • Sanitizer kode nggunakake Undefined Behavior Sanitizer lan Address Sanitizer, ngilangi kabeh bebaya nalika mbangun karo -Wpedantic, kabeh Coverity Static Analyzer bebaya, etc.
  • Nganyari katrangan API.
  • Gabungan kode sumber supaya gampang disematake.
  • Dhukungan CMake.
  • Dhukungan kanggo transaksi nested.
  • Nggunakake bootid kanggo nemtokake manawa OS wis urip maneh (mandeg database reged).
  • Ngitung end-to-end kaca sing dianyari/lawas lan informasi transaksi lengkap.
  • Opsi MDBX_ACCEDE kanggo nyambungake menyang database sing wis mbukak ing mode sing kompatibel.
  • Gunakake pemblokiran OFD nalika kasedhiya.
  • Cadangan panas ing pipa.
  • Specialized optimized algoritma ngurutake internal (munggah 2-3 kaping luwih cepet saka qsort () lan munggah 30% luwih cepet saka std :: Urut ()).
  • Dawane tombol maksimal wis tambah.
  • Kontrol otomatis maca ahead (strategi caching file database ing memori).
  • Kompaktifikasi otomatis sing luwih agresif lan luwih cepet.
  • Strategi sing luwih optimal kanggo nggabungake kaca wit B+.
  • Kontrol sistem file non-lokal (NFS, Samba, etc.) kanggo nyegah karusakan database yen digunakake salah.
  • Set tes wis ditambahi.

Pangembangan versi "sabanjure" libmdbx bakal diterusake minangka proyek sing kapisah MithrilDB, nalika vektor pangembangan versi "saiki" saka MDBX ngarahake pembekuan set fitur lan stabil. Kaputusan iki digawe kanggo telung alasan:

  • Babar blas ora kompatibel: MithrilDB mbutuhake format file database beda (ora kompatibel) lan API beda (ora kompatibel) kanggo ngleksanakake kabeh fitur ngrancang.
  • Kode sumber anyar: Kode sumber MithrilDB wis dilisensi bebas saka LMDB, lan proyek kasebut dhewe direncanakake bakal diterbitake miturut lisensi sing beda (disetujoni dening UTAWA Yen lisensi Apache 2.0, lan ora Yayasan OpenLDAP).
  • Pemisahan kasebut ngindhari kebingungan potensial, menehi kepastian luwih akeh, lan mesthekake yen proyek duwe dalan mandiri.

MithrilDB, kaya MDBX, uga adhedhasar wit B+ lan uga bakal nampilake kinerja sing dhuwur banget, nalika ngilangi sawetara kekurangan dhasar MDBX lan LMDB. Utamane, masalah "maca dawa" bakal diilangi, sing diwujudake minangka "pembengkakan" database amarga kasunyatan manawa pangolahan sampah diblokir dening transaksi maca sing dawa. Antarane fitur anyar MithrilDB kudu dicathet:

  • support kanggo manggonke database ing sawetara media heterogen: HDD, SSD lan memori non-molah malih.
  • Sastranegara optimal kanggo "berharga" lan "kurang-nilai", kanggo "panas", "anget" lan "kadhemen" data.
  • nggunakake wit Merkle kanggo ngawasi integritas database.
  • nggunakake opsional saka WAL lan kinerja Ngartekno luwih ing skenario nulis-intensif lan njamin integritas data.
  • Lazy catch-up fiksasi data ing disk.

Source: linux.org.ru

Add a comment