Apre senk ane nan devlopman, yo te pibliye dezyèm kandida libmdbx 1.0 lage

Disponib pou teste dezyèm kandida pou piblikasyon bibliyotèk la libmdbx ak aplikasyon an nan yon wo-pèfòmans, kontra enfòmèl ant baz done kle-valè. Vèsyon aktyèl la (0.5) se yon lage teknik, ki make fini an nan nenpòt amelyorasyon ak tranzisyon an nan faz nan tès piblik final la ak estabilizasyon, ak fòmasyon an ki vin apre nan premye lage konplè nan bibliyotèk la. kòd libmdbx distribiye pa ki gen lisans anba Lisans Piblik OpenLDAP.

Bibliyotèk la MDBX se yon fouchèt revize siyifikativman soti nan LMDB — tranzaksyon entegre DBMS nan klas "kle-valè" ki baze sou pye bwa B+ san yo pa antre aktif, ki pèmèt pwosesis milti-threaded yo travay konpetitif ak efikasite ak yon baz done lokalman pataje (pa rezo). Nan vire, MDBX se pi vit ak plis serye pase LMDB, epi an menm tan an kenbe tout karakteristik prensipal yo nan zansèt li yo, tankou ASID ak lekti ki pa bloke ak echèl lineyè atravè nwayo CPU yo.

Diferans ki pi enpòtan ant MDBX ak LMDB:

  • Fondamantalman, yo peye plis atansyon sou bon jan kalite kòd, tès ak chèk otomatik yo.
  • Siyifikativman plis kontwòl pandan operasyon an, soti nan tcheke paramèt nan kontwòl kontab entèn nan estrikti baz done.
  • Oto-konpaktifikasyon ak jesyon otomatik gwosè baz done.
  • Yon fòma baz done sèl pou asanble 32-bit ak 64-bit.
  • Estimasyon volim echantiyon pa chenn (estimasyon rechèch ranje).
  • Sipò pou kle de fwa pi gwo ke krèp ak gwosè paj baz done itilizatè a chwazi.

Kandida libmdbx la se rezilta yon desizyon ki te pran an Out 2019 pou separe pwojè MDBX ak MithrilDB. An menm tan an, libmdbx deside elimine (rasyonèl) maksimòm dèt teknik la ak estabilize bibliyotèk la. An reyalite, 2-3 fwa plis yo te fè nan direksyon deziyen an pase sa te okòmansman estime ak planifye:

  • Yo te aplike sipò pou macOS ak platfòm dezyèm nivo: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Yo ka ajoute sipò AIX ak HP-UX jan sa nesesè.
  • Yo te dezenfekte kòd la lè l sèvi avèk Dezenfektan Konpòtman Undefined ak Dezenfektan Adrès, tout avètisman lè bati ak "-Wpedantic", tout avètisman Coverity Static Analyzer, elatriye yo te elimine.
  • Mizajou Deskripsyon API.
  • Fusion (amalgamasyon) nan kòd sous pou fasilite nan entegre.
  • CMake sipò.
  • Sipò pou tranzaksyon enbrike.
  • Sèvi ak bootid pou detèmine si OS la rekòmanse (sispann baz done sal).
  • Konte fen-a-fen nan paj mete ajou/ansyen ak enfòmasyon pwolonje sou tranzaksyon yo.
  • Opsyon MDBX_ACCEDE pou konekte ak yon baz done ki deja louvri nan mòd konpatib.
  • Sèvi ak OFD bloke lè disponib.
  • Sovgad cho nan tiyo.
  • Espesyalize optimize algorithm klasman entèn (jiska 2-3 fwa pi vit pase "qsort()" ak jiska 30% pi vit pase "std::sort ()").
  • Longè maksimòm kle a te ogmante.
  • Kontwòl otomatik nan lekti davans (estrateji kachèt dosye baz done nan memwa).
  • Plis agresif ak pi vit oto-konpaktifikasyon.
  • Yon estrateji pi pi bon pou fusion B + paj pye bwa.
  • Kontwòl sistèm dosye ki pa lokal yo (NFS, Samba, elatriye) pou anpeche domaj baz done si yo itilize mal.
  • Yo te elaji seri tès yo.

Devlopman "pwochen" vèsyon libmdbx la ap kontinye kòm yon pwojè separe MithrilDB, pandan y ap vektè devlopman nan vèsyon "aktyèl" MDBX ki vize a konjelasyon seri a karakteristik ak estabilize li. Desizyon sa a te pran pou twa rezon:

  • Totalman enkonpatib: MithrilDB mande pou yon fòma dosye baz done diferan (enkonpatib) ak yon API diferan (enkonpatib) pou aplike tout karakteristik planifye.
  • Nouvo kòd sous: Yo mete kòd sous MithrilDB la lisansye endepandan de LMDB, epi pwojè a li menm gen plan pou l pibliye anba yon lisans diferan (apwouve pa OSWA SI Apache 2.0 lisans, pa OpenLDAP Lisans Piblik).
  • Separasyon an evite potansyèl konfizyon, entwodui plis sètitid epi asire yon chemen endepandan pou pwojè yo.

MithrilDB, tankou MDBX, tou baze sou pye bwa B+ epi li pral prezante tou pèfòmans trè wo, pandan y ap elimine yon kantite dezavantaj fondamantal nan MDBX ak LMDB. An patikilye, pwoblèm nan nan "long lekti", ki manifeste tèt li kòm "anfle" nan baz done a akòz lefèt ke pwosesis fatra bloke pa tranzaksyon lekti long, yo pral elimine. Nouvo karakteristik MithrilDB yo enkli:

  • Sipò pou mete baz done a sou plizyè medya heterogeneous: HDD, SSD ak memwa ki pa temèt.
  • Estrateji optimal pou "valè" ak "valè ki ba", pou done "cho", "cho" ak "frèt".
  • Sèvi ak Merkle Tree pou kontwole entegrite baz done a.
  • Si ou vle itilizasyon WAL ak pèfòmans siyifikativman amelyore nan senaryo ekri entansif ak garanti entegrite done yo.
  • Lazy ratrape komèt done sou disk.

Sous: opennet.ru

Add nouvo kòmantè