Dragonfly, projekti, joka väittää olevansa nopeampi vaihtoehto Redisille ja Memcachedille

Uutinen julkaistiin siitä ensimmäinen versio on jo saatavilla muistissa oleva tietojen välimuistijärjestelmä Dragonfly, joka tukee Memcached- ja Redis-protokollia, mutta se mahdollistaa kyselyjen suorittamisen paljon paremmalla suorituskyvyllä ja pienemmällä muistinkulutuksella.

Järjestelmä käsittelee tietoja avain/arvo-muodossa, ja sitä voidaan käyttää kevyenä ratkaisuna raskaasti kuormitettujen sivustojen nopeuttamiseen, hitaiden kyselyjen välimuistiin DBMS:ssä ja välitietojen välimuistiin tallentamiseen RAM-muistiin.

BSL ehdottivat MySQL:n perustajat vaihtoehtona Open Core -mallille. BSL:n ydin on, että laajennettu toiminnallisuuskoodi on alun perin muokattavissa, mutta jonkin aikaa sitä voidaan käyttää ilmaiseksi vain lisäehdoilla, joiden ohittaminen edellyttää kaupallisen lisenssin ostamista.

Dragonfly-projektin lisälisenssiehdot edellyttävät, että koodi muutetaan Apache 2.0 -lisenssiksi vasta 1. Siihen asti lisenssi sallii koodin käytön vain palvelujensa ja tuotteidensa toiminnan varmistamiseksi, mutta kieltää käytön maksullisten pilvipalvelujen luomiseen, jotka toimivat Dragonflyn lisäosina.

Sudenkorento väittää olevansa maailman nopein muistin tallennusjärjestelmä, kehittäjien ja vertailuarvojen mukaan. Redikseen verrattuna Dragonfly saavutti 25-kertaisen suorituskyvyn kasvun ja kolminkertainen muistinkulutus tyypillisissä työkuormissa. Yksittäinen Dragonfly-palvelin pystyy käsittelemään miljoonia pyyntöjä sekunnissa, esimerkiksi Amazon EC3 c2gn.6xlarge -ympäristössä saavutettiin 16 miljoonan pyynnön suorituskyky sekunnissa.

5 Gt:n tallennustesteissä Dragonfly tarvitsi 30 % vähemmän muistia kuin Redis. Kun otoksia luodaan "bgsave"-komennolla, muistin kulutus kasvaa, mutta ruuhka-aikoina sitä ylläpidetään lähes kolme kertaa vähemmän kuin Rediksessä, ja itse tilannekuvan kirjoitustoiminto on paljon nopeampi (testissä snapshot kirjoitettiin Dragonfly 30 sekunnissa ja Redis - 42 sekunnissa).

Korkea suorituskyky saavutetaan monisäikeisen arkkitehtuurin ansiosta ei jaettuja resursseja ( share-nothing ), mikä tarkoittaa, että jokaiseen säikeeseen on liitetty erillinen ja itsenäinen ohjain, jolla on omat tietonsa ja joka toimii ilman mutexeja tai spin-lockeja. Kevyitä VLL-lukkoja käytetään varmistamaan atomisuuden, kun käsitellään useita avaimia. Tietojen tehokkaaseen tallentamiseen muistiin käytetään dashtable-rakennetta, joka toteuttaa eräänlaisia ​​osioituja hash-taulukoita.

Käytettävissä olevista toiminnoista ensimmäinen versio korostaa tukea RESP2-protokollalle ja 130 Redis-komentolle, mikä vastaa suunnilleen Redis 2.8 -julkaisun toimintoja.

Lisäksi, Dragonfly tukee kaikkia Memcached-komentoja paitsi CAS (tarkista ja aseta), tukee asynkronisia toimintoja tilannekuvien luomiseen, tarjoaa ennakoitavan muistin kulutuksen, tarjoaa sisäänrakennetun Lua 5.4 -tulkin ja tukee monimutkaisia ​​tietotyyppejä, kuten tiivisteitä, joukkoja ja luetteloita (ZSET, HSET, LIST, SETS ja STRING).

Erikseen on saatavana välimuistitila, jossa vanhat tiedot korvataan automaattisesti uusilla, kun vapaa muisti on lopussa. Tietoihin on mahdollista linkittää koko elämän ajan, jonka aikana dataa pidetään merkityksellisenä.

Tallennustila voidaan tyhjentää levylle taustalla myöhempää palautusta varten uudelleenkäynnistyksen jälkeen. Järjestelmän hallintaa varten tarjotaan HTTP-konsoli (sitoutuu TCP-porttiin 6379) ja API Prometheus-yhteensopivien mittareiden palauttamiseksi. Tulevissa julkaisuissa aiomme laajentaa Redis-komentojen tukea ja ottaa käyttöön mahdollisuuden replikoida tallennustilaa vikasietoa ja kuormitusta varten.

Lopuksi, jos olet kiinnostunut oppimaan lisää siitä, sinun tulee tietää, että Dragonfly-koodi on kirjoitettu C/C++-kielellä ja sitä jaetaan BSL-lisenssillä (Business Source License).

Voit konsultoida projektista Seuraavassa linkissä.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.