Нашри Dragonfly 1.0, системаи кэшкунии маълумот дар дохили хотира

Системаи кэшкунии хотира ва нигаҳдории Dragonfly бароварда шуд, ки маълумотро дар формати калид/арзиш коркард мекунад ва метавонад ҳамчун як ҳалли сабук барои суръат бахшидан ба кори сайтҳои пурбор, кэшкунии дархостҳои суст ба DBMS ва додаҳои мобайнӣ дар RAM истифода шавад. Dragonfly протоколҳои Memcached ва Redis -ро дастгирӣ мекунад, ки ба шумо имкон медиҳад китобхонаҳои муштарии мавҷударо истифода баред ва лоиҳаҳоро бо истифода аз Memcached ва Redis ба Dragonfly бидуни коркарди код интиқол диҳед.

Дар муқоиса бо Redis, Dragonfly барои сарбории маъмулӣ дар муҳити Amazon EC2 c6gn.16xlarge 25 маротиба баланд бардоштани ҳосилнокӣ (3.8 миллион дархост дар як сония) ба даст овард. Дар муқоиса бо Memcached дар муҳити AWS c6gn.16xlarge, Dragonfly тавонистааст 4.7 маротиба бештар дархостҳои навиштан дар як сония (3.8 миллион дар муқобили 806 ҳазор) ва 1.77 маротиба бештар дархостҳои хонишро дар як сония (3.7 миллион дар муқобили 2.1 миллион) иҷро кунад.

Нашри Dragonfly 1.0, системаи кэшкунии маълумот дар дохили хотира

Дар озмоишҳо барои нигоҳдории 5 ГБ маълумот, Dragonfly нисбат ба Redis 30% камтар хотираро талаб мекард. Ҳангоми сохтани аксҳо бо фармони "bgsave", истеъмоли хотира зиёд мешавад, аммо дар лаҳзаҳои авҷи он тақрибан се маротиба камтар аз Redis боқӣ монд ва худи амалиёти сабти аксҳо хеле тезтар аст (дар озмоиш, акс дар Dragonfly дар 30 навишта шудааст. сония, дар ҳоле ки Редис - дар 42 сония).

Нашри Dragonfly 1.0, системаи кэшкунии маълумот дар дохили хотира

Маҳсулнокии баланд ба шарофати меъмории бисёрсоҳавӣ бидуни мубодилаи захираҳо ба даст оварда мешавад (мубодила-ҳеҷ чиз), ки маънои онро дорад, ки коркарди алоҳида бо қисми худ аз маълумот ба ҳар як ришта замима карда мешавад, ки бе мутексҳо ва қуфлҳо кор мекунад. Қулфҳои сабуки VLL барои таъмини атомӣ ҳангоми кор бо калидҳои сершумор истифода мешаванд. Барои нигоҳдории самараноки иттилоот дар хотира сохтори ҷадвалбанди истифода мешавад, ки як навъ ҷадвалҳои ҳэшҳои тақсимшударо амалӣ мекунад.

Баъзе хусусиятҳои 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) паҳн карда мешавад. Литсензияи BSL аз ҷониби ҳаммуассисони MySQL ҳамчун алтернатива ба модели Open Core пешниҳод шудааст. Моҳияти BSL дар он аст, ки рамзи функсияҳои пешрафта дар аввал барои тағир додан дастрас аст, аммо барои чанд вақт метавонад танҳо дар сурати риоя шудани шартҳои иловагӣ, ки хариди литсензияи тиҷоратиро талаб мекунад, ройгон истифода шавад. Шартҳои иловагии иҷозатнома барои лоиҳаи Dragonfly талаб мекунанд, ки код 2.0 марти соли 15 ба иҷозатномаи Apache 2028 интиқол дода шавад. То ин вақт, иҷозатнома истифодаи рамзро танҳо барои таъмини фаъолияти хидматҳо ва маҳсулоти он иҷозат медиҳад, аммо истифодаи онро барои эҷоди хидматҳои абрии пулакӣ, ки ҳамчун иловаи Dragonfly амал мекунанд, манъ мекунад.

Версияи Dragonfly 1.0 бо татбиқи дастгирии нусхабардории маълумот аз сервери ибтидоӣ ба сервери дуввум намоён аст. Аммо, Dragonfly-ро метавон ҳамчун анбори дуюмдараҷа истифода бурд, ки маълумотро аз сервери асосӣ ё дар асоси Dragonfly ё дар асоси Redis қабул мекунад. API-и идоракунии такрорӣ бо Redis мувофиқ аст ва ба истифодаи фармонҳои ROLE ва REPLICAOF (SLAVEOF) асос ёфтааст.

Манбаъ: opennet.ru

Илова Эзоҳ