Новая стратСгия развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° libmdbx

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ libmdbx прСдставил Π½ΠΎΠ²ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ развития, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ объявив ΠΎ смСнС ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ распространСния ΠΊΠΎΠ΄Π°. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ libmdbx останСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈ с качСствСнной бСсплатной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅ΡΡ‚ΠΈΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π°ΠΌΠ°Π»ΡŒΠ³Π°ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. БтратСгия развития Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Π΄Π°Π²Π½ΠΎ анонсированному ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ MithrilDB, с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π‘Π” ΠΏΠΎΠ΄ фасадом ΠΎΠ±Ρ‰Π΅Π³ΠΎ API. Π―Π²Π½ΠΎ заявляСтся ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ старых Π‘Π”, ΠΏΠΎΠΊΠ° это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

Если Ρ€Π°Π½ΡŒΡˆΠ΅ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ доступС Π±Ρ‹Π» вСсь исходный ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ тСстовый Ρ„Ρ€Π΅ΠΉΠΌΡ„ΠΎΡ€ΠΊ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΌΠ°Π»ΡŒΠ³Π°ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠžΠ±Π΅Ρ‰Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ вскорС Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования C++ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ простым smoke-тСстом. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ достаточно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Ρ‹ Π² коммСнтариях встроСнных Π² слайды ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ частности, дСкларируСтся ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² максимального Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π±Π΅Π· зависимостСй, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΅Ρ‘ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ тСстирования.

ΠšΡ€ΠΎΠΌΠ΅ раскрытия ΡƒΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… возмоТностСй libmdbx, Π² ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ стратСгии анонсированы основныС Ρ‡Π΅Ρ€Ρ‚Ρ‹ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π‘Π” ΠΈ обСспСчиваСмыС ΠΈΠΌ возмоТности:

  • Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСфиксноС Π΄Π΅Ρ€Π΅Π²ΠΎ, Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Π΅Ρ€Π΅Π²Π° ΠœΠ΅Ρ€ΠΊΠ»Π°, ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ структурой B+tree. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Patricia Tree, Π½ΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ совсСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ сТатиС прСфиксов. Бквозная нумСрация элСмСнтов для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ мощности Π²Ρ‹Π±ΠΎΡ€ΠΎΠ². ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… BLOB-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.
  • ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ использованиС отобраТСния Ρ„Π°ΠΉΠ»Π° Π‘Π” Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ сТатия Π΄Π°Π½Π½Ρ‹Ρ….
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ API с интСнсивным использованиСм SWIG для автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ привязок ΠΊ вострСбованным языкам программирования.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠΎΠΉ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ReOpenLDAP.

    Π’ Ρ…ΠΎΠ΄Π΅ ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΎ заявлСно ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ MithrilDB нСсколько Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ написанных Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, Π² частности C, Π‘++ ΠΈ Rust, обСспСчив ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ пСрСкрёстноС взаимодСйствиС (прилоТСния Π½Π° Π‘/Π‘++ смогут ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° Rust ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚).

    Из Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… сСйчас возмоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ станут доступны Π² блиТайшСС врСмя, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ «Поиск с ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΒ». Π‘ΡƒΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ нСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΡŒ Π‘Π”, с ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ быстрой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΡ€ΠΈ этом поиск ΠΎΡ‚ корня Π΄Π΅Ρ€Π΅Π²Π° ΠΊ листовым страницам останавливаСтся, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ страницы, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠΉ послС послСднСй ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта кэша. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ поиска ΠΏΠΎ B-tree, выполняСтся минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ количСство дСйствий, Π² зависимости ΠΎΠ± ΠΎΠ±ΡŠΡ‘ΠΌΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ послС послСднСго получСния Π΄Π°Π½Π½Ρ‹Ρ…. Всё вмСстС обСспСчиваСт ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ускорСниС Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков тысяч Ρ€Π°Π·. Π’ Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ ΠΆΠ΅ случаС Ρ‚Π°ΠΊΠΎΠΉ поиск с Β«ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΒ» Π½Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ.

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ