Выпушчана версія 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):
Найважнейшыя адрозненні MDBX, адносна LMDB:
Прынцыпова больш увагі надаецца якасці кода, "непадучасці" API, тэставанню і аўтаматычным праверкам.
Істотна больш кантролю падчас працы, пачынальна ад праверкі параметраў, да ўнутранага аўдыту структур базы дадзеных.
Аўта-кампактыфікацыя і аўтаматычнае кіраванне памерам БД.
Адзіны фармат БД для 32-бітных і 64-бітных зборак.
Ацэнка аб'ёму выбарак па дыяпазонах (range query estimation).
Падтрымка ключоў удвая большай даўжыні і выбіраемы карыстачом памер старонкі БД.
Утыліта праверкі цэласнасці структуры БД з некаторымі магчымасцямі аднаўлення.
Асноўныя навіны і дапрацоўкі пасля папярэдняй навіны з прадстаўленнем версіі 0.5 у студзені 2020:
Для аператыўнай падтрымкі і адказаў на пытанні створана адкрытая група ў Тэлеграм.
Ліквідавана больш за дзесятак памылак і недахопаў (гл. часопіс змен).
Выпраўлена маса памылак друку і арфаграфічных памылак, множныя касметычныя паляпшэнні.
Аформлена ўбудаваная дакументацыя ў фармаце Doxygen і аўтаматычная генерацыя Online дакументацыі.
Забяспечана аўтаматычнае фармаванне архіваў з амальгамаванымі зыходнымі тэкстамі.
Дададзена падтрымка падрыхтоўкі транзакцый і курсораў, карыстацкіх кантэкстаў для транзакцый і курсораў.
Рэалізаваны дадатковыя метады кантролю спасылкавай цэласнасці ў MVCC-здымках B+tree.
Дададзена падтрымка праверкі MVCC-здымка БД, даступнага праз любую мета-старонку з магчымасцю пераключэння для аднаўлення.
Рэалізавана падтрымка паўторнага адкрыцця БД з аднаго працэсу ў мэтах тэсціравання і да т.п.
Рэалізавана аўтаматычная апрацоўка опцыі MDBX_NOSUBDIR пры адкрыцці БД.
Дададзеныя функцыі фармавання цэлалікавых ключоў з значэнняў якая плавае кропкі і «універсальных» лікаў JavaScript.
Сумарна занесена 430 змен якія закранулі 93 файла, дададзена больш за 25 тысяч радкоў, больш за 8.5 тысяч радкоў выдалена.
Наступная распрацоўка libmdbx будзе засяроджана на фармаванні фінальнага C++ API, далейшай стабілізацыі базавага кода, падвышэнню выгоды выкарыстання бібліятэкі, а таксама фармаванні пакетаў для папулярных дыстрыбутываў Linux. З меркаваных дапрацовак варта адзначыць падтрымку ключоў у фармаце MessagePack.