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