Выпуск кампактнай убудаванай СКБД libmdbx 0.9.1

Выпушчана версія 0.9.1 бібліятэкі libmdbx (MDBX) з рэалізацыяй высокапрадукцыйнай, кампактнай убудаванай базы дадзеных класа ключ-значэнне. Код libmdbx распаўсюджваецца пад ліцэнзіяй OpenLDAP Public License.

Бягучая версія з'яўляецца кампрамісам паміж намерам выпусціць доўгачасовую стабільную версію 1.0 з паўнавартаснай падтрымкай C++ і нежаданнем адкладаць рэлізы з-за негатоўнасці да замарозкі новага C++ API. Прадстаўлены рэліз з'яўляецца вынікам 9 месяцаў работы накіраванай на стабілізацыю бібліятэкі і павышэння зручнасці яе выкарыстання, а таксама ўключае папярэднюю версію. C++ API.

Бібліятэка libmdbx з'яўляецца не проста "форкам", а кардынальна перапрацаваным нашчадкам LMDB - транзакцыйнай ўбудаванай СКБД класа «ключ-значэнне» на аснове дрэва B+ без папераджальнай часопісізацыі, якая дазваляе шматструменным працэсам канкурэнтна і эфектыўна працаваць з лакальна-падзяляльнай (не сеткавай) БД без вылучанага сервернага працэсу. Libmdbx прынцыпова пашырае магчымасці свайго прабацькі, адначасова ўхіляючы, альбо змякчаючы недахопы. Пры гэтым, па перакананні распрацоўшчыкаў, libmdbx крыху хутчэй і істотна надзейней LMDB.

libmdbx прапануе ACID, строгую серыялізацыю змен і неблакіруючае чытанне з лінейным маштабаваннем па ядрах CPU. Вынікі тэсціравання прадукцыйнасці (адпраўка паралельных запытаў на чытанне/пошук у 1-2-4-8 патоках на CPU i7-4600U c 2-я фізічнымі ядрамі ў рэжыме 4-х патокаў HyperThread):

Выпуск кампактнай убудаванай СКБД libmdbx 0.9.1

Найважнейшыя адрозненні MDBX, адносна LMDB:

  • Прынцыпова больш увагі надаецца якасці кода, "непадучасці" API, тэставанню і аўтаматычным праверкам.
  • Істотна больш кантролю падчас працы, пачынальна ад праверкі параметраў, да ўнутранага аўдыту структур базы дадзеных.
  • Аўта-кампактыфікацыя і аўтаматычнае кіраванне памерам БД.
  • Адзіны фармат БД для 32-бітных і 64-бітных зборак.
  • Ацэнка аб'ёму выбарак па дыяпазонах (range query estimation).
  • Падтрымка ключоў удвая большай даўжыні і выбіраемы карыстачом памер старонкі БД.
  • Утыліта праверкі цэласнасці структуры БД з некаторымі магчымасцямі аднаўлення.

Асноўныя навіны і дапрацоўкі пасля папярэдняй навіны з прадстаўленнем версіі 0.5 у студзені 2020:

  • Для аператыўнай падтрымкі і адказаў на пытанні створана адкрытая група ў Тэлеграм.
  • Ліквідавана больш за дзесятак памылак і недахопаў (гл. часопіс змен).
  • Выпраўлена маса памылак друку і арфаграфічных памылак, множныя касметычныя паляпшэнні.
  • Пашыраны тэставыя сцэнары.
  • Рэалізаваная падтрымка iOS, Android, buildroot, мусл, uClibc, WSL1 и Віно.
  • Прадстаўлена папярэдняя версія C++ API у адным загалоўкавых файлаў.
  • Аформлена ўбудаваная дакументацыя ў фармаце Doxygen і аўтаматычная генерацыя Online дакументацыі.
  • Забяспечана аўтаматычнае фармаванне архіваў з амальгамаванымі зыходнымі тэкстамі.
  • Дададзена падтрымка падрыхтоўкі транзакцый і курсораў, карыстацкіх кантэкстаў для транзакцый і курсораў.
  • Рэалізаваны дадатковыя метады кантролю спасылкавай цэласнасці ў MVCC-здымках B+tree.
  • Дададзена падтрымка праверкі MVCC-здымка БД, даступнага праз любую мета-старонку з магчымасцю пераключэння для аднаўлення.
  • Рэалізавана падтрымка паўторнага адкрыцця БД з аднаго працэсу ў мэтах тэсціравання і да т.п.
  • Рэалізавана аўтаматычная апрацоўка опцыі MDBX_NOSUBDIR пры адкрыцці БД.
  • Дададзеныя функцыі фармавання цэлалікавых ключоў з значэнняў якая плавае кропкі і «універсальных» лікаў JavaScript.
  • Сумарна занесена 430 змен якія закранулі 93 файла, дададзена больш за 25 тысяч радкоў, больш за 8.5 тысяч радкоў выдалена.

Наступная распрацоўка libmdbx будзе засяроджана на фармаванні фінальнага C++ API, далейшай стабілізацыі базавага кода, падвышэнню выгоды выкарыстання бібліятэкі, а таксама фармаванні пакетаў для папулярных дыстрыбутываў Linux. З меркаваных дапрацовак варта адзначыць падтрымку ключоў у фармаце MessagePack.

Крыніца: opennet.ru

Дадаць каментар