Dragonfly, een cachingsysteem voor RAM-gegevens

DragonFly

Dragonfly is een in-memory datastore die is gebouwd voor moderne applicatieworkloads.

Een paar dagen geleden werd het aangekondigd release van het Dragonfly in-memory caching- en gegevensopslagsysteem, die gegevens manipuleert in sleutel/waarde-indeling en kan worden gebruikt als een lichtgewicht oplossing voor het versnellen van sites met een hoge belasting door langzame query's naar het DBMS en tussentijdse gegevens in RAM te cachen.

Libel ondersteunt Memcached- en Redis-protocollen, waardoor u bestaande clientbibliotheken kunt gebruiken en projecten kunt overzetten met behulp van Memcached en Redis naar Dragonfly zonder dat u uw code hoeft te herwerken.

Het is vermeldenswaard dat Dragonfly onlangs een update ontvangen, het bereiken van zijn versie 1.0 en waarin onderscheidt zich door de implementatie van ondersteuning voor datareplicatie van primaire naar secundaire server.

Tegelijkertijd Libelle kan worden geconfigureerd om te worden gebruikt als secundaire opslag die gegevens accepteert van de hoofdserver op basis van Dragonfly en Redis. De API voor replicatiebeheer is compatibel met Redis en is gebaseerd op het gebruik van de opdrachten ROLE en REPLICAOF (SLAVEOF).

Over Libelle

Hoge prestaties worden bereikt dankzij een multi-threaded architectuur zonder bronnen te delen (shared-nothing), wat betekent dat een afzonderlijke controller aan elke thread is gekoppeld met zijn eigen stuk gegevens, wat werkt zonder mutexes of spin-locks.

Lichtgewicht VLL-sloten worden gebruikt om atomiciteit te garanderen bij het omgaan met meerdere sleutels, aangezien om de informatie efficiënt in het geheugen op te slaan, de dashtable-structuur wordt gebruikt, die een soort gepartitioneerde hash-tabellen implementeert.

In vergelijking met Redis heeft Dragonfly een prestatieverbetering van 25x (3,8 miljoen verzoeken per seconde) onder typische workloads in een Amazon EC2 c6gn.16xlarge-omgeving. Vergeleken met Memcached in een AWS c6gn.16xlarge-omgeving, kon Dragonfly 4,7 keer meer schrijfverzoeken per seconde voltooien (3,8 miljoen vs. 806k) en 1,77 keer meer leesverzoeken per seconde (3,7 miljoen vs. 2,1 miljoen).

In opslagtests van 5 GB Dragonfly had 30% minder geheugen nodig dan Redis. Tijdens het maken van snapshots met de opdracht "bgsave" neemt het geheugenverbruik toe, maar op piekmomenten werd het bijna drie keer minder bewaard dan in Redis, en de snapshot-schrijfbewerking zelf is veel sneller (in het geval van Redis). momentopname werd in Dragonfly in 30 seconden geschreven en Redis in 42 seconden).

Sommige Dragonfly-functies zijn:

  • Een caching-modus die oude gegevens automatisch vervangt door nieuwe gegevens zodra het vrije geheugen leeg is.
  • Ondersteuning voor gegevensbindingslevenscycli waarin gegevens als up-to-date worden beschouwd.
  • Ondersteuning voor het wissen van de opslagstatus naar schijf op de achtergrond voor later herstel na opnieuw opstarten.
  • De aanwezigheid van een HTTP-console (bindt op TCP-poort 6379) voor systeembeheer en een API voor het retourneren van statistieken, compatibel met Prometheus.
  • Ondersteuning voor 185 Redis-commando's, ongeveer gelijk aan de functionaliteit van de Redis 5-release.
  • Ondersteuning voor alle Memcached-opdrachten behalve CAS (verifiëren en configureren).
  • Ondersteuning voor asynchrone bewerkingen om snapshots te maken.
  • Voorspelbaar geheugenverbruik.
  • Geïntegreerde Lua-tolk 5.4.
  • Ondersteuning voor complexe gegevenstypen zoals hashes, sets, lijsten (ZSET, HSET, LIST, SETS en STRING) en JSON-gegevens.
  • Ondersteuning voor opslagreplicatie voor failover en taakverdeling.

Voor degenen die geïnteresseerd zijn in de Dragonfly-code, moet u weten dat dit is geschreven in C/C++ en wordt gedistribueerd onder de licentie BSL .De essentie van BSL is dat de uitgebreide functionaliteitscode in eerste instantie beschikbaar is voor wijziging, maar gedurende enige tijd alleen gratis kan worden gebruikt onder aanvullende voorwaarden, die de aanschaf van een commerciële licentie vereisen om deze te omzeilen.

De aanvullende licentievoorwaarden van het Dragonfly-project vereisen dat de code op 2.0 maart 15 wordt gemigreerd naar de Apache-licentie 2028. Tot die tijd staat de licentie het gebruik van de code alleen toe om de werking van de services en producten te garanderen, maar verbiedt het gebruik om betaalde cloudservices die fungeren als een plug-in voor Dragonfly.

Eindelijk als je er wat meer over wilt wetenkunt u de details in het volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.