A Microsoft megnyitotta a Garnet tároló kódját, amely kompatibilis a Redis-szel

A Microsoft megnyitotta a Garnet NoSQL-rendszer forráskódját, amelyet a gyorsítótár tárolók létrehozására terveztek, és amely kompatibilis a Redis tárolóhoz készült meglévő klienskönyvtárakkal. A Garnet támogatja a skálázható klaszterek létrehozását az adatok gyorsítótárazására, ahol replikáció, kulcsmigráció és adatok szegmentálása végezhető a klaszter csomópontjai között. A projekt C# nyelven íródott, C++ tárolási kernellal, MIT licenc alatt, és minden olyan platformon működhet, amelyet a .NET támogat (a fő platformok között Linux és Windows szerepel).

Az adatok tárolásához a Tsavorite motort (a Microsoft FASTER tároló forkját) használják, amely támogatja a több szálon történő lekérdezéskezelést, tranzakciókat, a változások blokkolás nélküli rögzítését (checkpointing), a hibahelyreállítást, a redundáns másolatok tárolását és a műveletek naplózását. A Garnet hálózati kezelője a ShadowFax kutatási projekt által javasolt megosztott memória architektúrára épül. A TLS kezelés és a tárolóval való interakció egy szálban történik, ami lehetővé teszi a szálváltási költségek elkerülését és hatékonyabb CPU gyorsítótár használatot biztosít az adatok hálózaton történő átvitele során.

A Garnet architektúrája elválasztja a lekérdezések elemzésének és kezelésének logikáját a tárolási műveletektől. Az adatokat kulcs-érték formátumú két tárolóval rögzítik, amelyek a Tsavorite könyvtárra épülnek. Az első, "fő" tároló a sztringműveletek gyors végrehajtására van optimalizálva, míg a második, "objektum" tároló a komplex objektumok és kiterjesztett adattípusok, például hash-ek és listák elhelyezésére van optimalizálva. A második tároló adatainak típusa .NET könyvtárak bevonásával valósul meg. Az adatok a kupacban (C# heap) tárolódnak, ami lehetővé teszi a hatékony frissítést, valamint sorosított formában a lemezen.

A Microsoft megnyitotta a Garnet tároló kódját, amely kompatibilis a Redis-szel

A Garnet jellemzői:

  • Lehetőség van többrétegű tárolók telepítésére, amelyek a RAM-ot, SSD-meghajtókat és felhőtárolókat ölelik fel, ahol a kevésbé keresett adatok lassabb tárolókba kerülnek, lehetővé téve a gyorsítótárak létrehozását, amelyek mérete meghaladja a RAM-ot.
  • Kiterjeszthető eszköztámogatás, amely lehetővé teszi különböző eszközökhöz optimalizált rétegek létrehozását, például SSD, merevlemezek és Azure Storage felhőalapú tárolórétegek.
  • Hatékony mechanizmus a felszabadult memória területének újrahasználására, amely megakadályozza a töredezést.
  • Testreszabható határok a memóriában használt méret elérésére, beleértve az indexeket, a naplókat és az objektumtárolást.
  • A tárolóra a RESP protokoll révén lehet hivatkozni, így a Garnet használata során nem módosított Redis kliensekkel is interakcióba lehet lépni.
  • Támogatott a karakterlánc értékek és összetett adatszerkezetek, például listák, hash-ek, halmazok, rendezett listák és geolokációs adatok tárolása. Lehetőség a kulcsok élettartamának meghatározására.
  • API elérhetőség az analitikai lekérdezések (HLL/Hyperloglog, Bitmap), tranzakciók (MULTI/EXEC) végrehajtására és a közzétételi/előfizetési paradigma használatára.
  • Eszközök a rugalmassághoz való hozzáférés kezelésére ACL-en keresztül.
  • Lehetőség a konfiguráció JSON vagy redis.conf formátumban történő megadására.
  • Támogatható a további hálózati kezelők csatlakoztatása, a TLS forgalom titkosításának lehetőségével (SslStream alapú).
  • Lehetőség C# nyelven kiterjesztések létrehozására, amelyek további műveleteket valósítanak meg karakterláncokkal és objektumokkal.
  • Támogatott tranzakciós tárolt eljárások létrehozása, amelyek több kulcsot is lefednek.
  • Lehetőség az állapot helyreállítására egy korábban mentett pozícióból (checkpoint-recovery). Csak hozzáadás mód (AOF, append-only file) aktiválása, amely megőrzi az összes régi adatot és nem felülírja azokat.
  • Támogatott a tárolási klaszter létrehozása replikációval, shardinggal, dinamikus kulcsmigrációval csomópontok között, valamint a meghibásodott csomópontok helyreállításával.
  • Magas teljesítmény és alacsony késleltetés a lekérdezések végrehajtásakor. Hatékonyan kezeli a kis csomagú lekérdezéseket nagy számú ügyfél munkamenet mellett, lehetővé téve a feldolgozási sebesség (másodpercenként feldolgozott lekérdezések száma) jelentős növelését versenytársakhoz képest. virtuális gépekben Az Azure felhőjében a legtöbb esetben az ügyfél hívásának késése nem haladja meg a 300 mikroszekundumot. A Garnet a tesztek során jelentősen megelőzi a Redis, Dragonfly és KeyDB teljesítményét és reakcióidejét. Bizonyos tesztekben a Garnet a versenytárs rendszereket tízszeres sebességgel teljesíti.
    A Microsoft megnyitotta a Garnet tároló kódját, amely kompatibilis a Redis-szel
    A Microsoft megnyitotta a Garnet tároló kódját, amely kompatibilis a Redis-szel
    A Microsoft megnyitotta a Garnet tároló kódját, amely kompatibilis a Redis-szel
    A Microsoft megnyitotta a Garnet tároló kódját, amely kompatibilis a Redis-szel

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster