微軟推出 Garnet 緩存存儲系統(tǒng):高吞吐量、低延遲、可擴(kuò)展
3 月 20 日消息,微軟近日推出了名為 Garnet 的全新緩存存儲系統(tǒng),能更大限度發(fā)揮硬件功能,幫助應(yīng)用程序開發(fā)人員更快地運(yùn)行應(yīng)用程序。
微軟目前已經(jīng)開源 Garnet,并表示已經(jīng)部署到 Windows & Web Experiences Platform、Azure Resource Manager 和 Azure Resource Graph 上。
微軟在新聞稿中表示,Garnet 項(xiàng)目于 2021 年啟動研發(fā),初衷是讓應(yīng)用程序和服務(wù)應(yīng)該能夠以“比以往更高的效率、更低的延遲和更低的成本”訪問數(shù)據(jù)。
Garnet 是微軟研究院基于 C# .NET8.0 開發(fā)的一種新型遠(yuǎn)程緩存存儲系統(tǒng),它設(shè)計目的是實(shí)現(xiàn)極速、可擴(kuò)展和低延遲。
Garnet 能夠在單節(jié)點(diǎn)內(nèi)進(jìn)行線程擴(kuò)展,并支持分片集群執(zhí)行,具備復(fù)制、檢查點(diǎn)、故障轉(zhuǎn)移和事務(wù)處理功能。
它可以在主內(nèi)存以及分層存儲(如 SSD 和 Azure 存儲)上運(yùn)行。Garnet 提供豐富的 API 接口和強(qiáng)大的可擴(kuò)展性模型。
微軟概述了 Garnet 的優(yōu)點(diǎn)如下:
- Garnet 采用流行的 RESP 線協(xié)議作為起點(diǎn),這使得 Garnet 可以在當(dāng)今大多數(shù)編程語言中直接使用未經(jīng)修改的 Redis 客戶端。
- Garnet 具有更好的可擴(kuò)展性和吞吐量,可連接多個客戶端和小批次,從而為大型應(yīng)用程序和服務(wù)節(jié)省成本。
- Garnet 在第 99 個百分位數(shù)和第 99.9 個百分位數(shù)上顯示出更好的客戶端延遲,這對實(shí)際應(yīng)用場景至關(guān)重要。
- Garnet 基于最新的 .NET 技術(shù),具有跨平臺、可擴(kuò)展和現(xiàn)代化的特點(diǎn)。它的設(shè)計宗旨是便于開發(fā)和發(fā)展,同時又不犧牲普通情況下的性能。我們利用.NET 豐富的庫生態(tài)系統(tǒng)實(shí)現(xiàn)了 API 的廣泛性,并提供了開放的優(yōu)化機(jī)會。由于我們對 .NET 的精心使用,Garnet 在 Linux 和 Windows 上都實(shí)現(xiàn)了最先進(jìn)的性能。
實(shí)驗(yàn) 1:不同客戶會話數(shù)量下的吞吐量
圖 1:在數(shù)據(jù)庫大小為 (a) 1024 個鍵,和 (b) 2.56 億個鍵的情況下,隨著客戶端會話數(shù)的變化,吞吐量(對數(shù)尺度)。
實(shí)驗(yàn) 2:不同批量大小的吞吐量
圖 2:在數(shù)據(jù)庫大小為 (a) 1024 個鍵,和 (b) 2.56 億個鍵的情況下,隨著批量大小的變化,吞吐量(對數(shù)尺度)。
實(shí)驗(yàn) 3:不同客戶會話數(shù)的延遲
圖 3:在不同的客戶端會話數(shù)下,延遲變化,(a) 中位數(shù),(b) 第 99 百分位數(shù),和 (c) 第 99.9 百分位數(shù)
實(shí)驗(yàn) 4:不同批次規(guī)模的延遲
圖 4:在不同的批量大小下,延遲變化,(a) 中位數(shù),(b) 第 99 百分位數(shù),和 (c) 第 99.9 百分位數(shù)
IT之家附上參考地址