Издање уграђене ДБМС високих перформанси либмдбк 0.10

После три месеца развоја, издат је либмдбк 0.10.0 (МДБКС), који имплементира компактну уграђену базу података кључ-вредност високих перформанси. Либмдбк код је лиценциран под ОпенЛДАП јавном лиценцом. либмдбк је дубока прерада ЛМДБ ДБМС-а и, према речима програмера, супериорнија је у односу на свог претка у поузданости, распону могућности и перформанси. Наводи се да је либмдбк до 20% бржи од ЛМДБ-а у ЦРУД сценаријима и до 30% бржи ако су интерне контроле онемогућене када се либмдбк гради на нивоу који је упоредив са ЛМДБ-ом.

Либмдбк нуди АЦИД, снажну серијализацију промена и неблокирајућа читања која се линеарно скалирају кроз језгра ЦПУ-а. У либмдбк-у се велика пажња поклања квалитету кода, стабилном АПИ раду, тестирању и аутоматским проверама. Подржана је аутоматска компактификација, аутоматско управљање величином базе података, један формат базе података за 32-битне и 64-битне склопове и процена упита опсега. Испоручује се услужни програм за проверу интегритета структуре базе података са неким могућностима опоравка. Од 2016. године пројекат је финансиран од стране Поситиве Тецхнологиес и користи се у својим производима од 2017. године, а санкције које је влада САД увела против Поситиве Тецхнологиес немају никакав приметан утицај.

Главне иновације, побољшања и поправке додати од последњег издања:

  • Руби повез Махлона Е. Смитха и пробна верзија Питхон повеза Ноела Кунтзеа су доступни, а ГоЛанг повези Алексеја Шарова су ажурирани.
  • За режим „МДБКС_ВРИТЕМАП“, када се подаци базе података мењају директно у РАМ-у, имплементирано је „транспарентно преливање“ промењених страница базе података на диск. Сада, након завршетка сваке операције, такве странице су одмах потпуно спремне за писање на диск и језгро ОС може самостално да испразни промењене странице на диск, а извршавање трансакције неће захтевати њихову модификацију. Као резултат тога, у заузетим сценаријима са недостатком РАМ-а, обим операција на диску се може смањити до 2 пута.
  • Имплементирано избацивање дуго некоришћених копија у сенци модификованих страница, са преференцијама за избацивање страница са великим/дужим вредностима, које се у великој већини сценарија мењају само једном по трансакцији. Резултат је смањен саобраћај на диску и побољшане перформансе у сценаријима са веома великим трансакцијама.
  • Имплементиран је „паметни“ режим за одвајање страница приликом уметања кључева. Сада, приликом уметања наређених секвенци, странице се аутоматски потпуно попуњавају, ау другим случајевима стабло је оптималније избалансирано. Као резултат тога, у просеку, странице базе података се попуњавају оптималније и Б-стабло је уравнотеженије, што има позитиван ефекат на перформансе.
  • Додата је статистика операција са страницама, што вам омогућава да прецизно процените трошкове измене операција са базом података.
  • Исправљено је више од десетак грешака и грешака, укључујући: проблеме са прављењем помоћу МинГВ-а, коришћењем `стд::филесистем::патх` у иОС-у <= 13.0, циљањем изградње старијих верзија Виндовс-а итд.
  • Укупно је направљено више од 200 измена у 66 датотека, ~6500 линија је додато, ~4500 је обрисано.

Одвојено, желео бих да напоменем избор Турбо-Гетх пројекта (турбо форк Го-Етхереум) либмдбк као новог позадинског система за складиштење, и такође да се захвалим тиму пројекта (посебно Алексеју Шарову, Артјому Воротникову и Алексеју Акхунову) на њиховом велика помоћ у тестирању у екстремним сценаријима употребе. Конкретно, откривен је и елиминисан дефект у управљању читањем унапред/кеширањем, што је довело до деградације перформанси у сценаријима који се тешко репродукују са великим базама података.

Извор: опеннет.ру

Додај коментар