Номзади барориши дуюм барои libmdbx v1.0 пас аз панҷ соли рушд.

китобхона libmdbx насли ба таври назаррас аз нав тарҳрезӣшудаи LMDB мебошад - як махзани бениҳоят баландсифат ва паймоне, ки дарунсохти калиди арзиш дорад.
Версияи кунунии v0.5 як нашри техникӣ буда, ба итмом расидани ҳама гуна такмилҳо ва гузариш ба марҳилаи санҷиши ниҳоии оммавӣ ва мӯътадилсозӣ, бо ташаккули минбаъдаи нашри пурраи аввалини китобхона шаҳодат медиҳад.

LMDB DBMS як калиди-арзиши дарунсохташудаи транзаксионии хеле маъруф аст дарахти B+ бе он бақайдгирии фаъол, ки ба як селаи равандҳои бисёрсоҳавӣ имкон медиҳад, ки бо пойгоҳи додаҳои маҳаллӣ (на шабака) рақобатпазир ва хеле самаранок кор кунанд. Дар навбати худ, MDBX нисбат ба LMDB тезтар ва боэътимодтар аст, дар ҳоле ки libmdbx тамоми хусусиятҳои асосии аҷдоди худро нигоҳ медорад, ба монанди Кислота ва бебандубор хондан бо миқёси хатӣ дар саросари ядроҳои CPU, инчунин якчанд нав илова мекунад.

Тавсифи фарқиятҳо ва беҳбудиҳои libmdbx нисбат ба LMDB сазовори мақолаи алоҳида аст (ба нақша гирифта шудааст, ки дар Habré ва Medium нашр карда шаванд). Дар ин ҷо муҳимтарин ва қобили таваҷҷӯҳро зикр кардан бамаврид аст:

  • Асосан, ба сифати код, санҷиш ва санҷишҳои автоматӣ диққати бештар дода мешавад.
  • Ба таври назаррас бештар назорат ҳангоми кор, аз санҷиши параметрҳо то аудити дохилии сохторҳои пойгоҳи додаҳо.
  • Автоматсозӣ ва идоракунии автоматии андозаи пойгоҳи додаҳо.
  • Формати ягонаи пойгоҳи додаҳо барои анҷуманҳои 32-бит ва 64-бит.
  • Арзёбии андозаи намуна аз рӯи диапазон (баҳодиҳии дархости диапазон).
  • Дастгирии калидҳо ду маротиба калонтар аз pancakes ва андозаи саҳифаи пойгоҳи додаҳои аз ҷониби корбар интихобшаванда.

Номзади барориши libmdbx натиҷаи қарор (нигаред ба поён) дар бораи ҷудо кардани лоиҳаҳои MDBX ва MithrilDB дар моҳи августи соли 2019 мебошад. Ҳамзамон, libmdbx тасмим гирифт, ки ҳадди аксар қарзи техникиро бартараф кунад ва китобхонаро мӯътадил созад. Дар хакикат, дар самти муайяншуда назар ба он ки дар аввал тахмин ва пешбинй шуда буд, 2—3 баробар зиёд ичро карда шудааст:

  • Дастгирии Mac OS ва платформаҳои дараҷаи дуюм амалӣ карда шудааст: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Дастгирии AIX ва HP-UX метавонад дар ҳолати зарурӣ илова карда шавад.
  • Рамз бо истифода аз безараргардонии рафтори номуайяншуда ва безараргардонии суроға безарар карда шуд, ҳама огоҳиҳо ҳангоми сохтани -Wpedantic, ҳама огоҳиҳои Coverity Static Analyzer ва ғайра нест карда шуданд.
  • Навсозӣ Тавсифи API.
  • Муттаҳидсозии рамзи сарчашма барои осонии воридкунӣ.
  • Дастгирии CMake.
  • Дастгирии амалиёти лона.
  • Истифодаи bootid барои муайян кардани он, ки оё ОС аз нав оғоз шудааст (истеъмоли пойгоҳи додаҳои ифлос).
  • Ҳисоб кардани саҳифаҳои навшуда/кӯҳна ва маълумоти муомилоти васеъ.
  • Опсияи MDBX_ACCEDE барои пайвастшавӣ ба пойгоҳи додаҳои аллакай кушода дар ҳолати мувофиқ.
  • Истифода кунед бастани OFD вақте ки дастрас.
  • Нусхаи гарм дар қубур.
  • Алгоритми махсусгардонидашудаи ҷудокунии дохилӣ (то 2-3 маротиба тезтар аз qsort() ва то 30% тезтар аз std::sort()).
  • Дарозии максималии калид зиёд карда шуд.
  • Назорати худкори хондан дар пеш (стратегияи кэшкунии файлҳои махзани маълумот дар хотира).
  • Ба таври хашмгинтар ва тезтар компактизатсияи худкор.
  • Стратегияи беҳтарин барои якҷоя кардани саҳифаҳои дарахти B+.
  • Назорати системаҳои файлии ғайримаҳаллӣ (NFS, Samba, ва ғ.) барои пешгирӣ кардани зарари пойгоҳи додаҳо дар сурати истифодаи нодуруст.
  • Маҷмӯи санҷишҳо васеъ карда шуд.

Таҳияи версияи "ояндаи" libmdbx ҳамчун лоиҳаи алоҳида идома хоҳад ёфт MithrilDB, дар ҳоле ки вектори таҳияи версияи "ҷории" MDBX барои ях кардани маҷмӯи хусусиятҳо ва устувор кардани он нигаронида шудааст. Ин тасмим бо се сабаб гирифта шудааст:

  • Комилан номувофиқ: MithrilDB барои татбиқи ҳамаи хусусиятҳои банақшагирифташуда формати файли махзани маълумотҳои гуногун (номувофиқ) ва API-и гуногун (номувофиқ) талаб мекунад.
  • Рамзи нави сарчашма: Рамзи сарчашмаи MithrilDB аз LMDB мустақил литсензия карда шудааст ва худи лоиҳа ба нақша гирифта шудааст, ки тибқи иҷозатномаи дигар нашр шавад (аз ҷониби аз ҷониби Ё АГАР иҷозатнома Apache 2.0ва не Бунёди OpenLDAP).
  • Ҷудокунӣ аз нофаҳмиҳои эҳтимолӣ канорагирӣ мекунад, итминони бештарро таъмин мекунад ва кафолат медиҳад, ки лоиҳаҳо роҳи мустақили пеш доранд.

MithrilDB, ба монанди MDBX, инчунин ба он асос ёфтааст дарахти B+ ва инчунин як қатор нуқсонҳои бунёдии MDBX ва LMDB-ро аз байн бурда, иҷрои бениҳоят баландро нишон медиҳад. Аз ҷумла, мушкилоти "хондаҳои тӯлонӣ", ки ҳамчун "варам кардани" базаи маълумотҳо аз сабаби он, ки коркарди партовҳо тавассути транзаксияҳои хониши тӯлонӣ баста мешавад, аз байн меравад. Хусусиятҳои нави MithrilDB иборатанд аз:

  • дастгирии ҷойгиркунии пойгоҳи додаҳо дар якчанд васоити гетерогенӣ: HDD, SSD ва хотираи ғайридавлатӣ.
  • стратегияҳои оптималии "арзиш" ва "арзиши кам", барои маълумоти "гарм", "гарм" ва "сард".
  • бо истифода аз дарахти Merkle барои назорат кардани якпорчагии пойгоҳи додаҳо.
  • истифодаи ихтиёрии WAL ва иҷрои хеле баландтар дар сенарияҳои пуршиддати навиштан ва кафолати тамомияти маълумот.
  • Таъмини танбалии маълумот дар дискҳо.

Манбаъ: linux.org.ru

Илова Эзоҳ