Dragonfly, system buforowania danych w pamięci RAM

Ważka

Dragonfly to magazyn danych w pamięci stworzony z myślą o obciążeniach nowoczesnych aplikacji.

Kilka dni temu zostało to ogłoszone wydanie systemu pamięci podręcznej i przechowywania danych Dragonfly, który manipuluje danymi w formacie klucz/wartość i może być używany jako lekkie rozwiązanie do przyspieszania witryn o dużym obciążeniu poprzez buforowanie powolnych zapytań do systemu DBMS i danych pośrednich w pamięci RAM.

Dragonfly obsługuje protokoły Memcached i Redis, umożliwiając korzystanie z istniejących bibliotek klienckich i projektów portów przy użyciu Memcached i Redis do Dragonfly bez konieczności przerabiania kodu.

Warto wspomnieć o Dragonfly niedawno otrzymał aktualizację, dochodząc do wersji 1.0 iw której wyróżnia się implementacją obsługi replikacji danych z serwera głównego na serwer pomocniczy.

W tym samym czasie Dragonfly może być skonfigurowany do używania jako dodatkowa pamięć masowa który przyjmuje dane z głównego serwera opartego o Dragonfly i Redis. API zarządzania replikacją jest kompatybilne z Redis i opiera się na wykorzystaniu poleceń ROLE i REPLICAOF (SLAVEOF).

O Dragonfly

Wysoka wydajność jest osiągana dzięki wielowątkowej architekturze bez współdzielenia zasobów (shared-nothing), co oznacza, że ​​do każdego wątku jest dołączony osobny kontroler z własnym fragmentem danych, co działa bez muteksów i spin-locków.

Lekkie zamki VLL są używane do zagwarantowania niepodzielności w przypadku wielu kluczy, ponieważ do efektywnego przechowywania informacji w pamięci używana jest struktura dashtable, która implementuje rodzaj podzielonych na partycje tablic skrótów.

W porównaniu z Redis, Dragonfly oferuje 25-krotny wzrost wydajności (3,8 miliona żądań na sekundę) przy typowych obciążeniach w środowisku Amazon EC2 c6gn.16xlarge. W porównaniu z Memcached w środowisku AWS c6gn.16xlarge, Dragonfly był w stanie obsłużyć 4,7 razy więcej żądań zapisu na sekundę (3,8 miliona w porównaniu z 806 tys.) i 1,77 razy więcej żądań odczytu na sekundę (3,7 miliona w porównaniu z 2,1 miliona).

W testach przechowywania 5 GB Dragonfly wymagał o 30% mniej pamięci niż Redis. Podczas tworzenia migawki za pomocą polecenia „bgsave” zużycie pamięci wzrasta, ale w szczytowych momentach utrzymywało się prawie trzykrotnie mniej niż w Redis, a sama operacja zapisu migawki jest znacznie szybsza (w przypadku Redis). snapshot został napisany na Dragonfly w 30 sekund, a Redis w 42 sekundy).

Kilka Cechy ważki to:

  • Tryb buforowania, który automatycznie zastępuje stare dane nowymi danymi po wyczerpaniu wolnej pamięci.
  • Obsługa cykli życia powiązań danych, podczas których dane są uważane za aktualne.
  • Obsługa opróżniania stanu pamięci na dysk w tle w celu późniejszego odzyskania po ponownym uruchomieniu.
  • Obecność konsoli HTTP (wiąże się z portem TCP 6379) do zarządzania systemem oraz API do zwracania metryk, kompatybilnych z Prometheusem.
  • Obsługa 185 poleceń Redis, z grubsza odpowiadająca funkcjonalności wersji Redis 5.
  • Obsługa wszystkich poleceń Memcached z wyjątkiem CAS (weryfikacja i konfiguracja).
  • Obsługa operacji asynchronicznych w celu tworzenia migawek.
  • Przewidywalne zużycie pamięci.
  • Zintegrowany interpreter Lua 5.4.
  • Obsługa złożonych typów danych, takich jak skróty, zestawy, listy (ZSET, HSET, LIST, SETS i STRING) oraz dane JSON.
  • Obsługa replikacji pamięci masowej na potrzeby przełączania awaryjnego i równoważenia obciążenia.

Osoby zainteresowane kodem Dragonfly powinny o tym wiedzieć jest napisany w C/C++ i jest dystrybuowany pod Licencja BSL Istotą BSL jest to, że kod o rozszerzonej funkcjonalności jest początkowo dostępny do modyfikacji, ale przez pewien czas można go używać za darmo tylko pod warunkiem spełnienia dodatkowych warunków, których ominięcie wymaga zakupu licencji komercyjnej.

Dodatkowe warunki licencyjne projektu Dragonfly wymagają migracji kodu do licencji Apache 2.0 w dniu 15 marca 2028 r. Do tego czasu licencja zezwala na używanie kodu wyłącznie w celu zapewnienia działania usług i produktów, ale zabrania używania do tworzenia płatnych usługi w chmurze, które działają jako wtyczka do Dragonfly.

W końcu jeśli chcesz dowiedzieć się czegoś więcej na ten temat, możesz sprawdzić szczegóły w następujący link.


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.