Microsoft hapi kodin e depozitës Garnet, e cila është e kompaktueshme me Redis.

Kompania Microsoft hapi kodet burimore të sistemit NoSQL Garnet, i cili është i destinuar për krijimin e ruajtjeve të caches dhe është i pajtueshëm me bibliotekat ekzistuese të klientit për ruajtjen Redis. Garnet mbështet krijimin e klastereve të shkallëzueshme për ruajtjen e të dhënave, ku është e mundur të përdoret replikimi, migrimi i çelësave dhe segmentimi i të dhënave midis nyjeve të klasterit. Projekti është shkruar në gjuhën C# me një bërthamë ruajtjeje 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ë shpallur Linux dhe Windows).

Për ruajtjen e të dhënave përdoret motori Tsavorite (fork i ruajtjes Microsoft FASTER), i cili mbështet përpunimin shumëthirrës të kërkesave, transaksionet, regjistrimin e ndryshimeve në mënyrë jo bllokuese (checkpointing), rikuperimin pas dështimesh, ruajtjen e kopjeve të tepërta dhe mbajtjen e logs të operacioneve. Procesori rrjetor në Garnet është ndërtuar duke përdorur arkitekturën e memories së ndarë, të propozuar nga projekti hulumtues ShadowFax. Trajtimi i TLS dhe ndërveprimi me ruajtjen kryhet në një humbje, duke e lejuar këtë të shmangë kostot e kalimit të humbjeve dhe të shfrytëzojë më efektivisht cache-n e CPU-së gjatë transferimit të të dhënave në rrjet.

Arkitektura Garnet ndan logjikën e analizës dhe përpunimit të kërkesave nga operacionet me ruajtjen. Të dhënat ruhen duke përdorur dy depo në formatin çelës-vlerë, të realizuara mbi bibliotekën Tsavorite. Depoja e parë "themeli" është optimizuar për ekzekutimin e shpejtë të operacioneve me stringje, ndërsa depoja e dytë "objektore" është optimizuar për ruajtjen e objekteve komplekse dhe tipeve të avancuara të të dhënave, siç janë heshat dhe listat. Tipet e të dhënave në depoën e dytë janë realizuar me ndihmën e bibliotikave .NET. Të dhënat ruhen në grumbull (C# heap), gjë që lejon përditësimin e tyre të efektshëm, dhe në formë të serilizuar në disk.

Microsoft hapi kodin e depozitës Garnet, e cila është e kompaktueshme me Redis.

Veçoritë e Garnet:

  • ËshtĂ« e mundur tĂ« krijohen ruajtje me shumĂ« nivele, qĂ« pĂ«rfshijnĂ« memorien e pĂ«rkohshme, SSD-tĂ« dhe ruajtjet nĂ« re, ku tĂ« dhĂ«nat mĂ« pak tĂ« kĂ«rkuara shpĂ«rngulĂ«n nĂ« ruajtur mĂ« tĂ« ngadalshĂ«m pĂ«r krijimin e caches, madhĂ«sia e tĂ« cilave Ă«shtĂ« mĂ« e madhe se memorja e pĂ«rkohshme.
  • MbĂ«shtetje e zgjerueshme e pajisjeve qĂ« lejon krijimin e shtresave tĂ« optimizuara pĂ«r pajisje tĂ« ndryshme, siç janĂ« shtresat pĂ«r SSD, disqet e forta dhe ruajtja nĂ« re Azure Storage.
  • MekanizĂ«m efikas pĂ«r ripĂ«rdorimin e hapĂ«sirĂ«s sĂ« lirĂ« nĂ« kujtesĂ«n operative, duke parandaluar fragmentimin.
  • Limite tĂ« personalizueshme mbi madhĂ«sinĂ« e memories sĂ« pĂ«rdorur pĂ«r indekset, regjistrin dhe ruajtjen e objekteve.
  • PĂ«r qasje nĂ« ruajtje, pĂ«rdoret protokolli RESP, duke lejuar pĂ«rdorimin e Garnet me klientĂ« Redis tĂ« pamodifikuar.
  • MbĂ«shtetje pĂ«r ruajtjen e vlerave string dhe strukturave tĂ« dhĂ«nash komplekse si lista, hesh, grupe, lista tĂ« renditura dhe tĂ« dhĂ«na gjeo-lokacioni. MundĂ«sia pĂ«r tĂ« pĂ«rcaktuar kohĂ«n e jetĂ«s sĂ« çelĂ«sit.
  • DisponueshmĂ«ria e API pĂ«r ekzekutimin e kĂ«rkesave analitike (HLL/Hyperloglog, Bitmap), transaksioneve (MULTI/EXEC) dhe pĂ«rdorimin e paradigmes publikim/abonim.
  • DisponueshmĂ«ria e mjeteve pĂ«r menaxhimin fleksibĂ«l tĂ« aksesit nĂ«pĂ«rmjet ACL.
  • MundĂ«sia pĂ«r tĂ« pĂ«rcaktuar konfigurimin nĂ« formatin JSON ose redis.conf.
  • MbĂ«shtetje pĂ«r lidhjen e pĂ«rpunuesve shtesĂ« tĂ« rrjetit. MundĂ«sia e enkriptimit tĂ« trafikut duke pĂ«rdorur TLS (bazuar nĂ« SslStream).
  • MundĂ«sia pĂ«r tĂ« krijuar zgjerime nĂ« gjuhĂ«n C#, tĂ« cilat realizojnĂ« operacione shtesĂ« me stringje dhe objekte.
  • MbĂ«shtetje pĂ«r procedurat e ruajtura transaksionale qĂ« mbulojnĂ« disa çelĂ«sa.
  • MundĂ«sia pĂ«r tĂ« rikthyer gjendjen nga njĂ« pozite tĂ« ruajtur mĂ« parĂ« (checkpoint-recovery). DisponueshmĂ«ria e njĂ« mĂ«nyre vetĂ«m pĂ«r shtim (AOF, append-only file), ku tĂ« dhĂ«nat e vjetra mbeten tĂ« aksesueshme dhe nuk zĂ«vendĂ«sohen.
  • MbĂ«shtetje pĂ«r krijimin e njĂ« klasteri ruajtjeje me replikim, segmentim (Sharding), migracion dinamik tĂ« çelĂ«save midis nyjeve dhe rikthimin e nyjeve tĂ« dĂ«shtuara.
  • PerformancĂ« e lartĂ« dhe vonesa tĂ« ulĂ«ta gjatĂ« ekzekutimit tĂ« kĂ«rkesave. PĂ«rpunimi efektiv i kĂ«rkesave tĂ« vogla me shumĂ« sesione klientĂ«sh, duke arritur njĂ« shkallĂ« kalimi (numri i kĂ«rkesave tĂ« pĂ«rpunuara pĂ«r sekondĂ«) shumĂ« mĂ« tĂ« lartĂ« se zgjidhjet konkurrente. NĂ« nisje nĂ« makina virtuale NĂ« Azure, nĂ« shumicĂ«n e rasteve, vonesat e qasjes sĂ« klientit nuk e tejkalojnĂ« 300 mikrosend. NĂ« testet e kryera, Garnet tejkalon ndjeshĂ«m Redis, Dragonfly dhe KeyDB nĂ« performancĂ« dhe pĂ«rgjigje. NĂ« disa teste, Garnet ekalon sistemet konkuruese deri nĂ« dhjetĂ« herĂ«.
    Microsoft hapi kodin e depozitës Garnet, e cila është e kompaktueshme me Redis.
    Microsoft hapi kodin e depozitës Garnet, e cila është e kompaktueshme me Redis.
    Microsoft hapi kodin e depozitës Garnet, e cila është e kompaktueshme me Redis.
    Microsoft hapi kodin e depozitës Garnet, e cila është e kompaktueshme me Redis.

Burimi: opennet.ru

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