近日,微软正式开源缓存存储系统Garnet,能更大限度发挥硬件功能,帮助开发人员更快地运行应用程序。
微软研究院数据库小组高级首席研究员Badrish Chandramouli介绍,Garnet项目是基于C# .NET8.0从零开始构建而成,且以性能为核心考量。
Garnet项目整体架构
具体来说,Garnet 具有以下几大优势:
一、Garnet采用流行的RESP线路协议作为起点,因此大多数用户可以不作任何修改、就直接通过大多数编程语言编写的Redis客户端直接接入Garnet。
二、Garnet通过多条客户端连接与小批量形式提供更好的可扩展性与吞吐量,帮助大型应用程序和服务节约运行成本。
三、Garnet在第99及第99.9百分位上表现出更好的客户端延迟水平,更高比例的稳定性表现对于现实场景而言至关重要。
四、Garnet基于最新.NET技术,具有跨平台、可扩展和现代化等特点,它在设计上易于开发与调整,且不致牺牲常见场景下的性能水平。
那么Gartner具体性能表现如何呢,微软研究团队通过对此展示了Gartner与其他领先开源缓存存储方案间的关键性能指标。
实验一:不同数量客户端会话的吞吐量比较
数据库大小为(a)1024个键及(b)2.56亿个键时,不同数量客户端会话对应的吞吐量(对数坐标)
实验二:不同批量大小的吞吐量比较
数据库大小为(a)1024个键及(b)2.56亿个键时,不同批量大小下的吞吐量比较(取对数坐标)
实验三:不同数量实施意见会话的延迟比较
不同客户端会话数量时,(a)中位数、(b)第99百分位与(c)第99.9百分位处的延迟水平。
实验四:不同批量大小的延迟比较
不同批量大小下,(a)中位数、(b)第99百分位以及(c)第99.9百分位上的延迟水平。
从基准性能图表来看,GET命令的吞吐量超过了Dragonfly十倍以上,第99百分位上的延迟却比Dragonfly更低,同时Garnet和Dragonfly在吞吐量和延迟上的表现均远远优于Redis。