Moho hoʻokuʻu lua no libmdbx v1.0 ma hope o ʻelima mau makahiki o ka hoʻomohala ʻana.

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

Pākuʻi i ka manaʻo hoʻopuka