ПослС пяти Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹ libmdbx 1.0

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° MDBX являСтся сущСствСнно ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ LMDB - DBMS-ku-xidhan macaamil ganacsi ee fasalka "qiimaha-furaha" ku salaysan geed B+ iyada oo aan goynta firfircoon, которая позволяСт ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ процСссам ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ ΠΈ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с локально-раздСляСмой (Π½Π΅ сСтСвой) Π‘Π”. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ MDBX быстрСС ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½Π΅Π΅ LMDB, ΠΈ ΠΏΡ€ΠΈ этом сохраняСт всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности своСго прародитСля, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ AASHITO ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ядрам CPU.

Farqiga ugu muhiimsan ee u dhexeeya MDBX iyo LMDB:

  • Asal ahaan, fiiro gaar ah ayaa la siiyaa tayada koodhka, tijaabinta iyo hubinta tooska ah.
  • Si mug leh u kontorool badan inta lagu jiro hawlgalka, laga bilaabo hubinta xuduudaha ilaa hantidhawrka gudaha ee qaabdhismeedka xogta.
  • Otamaatig ah u-cusboonaynta iyo maaraynta cabbirka xogta tooska ah.
  • Qaab hal kayd ah oo loogu talagalay 32-bit iyo 64-bit assemblies.
  • Qiyaasta muunado muunad oo kala duwan (qiyaasta weydiinta kala duwan).
  • Taageerada furayaasha labanlaab ka weyn sida canjeelada iyo cabbirka bogga xog ururinta ee la dooran karo.

Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹ 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 ΠΈ Ρ‚.Π΄.
  • Cusbooneysii Sharaxaada API.
  • БлияниС (Π°ΠΌΠ°Π»ΡŒΠ³Π°ΠΌΠ°Ρ†ΠΈΡ) исходного ΠΊΠΎΠ΄Π° для удобства встраивания.
  • Samee taageero.
  • Taageerada wax kala iibsiga.
  • Isticmaalka bootid si loo go'aamiyo in OS uu dib u kiciyay iyo in kale (joojinta xogta wasakhaysan).
  • Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ подсчёт ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹Ρ…/старых страниц ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ информация ΠΎ транзакциях.
  • Ikhtiyaarka MDBX_ACCEDE ee ku xidhidhiyaha xog-ururin hore u furnaa oo qaab ku habboon
  • Isticmaal OFD oo xannibay marka la heli karo.
  • Kaydinta kulul ee tuubada.
  • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сортировки (Π΄ΠΎ 2-3 Ρ€Π°Π· быстрСС Β«qsort()Β» ΠΈ Π΄ΠΎ 30% быстрСС Β«std::sort()Β»).
  • Dhererka furaha ugu badan waa la kordhiyay.
  • Si otomaatig ah u koontaroolka hore u akhri (xeeladda kaydinta faylka xogta ee xusuusta).
  • Is-afgarad badan oo degdeg badan
  • Istaraatiijiyad aad ugu wanagsan ee isku darka bogagga geedka B+
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм (NFS, Samba ΠΈ Ρ‚.ΠΏ.) для прСдотвращСния поврСТдСния Π‘Π” ΠΏΡ€ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌ использовании.
  • Qaabka imtixaannada waa la ballaariyay.

Horumarinta nooca "xiga" ee libmdbx wuxuu u socon doonaa sidii mashruuc gaar ah MithrilDB, halka vector-ka horumarinta nooca "hadda" ee MDBX looga golleeyahay in lagu qaboojiyo qaabka loo dejiyay iyo xasilinta. Go'aankan waxaa loo qaatay saddex arrimood:

  • Gebi ahaanba aan la jaan qaadi karin: MithrilDB waxay u baahan tahay qaab ka duwan (aan ku habboonayn) qaabka faylka xogta iyo API ka duwan (aan socon karin) si loo fuliyo dhammaan sifooyinka la qorsheeyay.
  • Koodhka isha cusub: Koodhka isha MithrilDB waxa laga dhigay shati ka madax banaan LMDB, mashruuca laftiisa waxa la qorsheeyay in lagu daabaco liisan ka duwan (waxa ogolaaday) AMA HADDII Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, Π° Π½Π΅ Shatiga dadweynaha ee furan LDAP).
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ, внСсти большС опрСдСлённости ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

MithrilDB, sida MDBX, ayaa sidoo kale ku salaysan geed B+ iyo sidoo kale soo bandhigi doona waxqabad aad u sarreeya, iyada oo meesha laga saarayo tiro ka mid ah faa'iido darrada aasaasiga ah ee MDBX iyo LMDB. Gaar ahaan, dhibaatada "wax akhrinta dheer" waa la tirtiri doonaa, taas oo muujinaysa sida "barar" ee xogta sababtoo ah xaqiiqda ah in qashinka qashinka lagu xannibo macaamilka akhriska dheer. Tilmaamaha cusub ee MithrilDB waxaa ka mid ah:

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

Source: opennet.ru

Add a comment