ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Dragonfly Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎ-Π±ΡŠΡ€Π· замСститСл Π½Π° Redis ΠΈ Memcached

ΠŸΡŠΡ€Π²Π°Ρ‚Π° вСрсия Π½Π° систСмата Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° Dragonfly Π΅ Π½Π°Π»ΠΈΡ‡Π½Π°, осигурявайки ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ Memcached ΠΈ Redis, Π½ΠΎ позволявайки заявкитС Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ с ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-висока производитСлност ΠΈ с ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚. БистСмата ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ»ΡŽΡ‡/стойност ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π»Π΅ΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ускоряванС Π½Π° силно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ сайтовС, ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ заявки към Π‘Π£Π‘Π” ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² RAM. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Dragonfly Π΅ написан Π½Π° C/C++ ΠΈ сС разпространява ΠΏΠΎΠ΄ BSL (Business Source License).

BSL бСшС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΡ‚ ΡΡŠΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° MySQL ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Open Core. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° BSL Π΅, Ρ‡Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° модификация, Π½ΠΎ Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ само Π°ΠΊΠΎ са изпълнСни Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ условия, заобикалянСто Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ изисква Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅ Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ Π»ΠΈΡ†Π΅Π½Π·. Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ условия Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Dragonfly изискват ΠΊΠΎΠ΄ΡŠΡ‚ Π΄Π° бъдС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0 само Π½Π° 1 юни 2027 Π³. Π”ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΡŠΡ‚ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° само Π·Π° осигуряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ услуги ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, Π½ΠΎ забранява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π·Π° създаванС Π½Π° ΠΏΠ»Π°Ρ‚Π΅Π½ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ услуги, ΠΊΠΎΠΈΡ‚ΠΎ дСйстват ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΊΠ° към Dragonfly.

Dragonfly Ρ‚Π²ΡŠΡ€Π΄ΠΈ, Ρ‡Π΅ Π΅ Π½Π°ΠΉ-Π±ΡŠΡ€Π·Π°Ρ‚Π° систСма Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² свСта, спорСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅Ρ‚Π΅. Π’ сравнСниС с Redis, Dragonfly постигна 25x ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността ΠΈ 2x Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ натоварвания. Π•Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ Π½Π° Dragonfly ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ заявки Π² сСкунда, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² срСда Π½Π° Amazon EC6 c16gn.3.8xlarge Π΅ постигната производитСлност ΠΎΡ‚ XNUMX ΠΌΠΈΠ»ΠΈΠΎΠ½Π° заявки Π² сСкунда.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Dragonfly Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎ-Π±ΡŠΡ€Π· замСститСл Π½Π° Redis ΠΈ Memcached

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

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Dragonfly Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎ-Π±ΡŠΡ€Π· замСститСл Π½Π° Redis ΠΈ Memcached

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

ΠžΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, сС отбСлязва ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° RESP2 ΠΈ 130 Redis ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° функционалността Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Redis 2.8. Π’ допълнСниС, Dragonfly ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° всички memcached ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° CAS (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ настройка), осигурява ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° асинхронни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° създаванС Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки, осигурява ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚, прСдоставя Π²Π³Ρ€Π°Π΄Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° Lua 5.4 ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° слоТни Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ…Π΅ΡˆΠΎΠ²Π΅, Π½Π°Π±ΠΎΡ€ΠΈ ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ (ZSET, HSET, LIST, SETS ΠΈ STRING).

ΠžΡ‚Π΄Π΅Π»Π½ΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ старитС Π΄Π°Π½Π½ΠΈ сС замСнят Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ с Π½ΠΎΠ²ΠΈ слСд ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° свободната ΠΏΠ°ΠΌΠ΅Ρ‚. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС ΠΎΠ±Π²ΡŠΡ€ΠΆΠ΅ с Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° цСлия ΠΆΠΈΠ²ΠΎΡ‚, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС считат Π·Π° Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΈ. Π‘ΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС изчистСно Π½Π° диск във Ρ„ΠΎΠ½ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌ Π·Π° ΠΏΠΎ-късно Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ слСд рСстартиранС. Π—Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° систСмата Π΅ прСдоставСна HTTP ΠΊΠΎΠ½Π·ΠΎΠ»Π° (ΡΠ²ΡŠΡ€Π·Π²Π° сС към TCP ΠΏΠΎΡ€Ρ‚ 6379) ΠΈ API Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с Prometheus. Π’ Π±ΡŠΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ издания ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π·ΡˆΠΈΡ€ΠΈΠΌ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° Redis ΠΈ Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° прСодоляванС ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π· ΠΈ балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.

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

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