waihona libmdbx He mamo i hoʻolālā hou ʻia ʻo LMDB - kahi ʻikepili waiwai kī nui i hoʻopaʻa ʻia.
ʻO ka mana o kēia manawa v0.5 he hoʻokuʻu ʻenehana, hōʻailona i ka pau ʻana o nā hoʻomaikaʻi ʻana a me ka hoʻololi ʻana i ka pae o ka hoʻāʻo ʻana o ka lehulehu a me ka stabilization, me ka hoʻokumu ʻana o ka hoʻokuʻu mua ʻana o ka waihona.
LMDB является достаточно известной транзакционной встраиваемой СУБД класса «ключ-значение» на основе lāʻau B+ me kaʻole hoʻopaʻa paʻa, ka mea e hiki ai i ka lehulehu o nā kaʻina hana multi-threaded e hana me ka hoʻokūkū a me ka maikaʻi loa me kahi waihona ʻikepili kūloko (ʻaʻole pūnaewele). ʻOi aku ka wikiwiki a ʻoi aku ka hilinaʻi o MDBX ma mua o LMDB, ʻoiai ʻo libmdbx e mālama i nā hiʻohiʻona nui o kona kupuna, e like me ʻĀKIKA и неблокирующее чтение с линейным масштабированием по ядрам CPU, а также добавляет несколько новых.
ʻO ka wehewehe ʻana i nā ʻokoʻa a me nā hoʻomaikaʻi ʻana o libmdbx e pili ana iā LMDB pono i kahi ʻatikala ʻokoʻa (i hoʻolālā ʻia e paʻi ʻia ma Habré a me Medium). Eia ka mea kūpono e haʻi i ka mea nui a ʻike ʻia:
- ʻO ke kumu, ʻoi aku ka nui o ka nānā ʻana i ka maikaʻi o ke code, ka hoʻāʻo ʻana a me nā loiloi ʻakomi.
- ʻOi aku ka mana i ka wā o ka hana, mai ka nānā ʻana i nā ʻāpana a i ka loiloi kūloko o nā hale waihona.
- Auto-compactification a me ka hooponopono ana i ka nui o ka waihona.
- Hoʻokahi waihona waihona no nā hui 32-bit a me 64-bit.
- Ka manaʻo o ka nui o ka laʻana ma o nā pae (manaʻo noiʻi pae).
- Kākoʻo i nā kī ʻelua ʻoi aku ka nui ma mua o ka pancakes a me ka nui o ka ʻaoʻao waihona waihona mea hoʻohana.
ʻO ka moho hoʻokuʻu libmdbx ka hopena o ka hoʻoholo (e ʻike i lalo) e hoʻokaʻawale i nā papahana MDBX a me MithrilDB i ʻAukake 2019. Ma ka manawa like, ua hoʻoholo ʻo libmdbx e hoʻopau i ka ʻaiʻē ʻenehana kiʻekiʻe (rational) a hoʻopaʻa i ka waihona. ʻOiaʻiʻo, 2-3 mau manawa i hana ʻia ma ke kuhikuhi i koho ʻia ma mua o ka mea i manaʻo mua ʻia a hoʻolālā ʻia:
- Ua hoʻokō ʻia ke kākoʻo no Mac OS a me nā paepae papa lua: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Hiki ke hoʻohui ʻia ke kākoʻo AIX a me HP-UX inā pono.
- Ua hoʻomaʻemaʻe ʻia ke code me ka hoʻohana ʻana i ka Undefined Behavior Sanitizer a me Address Sanitizer, nā ʻōlelo aʻo āpau i ke kūkulu ʻana me -Wpedantic, nā ʻōlelo aʻo Coverity Static Analyzer, etc.
- Hōʻano hou Nā wehewehe API.
- ʻO ka hui ʻana o ke code kumu no ka maʻalahi o ka hoʻopili ʻana.
- Kākoʻo CMake.
- Kākoʻo no nā kālepa pūnana.
- Ke hoʻohana nei i ka bootid e hoʻoholo ai inā ua hoʻomaka hou ka OS (hoʻopau i ka waihona waihona lepo).
- ʻO ka helu hope-a-hope o nā ʻaoʻao hou/kahiko a me ka ʻike pāʻoihana hoʻonui.
- Koho MDBX_ACCEDE no ka hoʻopili ʻana i kahi waihona i wehe ʻia ma ke ʻano kūpono.
- E hoʻohana Kāohi ʻo OFD ke loaa.
- Hoʻihoʻi wela i ka paipu.
- ʻO ka algorithm hoʻokaʻawale kūloko kūikawā kūikawā (hiki i ka 2-3 manawa ʻoi aku ka wikiwiki ma mua o qsort() a hiki i ka 30% wikiwiki ma mua o std::sort()).
- Ua hoʻonui ʻia ka lōʻihi o ke kī.
- Ka mana ʻakomi o ka heluhelu ʻana ma mua (ka hoʻolālā waihona waihona waihona ma ka hoʻomanaʻo).
- ʻOi aku ka huhū a me ka wikiwiki o ka auto-compactification.
- ʻO kahi hoʻolālā maikaʻi loa no ka hoʻohui ʻana i nā ʻaoʻao kumulāʻau B+.
- Ka mālama ʻana i nā ʻōnaehana faila kūloko (NFS, Samba, a me nā mea ʻē aʻe) e pale i ka pōʻino o ka waihona inā hoʻohana hewa ʻia.
- Ua hoʻonui ʻia ka hoʻonohonoho o nā hoʻokolohua.
E hoʻomau ʻia ka hoʻomohala ʻana o ka mana "next" o libmdbx ma ke ʻano he papahana kaʻawale MithrilDB, ʻoiai ke kuhikuhi ʻia nei ka vector hoʻomohala o ka mana "o kēia manawa" o MDBX e hoʻomaloʻo i ka hiʻohiʻona hoʻonohonoho a hoʻopaʻa ʻia. Ua hoʻoholo ʻia kēia hoʻoholo no ʻekolu kumu:
- ʻAʻole kūpono loa: Pono ʻo MithrilDB i kahi ʻano waihona waihona waihona ʻokoʻa (incompatible) a me kahi API ʻokoʻa (incompatible) e hoʻokō i nā hiʻohiʻona āpau i hoʻolālā ʻia.
- Kumu kumu hou: Ua laikini kūʻokoʻa ka MithrilDB source code mai LMDB, a ua hoʻolālā ʻia ka papahana ponoʻī e paʻi ʻia ma lalo o kahi laikini ʻē aʻe (apono ʻia e A I OLE laikini Apache 2.0,ʻaʻole OpenLDAP Foundation).
- Mālama ka kaʻawale ʻana i ka huikau, hāʻawi i ka ʻoiaʻiʻo, a e hōʻoia i ka loaʻa ʻana o nā papahana i kahi ala kūʻokoʻa i mua.
Hoʻokumu pū ʻia ʻo MithrilDB, e like me MDBX lāʻau B+ a e hōʻike pū i ka hana kiʻekiʻe loa, ʻoiai e hoʻopau ana i kekahi mau hemahema kumu o MDBX a me LMDB. ʻO ka mea nui, e hoʻopau ʻia ka pilikia o ka "heluhelu lōʻihi", e hōʻike ana iā ia iho he "huhū" o ka waihona ma muli o ka hoʻopaʻa ʻia ʻana o ka ʻōpala e nā hana heluhelu lōʻihi. Aia nā hiʻohiʻona MithrilDB hou:
- kākoʻo no ka waiho ʻana i ka waihona ma nā media heterogeneous: HDD, SSD a me ka hoʻomanaʻo non-volatile.
- nā hoʻolālā maikaʻi loa no ka "waiwai" a me ka "waiwai haʻahaʻa", no ka ʻikepili "wela", "mahana" a me ka "anu".
- e hoʻohana ana i ka lāʻau Merkle e nānā i ka pono o ka waihona.
- ka hoʻohana koho ʻana i ka WAL a me ka hana kiʻekiʻe loa i nā hiʻohiʻona kākau-koʻikoʻi a me nā hōʻoiaʻiʻo pono ʻikepili.
- ʻO ka hoʻoponopono ʻana i ka ʻikepili ma nā disks.
Source: linux.org.ru