Microsoft tau qhib qhov Garnet NoSQL system, tsim los rau kev tsim cov caching stores thiab sib xws nrog cov client libraries uas twb muaj lawm rau Redis cia. Garnet txhawb kev tsim cov scalable clusters rau cov ntaub ntawv caching, uas tuaj yeem siv replication, key migration, thiab data sharding ntawm cov cluster nodes. Qhov project no yog sau ua C # nrog lub C ++ cia engine, yog qhib qhov chaw nyob rau hauv MIT daim ntawv tso cai, thiab tuaj yeem khiav ntawm txhua lub platform uas txhawb nqa los ntawm .NET (cov platforms tseem ceeb yog Linux и Windows).
Lub cav Tsavorite (ib qho kev sib txuas ntawm Microsoft lub cav cia FASTER) yog siv rau kev khaws cov ntaub ntawv. Nws txhawb nqa ntau txoj kev nug, kev lag luam, kev kuaj xyuas tsis thaiv, kev rov qab los ntawm kev sib tsoo, cov ntawv theej rov qab, thiab kev sau cov ntaub ntawv ua haujlwm. Garnet lub network handler yog tsim los ntawm kev siv cov qauv cim xeeb sib koom uas tau hais los ntawm ShadowFax kev tshawb fawb project. TLS ua thiab kev sib cuam tshuam khaws cia tau ua tiav hauv ib txoj xov, tshem tawm cov xov hloov pauv thiab siv CPU cache zoo dua thaum xa cov ntaub ntawv hla lub network.
Garnet lub architecture cais cov logic ntawm kev txheeb xyuas thiab ua cov lus nug los ntawm kev ua haujlwm cia khoom. Cov ntaub ntawv khaws cia siv ob lub khw muag khoom tseem ceeb, siv los ntawm Tsavorite lub tsev qiv ntawv. Thawj qhov, "main," khw muag khoom yog optimized rau kev ua haujlwm ceev ceev, thaum qhov thib ob, "object," khw muag khoom yog optimized rau cov khoom nyuaj thiab cov hom ntaub ntawv siab heev, xws li hashes thiab cov npe. Cov hom ntaub ntawv hauv lub khw thib ob yog siv los ntawm kev siv .NET cov tsev qiv ntawv. Cov ntaub ntawv khaws cia rau ntawm C # heap, tso cai rau kev hloov kho tshiab zoo, thiab hauv daim ntawv serialized ntawm disk.

Cov yam ntxwv ntawm Garnet:
- Nws muaj peev xwm xa cov chaw cia khoom sib cais thoob plaws RAM, SSDs, thiab huab cia, qhov twg cov ntaub ntawv tsis tshua nkag mus rau qhov chaw cia qeeb dua los tsim cov caches loj dua RAM.
- Kev txhawb nqa cov cuab yeej txuas ntxiv tso cai rau koj los tsim cov txheej txheem zoo rau cov khoom siv sib txawv, xws li cov txheej txheem rau SDDs, HDDs, thiab Azure Storage.
- Ib txoj hauv kev zoo rau kev siv qhov chaw dawb hauv RAM, tiv thaiv kev tawg ua tej daim me me.
- Cov kev txwv uas kho tau rau qhov ntau ntawm lub cim xeeb siv rau cov indexes, cav, thiab qhov chaw cia khoom.
- Cov txheej txheem RESP siv los nkag mus rau qhov chaw cia khoom, uas tso cai rau Garnet siv nrog cov neeg siv khoom Redis tsis hloov kho.
- Kev txhawb nqa rau kev khaws cia ob qho tib si cov nqi hlua thiab cov qauv ntaub ntawv nyuaj xws li cov npe, hashes, teeb tsa, cov npe txheeb, thiab cov ntaub ntawv geolocation. Muaj peev xwm txhais lub neej tseem ceeb.
- Muaj API rau kev ua cov lus nug analytical (HLL/Hyperloglog, Bitmap), kev lag luam (MULTI/EXEC) thiab siv cov qauv luam tawm/subscribe.
- Muaj cov cuab yeej rau kev tswj hwm kev nkag mus tau yooj yim los ntawm ACL.
- Muaj peev xwm txhais cov qauv hauv JSON lossis redis.conf hom ntawv.
- Kev txhawb nqa rau kev txuas cov neeg ua haujlwm hauv network ntxiv. Lub peev xwm los encrypt cov tsheb khiav siv TLS (raws li SslStream).
- Lub peev xwm los tsim cov extensions hauv C # hom lus uas siv cov haujlwm ntxiv nrog cov hlua thiab cov khoom.
- Kev txhawb nqa rau cov txheej txheem khaws cia ua lag luam uas hla ntau tus yuam sij.
- Lub peev xwm rov qab kho qhov xwm txheej los ntawm qhov chaw uas tau khaws cia ua ntej (checkpoint recovery). Muaj ib hom append-only file (AOF), uas tag nrho cov ntaub ntawv qub tseem nkag tau thiab tsis raug sau dua.
- Kev txhawb nqa rau kev tsim ib pawg cia khoom nrog kev rov ua dua, kev sib cais, kev tsiv teb tsaws chaw ntawm cov nodes, thiab kev ua tsis tiav.
- Kev ua haujlwm siab thiab qis latency thaum ua cov lus nug. Kev ua tiav zoo ntawm cov lus nug me me nrog ntau tus neeg siv khoom sib tham, tso cai rau throughput (tus lej ntawm cov lus nug ua tiav ib ob) ntau dua li cov kev daws teeb meem sib tw. Thaum khiav hauv cov tshuab virtual Hauv Azure huab, lub sijhawm latency ntawm tus neeg siv khoom feem ntau tsis pub tshaj 300 microseconds. Hauv kev sim ua, Garnet ua tau zoo dua Redis, Dragonfly, thiab KeyDB hauv kev ua tau zoo thiab kev teb sai. Hauv qee qhov kev sim, Garnet ua tau zoo dua cov txheej txheem sib tw los ntawm kaum npaug.




Tau qhov twg los: opennet.ru




