ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Dragonfly 1.0, систСма Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°

Π‘Π΅ΡˆΠ΅ пусната систСмата Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ ΠΈ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Dragonfly, която ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ»ΡŽΡ‡/стойност ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π»Π΅ΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ускоряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° силно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ сайтовС, ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ заявки към Π‘Π£Π‘Π” ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² RAM. Dragonfly ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ Memcached ΠΈ Redis, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ клиСнтски Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Memcached ΠΈ Redis към Dragonfly, Π±Π΅Π· Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚Π΅ ΠΊΠΎΠ΄Π°.

Π’ сравнСниС с Redis, Dragonfly постигна 2-ΠΊΡ€Π°Ρ‚Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността (6 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° заявки Π² сСкунда) Π·Π° Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ натоварвания Π² срСдата Π½Π° Amazon EC16 c25gn.3.8xlarge. Π’ сравнСниС с Memcached Π² срСдата Π½Π° AWS c6gn.16xlarge, Dragonfly успя Π΄Π° изпълни 4.7 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ заявки Π·Π° запис Π² сСкунда (3.8 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° срСщу 806 хиляди) ΠΈ 1.77 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ заявки Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π² сСкунда (3.7 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° срСщу 2.1 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°).

ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Dragonfly 1.0, систСма Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°

ΠŸΡ€ΠΈ тСстовС Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° 5 GB Π΄Π°Π½Π½ΠΈ, Dragonfly изисквашС 30% ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΎΡ‚ Redis. ΠŸΡ€ΠΈ създаванС Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€œbgsave” ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°, Π½ΠΎ Π² ΠΏΠΈΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ остава ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Ρ€ΠΈ ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² Redis, Π° самата опСрация ΠΏΠΎ запис Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·Π° (Π² тСста ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка Π² Dragonfly Π΅ написана Π½Π° 30 сСкунди, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Redis - Π·Π° 42 сСкунди).

ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Dragonfly 1.0, систСма Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°

Високата производитСлност сС постига Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° многонишкова Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π±Π΅Π· сподСлянС Π½Π° рСсурси (сподСлСно Π½ΠΈΡ‰ΠΎ), ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ към всяка нишка Π΅ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ΅Π½ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ със собствСна част ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π±Π΅Π· ΠΌΡŽΡ‚Π΅ΠΊΡΠΈ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡ Π½Π° Π·Π°Π²ΡŠΡ€Ρ‚Π°Π½Π΅. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ сС Π»Π΅ΠΊΠΈ VLL ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠΈ, Π·Π° Π΄Π° сС осигури атомарност ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с мноТСство ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅. Π—Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° информация Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° структурата dashtable, която Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

Някои характСристики Π½Π° Dragonfly:

  • Π Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ замСня старитС Π΄Π°Π½Π½ΠΈ с Π½ΠΎΠ²ΠΈ слСд ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° свободната ΠΏΠ°ΠΌΠ΅Ρ‚.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π΄Π°Π½Π½ΠΈ ΠΏΡ€Π΅Π· цСлия ΠΆΠΈΠ²ΠΎΡ‚, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС считат Π·Π° Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΈ.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° изчистванС Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° диск във Ρ„ΠΎΠ½ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌ Π·Π° ΠΏΠΎ-късно Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ слСд рСстартиранС.
  • НаличиСто Π½Π° HTTP ΠΊΠΎΠ½Π·ΠΎΠ»Π° (ΡΠ²ΡŠΡ€Π·Π²Π° сС към TCP ΠΏΠΎΡ€Ρ‚ 6379) Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° систСмата ΠΈ API Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с Prometheus.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° 185 Redis ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ Π½Π° функционалността Π½Π° вСрсията Redis 5.
  • ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° всички ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Memcached с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° CAS (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ настройка).
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° асинхронни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° създаванС Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки.
  • ΠŸΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠ° консумация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚.
  • Π’Π³Ρ€Π°Π΄Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Lua 5.4.
  • ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° слоТни Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ…Π΅ΡˆΠΎΠ²Π΅, Π½Π°Π±ΠΎΡ€ΠΈ, ΡΠΏΠΈΡΡŠΡ†ΠΈ (ZSET, HSET, LIST, SETS ΠΈ STRING) ΠΈ JSON Π΄Π°Π½Π½ΠΈ.
  • ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° рСпликация Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π·Π° толСрантност към Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.

ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Dragonfly Π΅ написан Π½Π° C/C++ ΠΈ сС разпространява ΠΏΠΎΠ΄ BSL (Business Source License). Π›ΠΈΡ†Π΅Π½Π·ΡŠΡ‚ BSL β€‹β€‹Π±Π΅ΡˆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΡ‚ ΡΡŠΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° MySQL ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Open Core. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° BSL Π΅, Ρ‡Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° модификация, Π½ΠΎ Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ само Π°ΠΊΠΎ са изпълнСни Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ условия, ΠΊΠΎΠΈΡ‚ΠΎ изискват Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅ Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ Π»ΠΈΡ†Π΅Π½Π· Π·Π° заобикалянС. Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ условия Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Dragonfly изискват ΠΊΠΎΠ΄ΡŠΡ‚ Π΄Π° бъдС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ към Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0 Π½Π° 15 ΠΌΠ°Ρ€Ρ‚ 2028 Π³. Π”ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΡŠΡ‚ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° само Π·Π° осигуряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ услуги ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, Π½ΠΎ забранява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π·Π° създаванС Π½Π° ΠΏΠ»Π°Ρ‚Π΅Π½ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ услуги, ΠΊΠΎΠΈΡ‚ΠΎ дСйстват ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΊΠ° към Dragonfly.

ВСрсия Dragonfly 1.0 сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° с внСдряванСто Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° рСпликация Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ основния ΡΡŠΡ€Π²ΡŠΡ€ към вторичния. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Dragonfly ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ основСн ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Dragonfly, ΠΈΠ»ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Redis. API Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° рСпликация Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с Redis ΠΈ сС основава Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ ROLE ΠΈ REPLICAOF (SLAVEOF).

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€