հետազոտման համար երկրորդ թեկնածուի թողարկումներ գրադարանը բարձր կատարողականությամբ, կոմպակտ ընդհանուր տվյալների բազայի իրականացմամբ, որը նախատեսված է բանաստեղծական-արժեք դասի համար։ Այլապես 0.5 տարբերակը տեխնիկական թողարկում է, որը նշում է որևէ բարելավման ավարտի և անցում արվեստի հանրային վերջնական փորձարկելու և կայունացման փուլին, հաջորդաբար ձևավորելով գրադարանի առաջին լիարժեք թողարկումը։ Code libmdbx OpenLDAP Հանրային Հայտարարագրի լիցենզիայի ներքո։
MDBX գրադարանը զգալիորեն վերաշարադրված մասնաճյուղ է — գործարքային կառուցվածքային տվյալների բազա, որը հիմնված է սիմ-քարտի ու GPS-ի։ Օրինակ, նոթբուք կամ նույնիսկ , որը թույլ է տալիս բազմաթիվ գործընթացների մրցակցային և արդյունավետ աշխատել տեղական բաշխված (ոչ ցանցային) տվյալների բազայի հետ։ Նույնիսկ MDBX-ը արագ է և ավելի վստահելի է LMDB-ից և պահպանվում են ծնողական բոլոր հիմնական հատկություններ, ինչպիսիք են և անհանգիստ կատարումը CPU միջուկների միջով։
MDBX-ի ամենակարևոր տարբերությունները LMDB-ի համեմատությամբ են՝
- Կոդի որակի, փորձարկումի և ավտոմատ ստուգումների թողարկման վրա համարյա ավելի շատ ուշադրություն է դարձվում։
- Բարձր վերահսկողության ժամանակ, սկսած պարամետրերի ստուգումից մինչև տվյալների բազայի կառուցվածքների ներքին աուդիտ։
- Ավտոմատ կոմպակտացում և տվյալների բազայի չափի ավտոմատ կառավարում։
- Միատարորից տվյալների բազայի ձևաչափ 32-բիտ և 64-բիտ դասարանների համար։
- Ընտրությունների ծավալների գնահատում ըստ տիրույթների (range query estimation)։
- Երկնակի ավելորդ բանաձևերը և օգտատիրոջ կողմից ընտրվող տվյալների բազայի էջի չափը։
Թողարկված libmdbx-ի թեկնածուի թողարկումն է 2019 թվականի օգոստոսին MDBX և MithrilDB նախագծերի բաժանվելու մասին ընդունված որոշման արդյունքը։ Այդ թվում, libmdbx-ում որոշվել է լուծել (արդարացի) տեխնիկական պարտքի առավելագույն և կայունացնել գրադարանը։ Իրականում նշված ուղղությամբ 2-3 անգամ ավելի շատ աշխատանք է կատարվել, քան սկզբում գնահատվել և ծրագրավորվել էր՝
- macOS և «երկրորդ էշելոն» պլատֆորմների աջակցություն իրականացված է՝ FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD։ AIX և HP-UX աջակցությունը կարող է ավելացվել անհրաժեշտության դեպքում։
- Այս կոդը բարելավվել է Undefined Behavior Sanitizer և Address Sanitizer-ի օգնությամբ, բոլոր նախազգուշացումներն առկա են «-Wpedantic» հետ կառուցվող և բոլոր նախազգուշացուցիչ անալիզեր Coverity Static Analyzer և այլն։
- Ներդրում .
- Աղբյուր կոդը միավորում (ամալգամացված) ներդրման հարմարեցման համար։
- CMake-ի աջակցության համար։
- Ելույթի աջակցություն ներթրանկայույթման համար:
- OS-ի վերագործումի կատարման (տեղի չի եղել տվյալների բազայի բջիջների) ախանգավորմանiding օգտագործում։
- Ավելի վաղ էջերի քանակի հանրային հաշվարկ և գործառույթի մասին ավելացված տեղեկություններ։
- MDBX_ACCEDE ընտրություն, արդեն բացված տվյալների բազային միանալու համար համատեղելի ռեժիմում։
- Օգտագործումը ուստի հասանելիության դեպքում։
- Երկրում վերջնական պահուստավորում במելերում։
- Առանձնահատուկ օպտիմիզացված ներքին դասակարգման ալգորիթմ (դեպքերից 2-3 անգամ ավելի արագ «qsort()» և 30%-ով ավելի արագ «std::sort()»):
- Աջակցման դատարկության երկարությունը ավելացված է մինչև առավելագույն երկարությունը։
- Հաճախակի կարդալու ավտոմատ կառավարման համակարգ (ծրագրային կետային ֆայլերի կաշառքի ռազմավարություն):
- Զուգահեռ ավելի ագրեսիվ և արագ ինքնակազմակերպում:
- Առավել օպտիմալ B+ ծառերի էջերի միացման ռազմավարություն:
- Քաղաքային ֆայլային համակարգերի (NFS, Samba և այլն) վերահսկում՝ DB-ի վնասը կանխելու համար սխալ օգտագործման դեպքում:
- Խնդիրների հավաքի ընդլայնում:
MithrilDB-ի «հաջորդ» տարբերակի մշակումը շարունակվելու է առանձին նախագծի շրջանակներում , այն ժամանակ, երբ MDBX-ի « ներկայիս» տարբերակի մշակման ուղղությունը կենտրոնացած է հնարավորությունների սառեցման և կայունացումների վրա: Սա որոշվել է երեք պատճառներով:
- Ամբողջովին անհամատեղելիություն: MithrilDB-ում նախատեսած բոլոր հնարավորությունները իրականացնելու համար անհրաժեշտ է այլ (համակցված) շտկված DB ֆայլերի ձևաչափ և այլ (համակցված) API:
- Նոր աղբյուրի կոդը: MithrilDB-ի աղբյուրի կոդը ապահովվել է LMDB-ի ֆոնտային անկախությունից, իսկ նախագիծը նախատեսվում է հրապարակել այլ լիցենզիայի (ավելի հաստատված) Apache 2.0 լիցենզիայով, այլ ոչ թե ).
- Բաժանումը թույլ է տալիս խուսափել պոտենցիալ շփոթությունից, ավելացնել շատ աղմուկ և ապահովել նախագծերի զարգացման անկախություն:
MithrilDB, ինչպես MDBX, նույնպես հիմնվում է և նույնպես շատ բարձր արդյունավետություն կունենա, իսկ MDBX և LMDB-ի սեթակություները կհեռացվեն: Հատկապես, կվերացվի «երկար ընթերցումներ» խնդիրը, որը երևում է որպես DB-ի «աճեցում» այն պատճառով, որ խնդիրների վերացումը խանգարվում է երկար ընթերցող փոխանակումներով: MithrilDB-ում նոր հնարավորությունների թվում առանձնանում է:
- DB-ն բազմատեսակ սարքերով տեղադրելու աջակցություն՝ HDD, SSD և էներգիայի անկախ հիշողություն:
- Ապահովված ռազմավարություններ «արժեքավոր» և «մի քիչ արժեքավոր» տվյալների համար, «տաք», «տաքացած» և «սառած» տվյալների:
- Merkle ծառի օգտագործումը DB-ի ամբողջականության վերահսկման համար:
- WAL-ի ընտրովի օգտագործումը և զգալիորեն ավելի բարձր կատարողականություն գրանցման ինտենսիվության և տվյալների ամբողջականության երաշխիքների դեպքում:
- Մանդատային ընկած տվյալների շտկման ընթացք:
Ընտանիք: opennet.ru
