Libmdbx v1.0 ya pili itatolewa baada ya miaka mitano ya maendeleo.

maktaba libmdbx ni kizazi kilichoundwa upya kwa kiasi kikubwa cha LMDB - hifadhidata ya utendakazi wa hali ya juu, iliyopachikwa iliyopachikwa ya ufunguo.
Toleo la sasa la v0.5 ni toleo la kiufundi, linaloashiria kukamilika kwa maboresho yoyote na mpito kwa awamu ya majaribio ya mwisho ya umma na uimarishaji, na uundaji uliofuata wa toleo kamili la kwanza la maktaba.

LMDB ni thamani inayojulikana ya muamala iliyopachikwa ya DBMS kulingana na mti B+ bila ukataji miti makini, ambayo huruhusu kundi la michakato yenye nyuzi nyingi kufanya kazi kwa ushindani na kwa ufanisi mkubwa na hifadhidata iliyoshirikiwa ndani (si ya mtandao). Kwa upande wake, MDBX ni ya haraka na ya kuaminika zaidi kuliko LMDB, wakati libmdbx inahifadhi sifa zote muhimu za babu yake, kama vile. ACID na usomaji usiozuiliwa kwa kuongeza alama kwenye viini vya CPU, na pia huongeza kadhaa mpya.

Maelezo ya tofauti na maboresho ya libmdbx kuhusiana na LMDB yanastahili makala tofauti (yaliyopangwa kuchapishwa kwenye HabrΓ© na Medium). Hapa inafaa kutaja muhimu zaidi na inayoonekana:

  • Kimsingi, umakini zaidi hulipwa kwa ubora wa nambari, majaribio na ukaguzi wa kiotomatiki.
  • Udhibiti mkubwa zaidi wakati wa operesheni, kutoka kwa kuangalia vigezo hadi ukaguzi wa ndani wa miundo ya hifadhidata.
  • Urekebishaji kiotomatiki na usimamizi wa saizi ya hifadhidata otomatiki.
  • Umbizo la hifadhidata moja kwa makusanyiko ya 32-bit na 64-bit.
  • Ukadiriaji wa saizi ya sampuli kulingana na safu (makadirio ya hoja ya masafa).
  • Usaidizi wa funguo kubwa mara mbili ya pancakes na saizi ya ukurasa wa hifadhidata inayoweza kuchaguliwa na mtumiaji.

Mgombea wa kutolewa kwa libmdbx ni matokeo ya uamuzi (ona hapa chini) wa kutenganisha miradi ya MDBX na MithrilDB mnamo Agosti 2019. Wakati huo huo, libmdbx iliamua kuondoa deni la juu zaidi la kiufundi (la mantiki) na kuimarisha maktaba. Kwa kweli, mara 2-3 zaidi imefanywa katika mwelekeo uliowekwa kuliko ilivyokadiriwa na kupangwa hapo awali:

  • Usaidizi wa Mac OS na majukwaa ya daraja la pili umetekelezwa: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Msaada wa AIX na HP-UX unaweza kuongezwa kama inahitajika.
  • Imesafisha nambari ya kuthibitisha kwa kutumia Kisafishaji cha Tabia Iliyobainishwa na Kisafishaji cha Anwani, iliondoa maonyo yote unapojenga kwa -Wpedantic, maonyo yote ya Kichanganuzi Tuli cha Coverity, n.k.
  • Sasisha Maelezo ya API.
  • Muunganisho wa msimbo wa chanzo kwa urahisi wa kupachika.
  • CFanya msaada.
  • Usaidizi kwa shughuli zilizowekwa.
  • Kutumia bootid kubaini ikiwa OS imewashwa upya (kuacha hifadhidata chafu).
  • Kuhesabu hadi mwisho kwa kurasa zilizosasishwa/zamani na maelezo ya muamala yaliyopanuliwa.
  • Chaguo la MDBX_ACCEDE la kuunganisha kwenye hifadhidata ambayo tayari imefunguliwa katika hali inayooana.
  • Matumizi ya OFD inazuia inapopatikana.
  • Hifadhi nakala rudufu kwenye bomba.
  • Algorithm maalum ya upangaji wa ndani iliyoboreshwa (hadi mara 2-3 haraka kuliko qsort() na hadi 30% haraka kuliko std::sort()).
  • Urefu wa juu wa ufunguo umeongezwa.
  • Udhibiti wa kiotomatiki wa kusoma mbele (mkakati wa kuhifadhi faili za hifadhidata kwenye kumbukumbu).
  • Udhibiti wa kiotomatiki kwa ukali zaidi na wa haraka zaidi.
  • Mbinu bora zaidi ya kuunganisha kurasa za miti ya B+.
  • Udhibiti wa mifumo ya faili isiyo ya ndani (NFS, Samba, nk.) ili kuzuia uharibifu wa hifadhidata ikiwa itatumiwa vibaya.
  • Seti ya majaribio imepanuliwa.

Utengenezaji wa toleo "linalofuata" la libmdbx litaendelea kama mradi tofauti MithrilDB, wakati vekta ya maendeleo ya toleo la "sasa" la MDBX inalenga kufungia seti ya kipengele na kuimarisha. Uamuzi huu ulifanywa kwa sababu tatu:

  • Haioani kabisa: MithrilDB inahitaji umbizo tofauti (lisilotangamana) la faili ya hifadhidata na API tofauti (isiyooana) ili kutekeleza vipengele vyote vilivyopangwa.
  • Msimbo mpya wa chanzo: Msimbo wa chanzo wa MithrilDB umepewa leseni kuwa huru kutoka kwa LMDB, na mradi wenyewe umepangwa kuchapishwa chini ya leseni tofauti (iliyoidhinishwa na AU IKIWA leseni Apache 2.0na sio Wakfu wa OpenLDAP).
  • Utengano huepuka mkanganyiko unaoweza kutokea, hutoa uhakika zaidi, na huhakikisha kuwa miradi ina njia huru ya kusonga mbele.

MithrilDB, kama MDBX, pia inategemea mti B+ na pia itaangazia utendakazi wa hali ya juu sana, huku ikiondoa idadi ya hasara za kimsingi za MDBX na LMDB. Hasa, shida ya "kusoma kwa muda mrefu", ambayo inajidhihirisha kama "uvimbe" wa hifadhidata kutokana na ukweli kwamba usindikaji wa takataka umezuiwa na shughuli za kusoma kwa muda mrefu, zitaondolewa. Vipengele vipya vya MithrilDB ni pamoja na:

  • msaada wa kuweka hifadhidata kwenye media kadhaa tofauti: HDD, SSD na kumbukumbu isiyo na tete.
  • mikakati bora ya "thamani" na "thamani ya chini", kwa data "moto", "joto" na "baridi".
  • kutumia Merkle tree kufuatilia uadilifu wa hifadhidata.
  • matumizi ya hiari ya WAL na utendakazi wa hali ya juu zaidi katika hali zinazohitaji uandishi mwingi na uhakikisho wa uadilifu wa data.
  • Urekebishaji wa uvivu wa kukamata data kwenye diski.

Chanzo: linux.org.ru

Kuongeza maoni