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之家附上参考地址