Ազատ է արձակվել գրադարանային տարբերակը 0.9.1 libmdbx (MDBX) բարձր արդյունավետությամբ, կոմպակտ ներկառուցված բանալի-արժեքի տվյալների բազայի իրականացում: libmdbx կոդը բաշխվում է լիցենզիայի ներքո OpenLDAP հանրային լիցենզիա.
Ներկայիս տարբերակը փոխզիջում է երկարաժամկետ կայուն տարբերակ 1.0 թողարկելու մտադրության միջև C++-ի ամբողջական աջակցությամբ և թողարկումները հետաձգելու դժկամության միջև՝ նոր C++ API-ի սառեցման անպատրաստ լինելու պատճառով: Ներկայացված թողարկումը գրադարանի կայունացմանն ու օգտագործելիության բարելավմանն ուղղված 9 ամսվա աշխատանքի արդյունքն է, ինչպես նաև ներառում է նախնական տարբերակը։ C ++ API.
libmdbx գրադարանը պարզապես «պատառաքաղ» չէ, այլ արմատապես վերափոխված ժառանգ LMDB — «key-value» դասի գործարքային ներկառուցված DBMS՝ հիմնված ծառ B+ առանց պրոակտիվ անտառահատումներ, որը թույլ է տալիս բազմաշերտ գործընթացներին մրցունակ և արդյունավետ աշխատել տեղական (ոչ ցանցային) տվյալների բազայի հետ՝ առանց հատուկ սերվերի գործընթացի: libmdbx հիմնովին ընդլայնվում է իր նախնիների հնարավորությունները՝ միաժամանակ վերացնելով կամ մեղմելով թերությունները։ Միևնույն ժամանակ, ըստ մշակողների, libmdbx-ը մի փոքր ավելի արագ և զգալիորեն ավելի հուսալի է, քան LMDB-ն։
libmdbx-ն առաջարկում է ACID, փոփոխությունների խիստ սերիականացում և ոչ արգելափակող ընթերցում պրոցեսորի միջուկների գծային մասշտաբով: Արդյունավետության փորձարկման արդյունքներ (ուղարկել զուգահեռ ընթերցման/որոնման հարցումներ 1-2-4-8 շղթաներով պրոցեսորի i7-4600U 2 ֆիզիկական միջուկով 4 շղթայական HyperThread ռեժիմում).
MDBX-ի և LMDB-ի ամենակարևոր տարբերությունները.
Սկզբունքորեն, ավելի շատ ուշադրություն է դարձվում կոդի որակին, API-ի հետևողականությանը, թեստին և ավտոմատ ստուգմանը:
Զգալիորեն ավելի մեծ վերահսկողություն շահագործման ընթացքում՝ պարամետրերի ստուգումից մինչև տվյալների բազայի կառուցվածքների ներքին աուդիտ:
Ավտոմատ կոմպակտացում և տվյալների բազայի չափի ավտոմատ կառավարում:
Տվյալների բազայի մեկ ձևաչափ 32-բիթանոց և 64-բիթանոց հավաքների համար:
Նմուշի ծավալների գնահատումն ըստ միջակայքերի (տիրույթի հարցման գնահատում):
Աջակցություն կրկնակի երկար ստեղների և օգտագործողի կողմից ընտրվող տվյալների բազայի էջի չափի համար:
Տվյալների բազայի կառուցվածքի ամբողջականությունը որոշ վերականգնման հնարավորություններով ստուգելու օգտակար ծրագիր:
Հիմնական նորամուծություններն ու բարելավումները հետո նախորդ լուրերը 0.5 թվականի հունվարին 2020 տարբերակի ներդրմամբ.
Ստեղծվել է բաց համակարգ՝ արագ աջակցության և հարցերի պատասխանների համար։ Telegram խումբ.
Վերացվել են մեկ տասնյակից ավելի սխալներ և թերություններ (տես. փոփոխության մատյան).
Ուղղվել են բազմաթիվ տառասխալներ և ուղղագրական սխալներ, և կատարվել են բազմաթիվ կոսմետիկ բարելավումներ:
Ներկառուցված փաստաթղթեր Doxygen ձևաչափով և ավտոմատ արտադրություն Առցանց փաստաթղթեր.
Տրամադրվում է արխիվների ավտոմատ ստեղծում՝ միացված սկզբնաղբյուր տեքստերով:
Ավելացվեց գործարքների և կուրսորների պատրաստման աջակցություն, գործարքների և կուրսորների օգտատիրոջ համատեքստեր:
Լրացուցիչ մեթոդներ են ներդրվել՝ B+tree MVCC ակնթարթային նկարներում հղումների ամբողջականությունը վերահսկելու համար:
Ավելացվել է տվյալների բազայի MVCC նկարը ստուգելու աջակցություն, որը հասանելի է ցանկացած մետա էջի միջոցով՝ վերականգնման համար անցնելու հնարավորությամբ:
Իրականացված աջակցություն՝ փորձարկման նպատակով մեկ գործընթացից տվյալների բազայի վերաբացման համար և այլն:
Տվյալների բազա բացելիս իրականացվել է MDBX_NOSUBDIR տարբերակի ավտոմատ մշակում:
Ավելացվել են լողացող կետային արժեքներից և JavaScript-ի «ունիվերսալ» թվերից ամբողջական ստեղներ ստեղծելու գործառույթներ:
Ընդհանուր առմամբ, 430 ֆայլի վրա ազդող 93 փոփոխություն է կատարվել, ավելացվել է ավելի քան 25 հազար տող, ջնջվել է ավելի քան 8.5 հազար տող։
libmdbx-ի հետագա զարգացումը կկենտրոնանա վերջնական C++ API-ի, բազային կոդի հետագա կայունացման, գրադարանի օգտագործելիության բարելավման և հայտնի Linux բաշխումների համար փաթեթավորման վրա: Առաջարկվող բարելավումների թվում հարկ է նշել ձևաչափի բանալիների աջակցությունը ՀաղորդագրությունՊեքենա.