dot 速度的未来即将在您所在的城市举办的活动中亮相。

加入我们参加 Redis 发布会

将最新的持久内存技术引入 Redis Enterprise

基于英特尔® 持久内存的 3D XPoint™ NVDIMM 的闪存上的 Redis — 每个服务器更多数据,性能比以往更出色!

令人惊叹的是,在过去的 50-60 年里,科技行业只产生了大约 6-7 类内存技术。即使如此,每种内存类型都为我们存储和检索数据的方式带来了不同的属性。从早期的 RAM 到 SRAM、DRAM、NAND 闪存,再到现在的固态硬盘 (SSD) 和 NVMe(非易失性内存高速接口),我们见证了数据存储选项的速度、密度和稳定性方面的显著改进。

闪存上的 Redis(RoF)利用闪存 SSD 形式的高速存储日益普及,重新设定了现有的价格/性能预期。通过将 Redis 从 RAM 扩展到闪存,并使用智能分层始终将热门值保存在 RAM 中,RoF 达到了 新的吞吐量水平,同时仍然保持亚毫秒级延迟。凭借这一创新,存储在 Redis 中的数据的经济效益发生了彻底改变。

我们已经看到许多客户从这种方法中受益。例如,Whitepages 使用我们的闪存上的 Redis解决方案来存储和查询数 TB 的数据——将热门值和键保存在 RAM 中,将冷数据保存在经济高效的基于闪存的 SSD 中。这种架构使他们能够仅将 30% 的数据集保存在 RAM 中,同时仍然从 Redis(闪存上)实现亚毫秒级延迟。实际上,他们正在将端到端应用程序延迟保持在 <100ms。这种对 RAM 消耗的大幅减少每年为 Whitepages 节省数十万美元的基础设施成本。

在过去的几年里,英特尔和美光一直在研究一种全新的存储和内存技术,这种技术基于 3D XPoint™,更快、更密集且非易失性。他们的目标是通过将更多数据靠近处理器放在非易失性介质上,来提高整体系统性能并降低延迟。在 Redis,我们一直在与英特尔密切合作,以确保我们的解决方案能够以最佳方式运行这种新技术。我们首先对基于 3D XPoint™ 技术的 NVMe SSD 卡英特尔傲腾上的 RoF 进行了基准测试,发现与标准基于 NVMe 的 SSD 解决方案相比,性能显着提高 。在过去的几个月里,我们一直在调整和基准测试 RoF,使其能够与基于 NVDIMM 的 3D XPoint™ 技术的新外形尺寸配合使用。

英特尔基于 3D XPoint™ 技术的持久内存提供了一个介于 DRAM 和 SSD 之间的全新层级,可在双路服务器中提供高达 6TB 的容量,性能可与传统 DRAM 内存相媲美。此外,英特尔一直在与行业合作,为 Linux 和 Windows 环境创建一种新的编程语言模型,该模型将允许应用程序直接且持久地与内存中的数据交互。这意味着像 RoF 这样的应用程序可以决定数据集的哪个部分将完全保留在 DRAM 中,以及哪个部分可以同时托管在 DRAM 和 3D XPoint™ 中。作为这项工作的一部分,我们重新设计了 RoF 代码路径,以最大程度地利用新技术带来的性能提升。我们使用主 Redis 线程中的嵌入式存储引擎和 英特尔的 DAX来访问 NVDIMM。这有助于减少内部瓶颈,并消除与 Redis 主线程和用于运行存储引擎的 I/O 线程之间的上下文切换相关的开销。

最终结果——闪存上的 Redis 用户可能会看到与 DRAM 相媲美的性能,即使 80% 以上的数据集存储在 NVDIMM 上。这转化为显着降低的总拥有成本。

这对 Redis 用户来说为何重要?

持久内存使您能够将内存视为数据的主要存储层级。以英特尔新的 NVDIMM 技术承诺的速度运行将彻底改变 Redis 用户的游戏规则。当这项技术开始随服务器一起出货时,客户不仅会获得快速、持久的、更靠近 CPU 和内存的数据存储,还会获得扩展其“内存”的能力。

此外,如果 Redis 用户因内存成本而限制了自己,这种想法即将改变。将数据保存在内存中即将变得更加便宜。新的持久内存层级使您能够在每个节点上保留更多数据,从而在保持性能的同时显著降低基础设施成本。

这意味着不仅 Redis,而且所有其他 DBMS 都可以享受由 3D XPoint™ 技术带来的新速度吗?

实际上,这是一个误解,因为您的 DBMS 必须针对新技术进行优化。事实上,当我们刚开始使用 3D XPoint™ 时,与我们在英特尔傲腾™(基于 3D XPoint™ 的基于 NVMe 的 SSD 卡)上进行的测试相比,我们发现性能没有丝毫影响。这是因为我们的整个软件堆栈和存储引擎并非针对这种持久内存速度水平进行设计。也就是说,由于 Redis 基于内存中引擎(其所有数据结构都是字节可寻址的,没有特殊的序列化/反序列化过程),因此相对容易地将 RoF 堆栈改造成与 NVDIMM(它也是字节可寻址的)配合使用。

现有的基于磁盘的数据库在其整个引擎上构建了并非为字节可寻址而设计的存储引擎。它们在序列化/反序列化方面的开销以及对内部基于磁盘的数据结构的长时间访问将阻止它们在运行这种革命性技术时实现预期的性能提升。 

将大部分处理基础设施迁移到 3D Xpoint™ 技术不会在一夜之间完成,但这是一件您需要为此做好准备的事情。我们相信,一旦 3D XPoint™ 技术成为主流,大多数数据库市场将不得不转向内存中。使用基于磁盘的数据库将不再有任何理由。作为开发人员或软件架构师,您应该开始考虑将您的应用程序代码迁移到与内存中数据库(如 Redis)原生配合使用。您越早这样做,您在竞争对手中所处的优势就越大。