Baada ya miaka mitano ya maendeleo, mgombea wa pili wa libmdbx 1.0 amechapishwa

Inapatikana для тСстирования Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libmdbx с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ встраиваСмой Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… класса ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ВСкущая вСрсия (0.5) являСтся тСхничСским Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ, ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Ρ„Π°Π·Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования ΠΈ стабилизации, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Код libmdbx kusambazwa na ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ OpenLDAP Public License.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MDBX являСтся сущСствСнно ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ LMDB - DBMS iliyopachikwa ya shughuli ya darasa la "thamani-msingi" kulingana na mti B+ bila ukataji miti makini, которая позволяСт ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ процСссам ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ ΠΈ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с локально-раздСляСмой (Π½Π΅ сСтСвой) Π‘Π”. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ MDBX быстрСС ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½Π΅Π΅ LMDB, ΠΈ ΠΏΡ€ΠΈ этом сохраняСт всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности своСго прародитСля, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ACID ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ядрам CPU.

Tofauti muhimu zaidi kati ya MDBX na LMDB:

  • 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 ujazo wa sampuli kwa safu (makadirio ya hoja za masafa).
  • Usaidizi wa funguo kubwa mara mbili ya pancakes na saizi ya ukurasa wa hifadhidata inayoweza kuchaguliwa na mtumiaji.

Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹ 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 ΠΈ Ρ‚.Π΄.
  • Sasisha Maelezo ya API.
  • БлияниС (Π°ΠΌΠ°Π»ΡŒΠ³Π°ΠΌΠ°Ρ†ΠΈΡ) исходного ΠΊΠΎΠ΄Π° для удобства встраивания.
  • CFanya msaada.
  • Usaidizi kwa shughuli zilizowekwa.
  • Kutumia bootid kubaini ikiwa OS imewashwa upya (kuacha hifadhidata chafu).
  • Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ подсчёт ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹Ρ…/старых страниц ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ информация ΠΎ транзакциях.
  • Chaguo la MDBX_ACCEDE la kuunganisha kwenye hifadhidata ambayo tayari imefunguliwa katika hali inayooana.
  • Matumizi ya OFD inazuia inapopatikana.
  • Hifadhi nakala rudufu kwenye bomba.
  • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сортировки (Π΄ΠΎ 2-3 Ρ€Π°Π· быстрСС Β«qsort()Β» ΠΈ Π΄ΠΎ 30% быстрСС Β«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+.
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм (NFS, Samba ΠΈ Ρ‚.ΠΏ.) для прСдотвращСния поврСТдСния Π‘Π” ΠΏΡ€ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌ использовании.
  • 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 Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, Π° Π½Π΅ Leseni ya Umma ya OpenLDAP).
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ, внСсти большС опрСдСлённости ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

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:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° размСщСния Π‘Π” Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… носитСлях: HDD, SSD ΠΈ энСргонСзависимой памяти.
  • ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ стратСгии для Β«Ρ†Π΅Π½Π½Ρ‹Ρ…Β» ΠΈ Β«ΠΌΠ°Π»ΠΎΡ†Π΅Π½Π½Ρ‹Ρ…Β», для «горячих», Β«Ρ‚Π΅ΠΏΠ»Ρ‹Ρ…Β» ΠΈ Β«Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹Ρ…Β» Π΄Π°Π½Π½Ρ‹Ρ….
  • ИспользованиС Merkle tree для контроля цСлостности Π‘Π”.
  • ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ использованиС WAL ΠΈ сущСствСнно Π±ΠΎΠ»Π΅Π΅ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² сцСнариях с интСнсивной записью ΠΈ гарантиями Π½Π° Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….
  • ЛСнивая Π΄ΠΎΠ³ΠΎΠ½ΡΡŽΡ‰Π°Ρ фиксация Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дисках.

Chanzo: opennet.ru

Kuongeza maoni