Release fan de kompakte ynbêde DBMS libmdbx 0.9.1

Released bibleteek ferzje 0.9.1 libmdbx (MDBX) ymplemintaasje fan in hege-optreden, kompakte ynbêde kaai-wearde databank. De libmdbx-koade wurdt ferspraat ûnder in lisinsje OpenLDAP Iepenbiere lisinsje.

De hjoeddeistige ferzje is in kompromis tusken de bedoeling om in lange-termyn stabile ferzje 1.0 frij te litten mei folsleine C ++-stipe en de ûnwilligens om releases te fertrage fanwegen ûnfoarriedigens foar it befriezen fan de nije C ++ API. De presinteare release is it resultaat fan 9 moannen fan wurk rjochte op it stabilisearjen fan de bibleteek en it ferbetterjen fan syn brûkberens, en omfettet ek in foarriedige ferzje C++ API.

De libmdbx-bibleteek is net allinich in "gabel", mar in radikaal opnij ûntwurpen neisiet LMDB - transaksjoneel ynbêde DBMS fan 'e klasse "key-wearde" basearre op beam B+ sûnder proaktive logging, wêrmei multi-threaded prosessen kompetitive en effisjint wurkje kinne mei in lokaal dielde (net-netwurk) databank sûnder in tawijd serverproses. libmdbx yn prinsipe wreidet út mooglikheden fan syn foarfaar, wylst tagelyk elimineren of mitigating neidielen. Tagelyk, neffens de ûntwikkelders, is libmdbx in bytsje flugger en signifikant betrouberer as LMDB.

libmdbx suggerearret acid, strikte serialisaasje fan feroaringen en net-blokkearjend lêzen mei lineêre skaalfergrutting oer CPU-kearnen. Prestaasjetestresultaten (ferstjoere parallelle lês-/sykoanfragen yn 1-2-4-8 threads op in CPU i7-4600U mei 2 fysike kearnen yn 4-thread HyperThread-modus):

Release fan de kompakte ynbêde DBMS libmdbx 0.9.1

De wichtichste ferskillen tusken MDBX en LMDB:

  • Yn prinsipe wurdt mear omtinken jûn oan koadekwaliteit, API-konsistinsje, testen en automatyske kontrôles.
  • Oanmerklik mear kontrôle tidens operaasje, fan kontrôle parameters oant ynterne kontrôle fan databasestruktueren.
  • Auto-kompaktifikaasje en automatysk behear fan databasegrutte.
  • In inkele databankformaat foar 32-bit en 64-bit gearkomsten.
  • Skatting fan samplevoluminten troch berik (berikfraachskatting).
  • Stipe foar twa kear sa lange kaaien en troch de brûker te selektearjen databasesidegrutte.
  • In hulpprogramma foar it kontrolearjen fan de yntegriteit fan 'e databankstruktuer mei guon herstelmooglikheden.

Main ynnovaasjes en ferbetterings na foarige nijs mei de yntroduksje fan ferzje 0.5 yn jannewaris 2020:

  • In iepen systeem is makke foar prompt stipe en antwurden op fragen. Telegram groep.
  • Mear dan in tsiental flaters en tekoartkommingen binne eliminearre (sjoch. changelog).
  • In protte typ- en staveringsflaters binne reparearre, en in protte kosmetyske ferbetterings binne makke.
  • Testscenario's binne útwreide.
  • Stipe foar iOS, Android, buildroot, musl, uClibc, WSL1 и Wyn.
  • C ++ API-foarbyld útbrocht yn ien koptekst triem.
  • Ynboude dokumintaasje yn Doxygen-formaat en automatyske generaasje Online dokumintaasje.
  • Automatyske generaasje fan argiven mei gearfoege boarneteksten wurdt levere.
  • Stipe tafoege foar it tarieden fan transaksjes en cursors, brûkerskonteksten foar transaksjes en cursors.
  • Oanfoljende metoaden binne ymplementearre om referinsjele yntegriteit te kontrolearjen yn B + tree MVCC-snapshots.
  • Stipe tafoege foar it kontrolearjen fan in MVCC-snapshot fan 'e databank, tagonklik fia elke metaside mei de mooglikheid om te wikseljen foar herstel.
  • Implementearre stipe foar it opnij iepenjen fan de databank fan ien proses foar testdoelen, ensfh.
  • Implementearre automatyske ferwurking fan de MDBX_NOSUBDIR opsje by it iepenjen fan in databank.
  • Funksjes tafoege foar it generearjen fan heule getalkaaien út driuwende puntwearden en "universele" JavaScript-nûmers.
  • Yn totaal waarden 430 wizigingen makke dy't 93 bestannen beynfloedzje, mear as 25 tûzen rigels waarden tafoege, mear as 8.5 tûzen rigels waarden wiske.

De folgjende ûntwikkeling fan libmdbx sil rjochtsje op 'e definitive C ++ API, fierdere stabilisaasje fan' e basiskoade, it ferbetterjen fan de brûkberens fan 'e bibleteek, en ferpakking foar populêre Linux-distribúsjes. Under de foarstelde ferbetterings is it de muoite wurdich op te merken stipe foar toetsen yn it formaat MessagePack.

Boarne: opennet.ru

Add a comment