Kadua libmdbx v1.0 release calon sanggeus lima taun pangwangunan.

taman pustaka libmdbx mangrupikeun turunan LMDB anu didesain ulang sacara signifikan - databés nilai konci anu kompak, kinerja anu luhur pisan.
Versi ayeuna v0.5 mangrupakeun release teknis, nandaan parantosan sagala perbaikan sarta transisi ka fase nguji final publik jeung stabilisasi, jeung formasi saterusna release pinuh mimiti perpustakaan.

LMDB nyaéta DBMS nilai konci transactional anu cukup terkenal dumasar kana tangkal B+ tanpa logging proaktif, anu ngamungkinkeun ngagimbung prosés multi-threaded tiasa dianggo sacara kompetitif sareng éfisién pisan sareng pangkalan data anu dibagi sacara lokal (sanés jaringan). Sabalikna, MDBX langkung gancang sareng langkung dipercaya tibatan LMDB, sedengkeun libmdbx nahan sadaya fitur konci karuhunna, sapertos Asid jeung non-blocking maca kalawan skala linier sakuliah cores CPU, sarta ogé nambahkeun sababaraha anyar.

Katerangan ngeunaan bédana sareng perbaikan libmdbx relatif ka LMDB pantes janten tulisan anu misah (rencanana bakal diterbitkeun dina Habré sareng Medium). Di dieu pantes disebatkeun anu paling penting sareng katingali:

  • Dasarna, langkung perhatian dibayar ka kualitas kode, 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 ukuran sampel ku rentang (rentang query estimasi).
  • Rojongan pikeun konci dua kali leuwih badag batan pancakes sarta ukuran kaca database-selectable pamaké.

Calon pelepasan libmdbx mangrupikeun hasil tina kaputusan (tingali di handap) pikeun misahkeun proyék MDBX sareng MithrilDB dina bulan Agustus 2019. Dina waktos anu sami, libmdbx mutuskeun pikeun ngaleungitkeun hutang téknis maksimum (rasional) sareng nyaimbangkeun perpustakaan. Nyatana, 2-3 kali langkung seueur dilakukeun dina arah anu ditunjuk tibatan anu diperkirakeun sareng direncanakeun:

  • Rojongan pikeun Mac OS sareng platform tingkat kadua parantos dilaksanakeun: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Pangrojong AIX sareng HP-UX tiasa ditambihan upami diperyogikeun.
  • Sanitasi kodeu nganggo Undefined Behavior Sanitizer sareng Address Sanitizer, ngaleungitkeun sadaya peringatan nalika ngawangun sareng -Wpedantic, sadaya peringatan Coverity Static Analyzer, jsb.
  • Pembaruan pedaran API.
  • Amalgamation kode sumber pikeun betah embedding.
  • rojongan CMake.
  • Rojongan pikeun transaksi nested.
  • Ngagunakeun bootid pikeun nangtukeun naha OS geus rebooted (kotor database eureun).
  • Cacah tungtung-ka-tungtung tina diropéa/kaca heubeul jeung informasi urus nambahan.
  • Pilihan MDBX_ACCEDE pikeun nyambungkeun kana pangkalan data anu parantos kabuka dina modeu anu cocog.
  • pamakean OFD ngahalangan lamun sadia.
  • Cadangan panas dina pipa.
  • Algoritma asihan internal husus dioptimalkeun (nepi ka 2-3 kali leuwih gancang ti qsort () sarta nepi ka 30% leuwih gancang ti STD :: diurutkeun ()).
  • Panjang konci maksimum geus ngaronjat.
  • Kontrol otomatis maca payun (strategi cache file database dina mémori).
  • Kompaktifikasi otomatis langkung agrésif sareng langkung gancang.
  • Strategi anu langkung optimal pikeun ngahijikeun halaman tangkal B +.
  • Kontrol sistem file non-lokal (NFS, Samba, jsb) pikeun nyegah karusakan database upami dianggo leres.
  • Susunan tés parantos dilegaan.

Pangembangan versi "salajengna" libmdbx bakal diteruskeun salaku proyék anu misah MithrilDB, sedengkeun véktor pamekaran versi "ayeuna" MDBX ditujukeun pikeun beku set fitur sareng nyaimbangkeunana. Kaputusan ieu dilakukeun pikeun tilu alesan:

  • Sakabehna sauyunan: MithrilDB merlukeun béda (teu cocog) format file database sarta béda (teu cocog) API pikeun nerapkeun sagala fitur rencanana.
  • Kode sumber anyar: Kodeu sumber MithrilDB geus dijieun dilisensikeun bebas ti LMDB, sarta proyék sorangan rencanana bakal diterbitkeun dina lisénsi béda (disatujuan ku ATAWA IF lisénsi Apache 2.0teu Yayasan OpenLDAP).
  • separation nu avoids poténsi kabingungan, nyadiakeun leuwih kapastian, sarta ensures yén proyék boga jalur bebas maju.

MithrilDB, sapertos MDBX, ogé dumasar kana tangkal B+ sareng ogé bakal nampilkeun kinerja anu luhur pisan, bari ngaleungitkeun sababaraha kalemahan dasar MDBX sareng LMDB. Dina sababaraha hal, masalah "baca panjang", nu manifests sorangan salaku "bareuh" tina database alatan kanyataan yén ngolah sampah diblokir ku transaksi bacaan panjang, bakal ngaleungitkeun. Fitur MithrilDB anyar kalebet:

  • rojongan pikeun nempatkeun database dina sababaraha média hétérogén: HDD, SSD jeung memori non-volatile.
  • strategi optimal pikeun "berharga" jeung "low-nilai", pikeun data "panas", "haneut" jeung "tiis".
  • ngagunakeun tangkal Merkle pikeun monitor integritas database.
  • pamakéan pilihan tina WAL jeung kinerja nyata leuwih luhur dina skenario nulis-intensif jeung jaminan integritas data.
  • Puguh nyekel-up fiksasi data dina disk.

sumber: linux.org.ru

Tambahkeun komentar