Microsoft hapi kodin e depozitës Garnet, e cila është e përshtatshme me Redis

Kompania Microsoft hapën kodin burimor të sistemit NoSQL Garnet, i cili është i dizajnuar për krijimin e depozitave me cache dhe është kompatibil me bibliotekat ekzistuese të klientëve për depozitimin Redis. Garnet mbështet krijimin e grupeve të shkallëzuara për ruajtjen në cache të të dhënave, ku mund të përdoren replikimi, migrimi i çelësave dhe segmentimi i të dhënave midis nyjeve të grupit. Projekti është shkruar në gjuhën C# me një kern depozite në C++, është i hapur nën licencën MIT dhe mund të funksionojë në të gjitha platformat që mbështeten në .NET (platformat kryesore janë deklaruar si Linux dhe Windows).

Për ruajtjen e të dhënave, përdoret motori Tsavorite (forku i depozitës Microsoft FASTER), i cili mbështet përpunimin shumëthënës të kërkesave, transaksionet, vendosjen e ndryshimeve në modalitetin pa bllokim (checkpointing), rikuperimin nga dështimet, ruajtjen e kopjeve të tepërta dhe mbajtjen e logut të operacioneve. Përdoruesi i rrjetit në Garnet është ndërtuar duke përdorur arkitekturën e memories së ndarë, e propozuar nga projekti kërkimor ShadowFax. Procesimi TLS dhe ndërveprimi me depozitën kryhet në një përcjellës, çka lejon shmangien e shpenzimeve të kalimit të përcjellësve dhe përdorimin më efikas të caches CPU gjatë transferimit të të dhënave përmes rrjetit.

Arkitektura Garnet ndan një ndarje midis logjikës së analizës dhe përpunimit të kërkesave dhe operacioneve me ruajtjen. Të dhënat ruhet duke përdorur dy ruajtje në formatin çelës-vlerë, të implementuara mbi bibliotekën Tsavorite. Ruajtja e parë "themelore" është optimizuar për ekzekutimin e shpejtë të operacioneve me vargje, ndërsa ruajtja e dytë "objektore" është optimizuar për akomodimin e objekteve të komplikuara dhe tipeve të avancuara të të dhënave, si heshte dhe lista. Tipet e të dhënave në ruajtjen e dytë janë implementuar me ndihmën e biblioteka .NET. Të dhënat ruhen në heap (C# heap), çka lejon përditësimin efikas të tyre, dhe në formë të serilizuar në disk.

Microsoft hapi kodin e depozitës Garnet, e cila është e përshtatshme me Redis

Karakteristikat e Garnet:

  • MundĂ«sia e vendosjes sĂ« ruajtjeve tĂ« shumĂ«fishta, duke pĂ«rfshirĂ« memorien RAM, SSD dhe ruajtje nĂ« cloud, ku tĂ« dhĂ«nat mĂ« pak tĂ« kĂ«rkuara janĂ« shtyrĂ« nĂ« ruajtje mĂ« tĂ« ngadalta pĂ«r krijimin e caches, qĂ« janĂ« mĂ« tĂ« mĂ«dha se memoria RAM.
  • PĂ«rkrahje e zgjerueshme pĂ«r pajisje, e cila lejon krijimin e niveleve tĂ« optimizuara pĂ«r punĂ« me pajisje tĂ« ndryshme, siç janĂ« nivelet pĂ«r SSD, diskĂ«t e fortĂ« dhe ruajtjen cloud Azure Storage.
  • NjĂ« mekanizĂ«m efektiv pĂ«r ripĂ«rdorimin e hapĂ«sirĂ«s sĂ« lirĂ« nĂ« memorjen e operativ, duke parandaluar fragmentimin.
  • Limita tĂ« pĂ«rshtatshme pĂ«r madhĂ«sinĂ« e memories qĂ« pĂ«rdoret pĂ«r indeksat, logun dhe ruajtjen e objekteve.
  • PĂ«r tĂ« aksesuar magazinĂ«n, pĂ«rdoret protokolli RESP, i cili lejon pĂ«rdorimin e Garnet me klientĂ« Redis tĂ« pa modifikuar.
  • MbĂ«shtetje pĂ«r ruajtjen e vlerave si string dhe pĂ«r struktura tĂ« ndĂ«rlikuara tĂ« dhĂ«nash, si lista, hesh, grupe, lista tĂ« renditura dhe tĂ« dhĂ«na gjeolokacioni. MundĂ«sia pĂ«r tĂ« pĂ«rcaktuar kohĂ«zgjatjen e jetĂ«s sĂ« çelĂ«sit.
  • Prania e njĂ« API pĂ«r ekzekutimin e kĂ«rkesave analitike (HLL/Hyperloglog, Bitmap), transaksioneve (MULTI/EXEC) dhe pĂ«rdorimin e paradigmatĂ«ve publikim/subskripcion.
  • Prania e mjeteve pĂ«r menaxhim fleksibĂ«l tĂ« aksesit pĂ«rmes ACL.
  • MundĂ«sia pĂ«r tĂ« pĂ«rcaktuar konfigurimin nĂ« formatin JSON ose redis.conf.
  • MbĂ«shtetje pĂ«r lidhjen e trajtuesve tĂ« rinj nĂ« rrjet. MundĂ«sia pĂ«r tĂ« enkriptuar trafikun duke pĂ«rdorur TLS (nĂ« bazĂ« tĂ« SslStream).
  • MundĂ«sia pĂ«r tĂ« krijuar zgjerime nĂ« gjuhĂ«n C#, qĂ« zbatojnĂ« operacione tĂ« tjera me string dhe objekte.
  • MbĂ«shtetje pĂ«r procedurat e ruajtjes tranzaksionale qĂ« pĂ«rfshijnĂ« disa çelĂ«sa.
  • MundĂ«sia pĂ«r t'u rikuperuar nĂ« njĂ« pozicion tĂ« ruajtur mĂ« parĂ« (checkpoint-recovery). Prania e njĂ« rethi vetĂ«m pĂ«r shtim (AOF, skedari vetĂ«m pĂ«r shtim), ku tĂ« dhĂ«nat e vjetra mbeten tĂ« aksesueshme dhe nuk zĂ«vendĂ«sohen.
  • MbĂ«shtetje pĂ«r krijimin e klasterit tĂ« ruajtjes me replikim, segmentim (Sharding), migrim dinamik tĂ« çelĂ«save midis nyjave dhe rikuperim tĂ« nyjave qĂ« kanĂ« dĂ«shtuar.
  • PerformancĂ« e lartĂ« dhe vonesa tĂ« ulta gjatĂ« ekzekutimit tĂ« kĂ«rkesave. PĂ«rpunim efikas i kĂ«rkesave tĂ« vogla tĂ« grupit me njĂ« numĂ«r tĂ« madh seancash klientĂ«sh, duke mundĂ«suar njĂ« kapacitet (numri i kĂ«rkesave tĂ« pĂ«rpunuara nĂ« sekondĂ«) njĂ« rend mĂ« tĂ« lartĂ« se zgjidhjet konkurruese. Kur ekzekutohet nĂ« makinat virtuale nĂ« atĂ« qĂ« quhet cloud Azure, nĂ« shumicĂ«n e rasteve, vonesat e aksesit nga klienti nuk e kalojnĂ« 300 mikrosekonda. NĂ« testet e kryera, Garnet tejkalon ndjeshĂ«m Redis, Dragonfly dhe KeyDB nĂ« performancĂ« dhe reagim. NĂ« disa teste, Garnet tejkalon sistemet konkurruese deri nĂ« dhjetĂ« herĂ«.
    Microsoft hapi kodin e depozitës Garnet, e cila është e përshtatshme me Redis
    Microsoft hapi kodin e depozitës Garnet, e cila është e përshtatshme me Redis
    Microsoft hapi kodin e depozitës Garnet, e cila është e përshtatshme me Redis
    Microsoft hapi kodin e depozitës Garnet, e cila është e përshtatshme me Redis

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster