Microsoft har öppnat koden för Garnet-lagringslösningen, som Àr kompatibel med Redis

Microsoft har öppnat kÀllkoden för NoSQL-systemet Garnet, som Àr designat för att skapa cache-lagringssystem och Àr kompatibelt med befintliga klientbibliotek för Redis-lagring. Garnet stöder skapandet av skalbara kluster för datacaching, dÀr replikering, nyckelmigrering och datasegmentering mellan kluster noder kan anvÀndas. Projektet Àr skrivet i C# med en lagringskÀrna i C++, Àr öppet under MIT-licensen och kan köras pÄ alla plattformar som stöds i .NET (primÀra plattformar som nÀmns Àr Linux och Windows).

För datalagring anvÀnds motorn Tsavorite (en fork av Microsoft FASTER-lagringen), som stödjer flertrÄdad begÀrsbehandling, transaktioner, icke-blockerande förÀndringscheckpointing, felÄterstÀllning, lagring av redundanta kopior och loggning av operationer. NÀtverksprocessorn i Garnet Àr byggd med en arkitektur för delat minne som föreslagits av forskningsprojektet ShadowFax. Behandling av TLS och interaktion med lagringen utförs i en trÄd, vilket gör att man kan undvika overhead för trÄdbyte och mer effektivt utnyttja CPU-cachen vid datatransferering över nÀtet.

Arkitekturen i Garnet separerar logiken för parsning och begÀrsbehandling frÄn lagringsoperationer. Data lagras med hjÀlp av tvÄ nyckel-vÀrde-lager som Àr byggda pÄ biblioteket Tsavorite. Det första "grundlÀggande" lagret Àr optimerat för snabba strÀngoperationer, medan det andra "objekt"-lagret Àr optimerat för lagring av komplexa objekt och avancerade datatyper, som hashar och listor. Datatyper i det andra lagret implementeras med stöd av .NET-biblioteken. Data lagras pÄ heapen (C# heap), vilket gör att de kan uppdateras effektivt, samt i serialiserad form pÄ disk.

Microsoft har öppnat koden för Garnet-lagringslösningen, som Àr kompatibel med Redis

Egenskaper hos Garnet:

  • Det Ă€r möjligt att distribuera flerskiktade lagringssystem som omfattar RAM, SSD-lagring och molnlager, dĂ€r mindre efterfrĂ„gade data flyttas till lĂ„ngsammare lagringssystem för att skapa cacher som överstiger RAM-storleken.
  • Utökningsbar enhetssupport som möjliggör skapande av lager optimerade för olika enheter, exempelvis lager för SSD, hĂ„rddiskar och Azure Storage.
  • Effektiv mekanism för Ă„teranvĂ€ndning av frigjort minnesutrymme som förhindrar fragmentering.
  • Konfigurerbara grĂ€nser för det minnesutrymme som anvĂ€nds för index, loggar och objektlagring.
  • För att fĂ„ Ă„tkomst till lagret anvĂ€nds RESP-protokollet, vilket gör det möjligt att anvĂ€nda Garnet med oförĂ€ndrade Redis-klienter.
  • Stöd för lagring av bĂ„de strĂ€ngvĂ€rden och komplexa datatyper sĂ„som listor, hashar, mĂ€ngder, sorterade listor och geodata. Möjlighet att definiera livslĂ€ngd för nycklar.
  • TillgĂ„ng till API för att utföra analytiska frĂ„gor (HLL/Hyperloglog, Bitmap), transaktioner (MULTI/EXEC) och anvĂ€nda publicerings-/prenumerationsparadigmet.
  • TillgĂ„ng till verktyg för flexibel Ă„tkomsthantering via ACL.
  • Möjlighet att definiera konfigurationen i JSON-format eller redis.conf.
  • Stöd för anslutning av ytterligare nĂ€tverksbehandlare. Möjlighet till kryptering av trafiken med TLS (baserat pĂ„ SslStream).
  • Möjlighet att skapa tillĂ€gg pĂ„ sprĂ„ket C# som implementerar extra operationer med strĂ€ngar och objekt.
  • Stöd för transaktionella lagrade procedurer som omfattar flera nycklar.
  • Möjlighet att Ă„terstĂ€lla tillstĂ„ndet frĂ„n en tidigare sparad position (checkpoint-recovery). TillgĂ„ng till endast-tillĂ€ggslĂ€ge (AOF, append-only file), dĂ€r alla gamla data förblir tillgĂ€ngliga och inte överskrivs.
  • Stöd för skapande av lagringskluster med replikering, segmentering (Sharding), dynamisk migrering av nycklar mellan noder och Ă„terstĂ€llning av felaktiga noder.
  • Hög prestanda och lĂ„ga fördröjningar vid genomförande av förfrĂ„gningar. Effektiv behandling av smĂ„ batch-förfrĂ„gningar vid ett stort antal klientsessioner, vilket möjliggör en genomströmning (antal behandlade förfrĂ„gningar per sekund) som Ă€r ordentligt högre Ă€n hos konkurrerande lösningar. virtuella maskiner I molnet Azure överstiger inte i de flesta fall fördröjningar i kundens anrop 300 mikrosekunder. I utförda tester övertrĂ€ffar Garnet avsevĂ€rt Redis, Dragonfly och KeyDB nĂ€r det gĂ€ller prestanda och respons. I vissa tester övertrĂ€ffar Garnet konkurrenternas system med tio gĂ„nger.
    Microsoft har öppnat koden för Garnet-lagringslösningen, som Àr kompatibel med Redis
    Microsoft har öppnat koden för Garnet-lagringslösningen, som Àr kompatibel med Redis
    Microsoft har öppnat koden för Garnet-lagringslösningen, som Àr kompatibel med Redis
    Microsoft har öppnat koden för Garnet-lagringslösningen, som Àr kompatibel med Redis

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster