设计工具
存储

使用Aerospike在实际工作负载上灵活的数据放置的好处

约翰·马奇| 2024年3月

灵活数据放置(FDP)是NVMe™规范的一个特性1 这是由谷歌和Meta提出的. 该特性的目的是减少多个应用程序在同一个NVMe 固态硬盘上写和修改数据时的写放大(write amplification, WA). 减少WA对这些公司的好处包括增加可用容量(由于需要减少过度供应)和可能延长设备寿命(由于减少磨损)。.

我们提出了一个实验来确定FDP有多大的帮助. 在这个测试中,我们使用了7.68TB美光®7450 PRO固态硬盘分为四个相等的(1).92TB)的命名空间和执行Aerospike NoSQL数据库的并行实例. Aerospike对固态硬盘使用进行了高度优化,并尝试只按顺序写入设备. 这为单个实例提供了非常低的写入放大因子(WAF), 但是当在同一物理设备上运行多个实例时, 这些事务混杂在一起,导致工作负载的随机性.

每个Aerospike实例都配置为使用不同的块大小(32KB)进行写入, 64KB, 128KB, 256KB), 模拟不同客户在虚拟环境中共享空间. 我们还以4 × 1的比例分别执行这些工作负载.92TB 微米 7450 PRO固态硬盘, 我们认为这是FDP的最佳实现,其中所有应用程序数据都接收专用的NAND空间, 因此数据不会在设备上交错,如图1所示.

图1:不带FDP的数据布局(交错)

图2:使用FDP的数据布局(交错)

 

由于Aerospike的优化, 当在应用程序自己的专用存储设备上运行单个实例时,我们期望看到接近1的WA因子. 通过运行YCSB工作负载A(50%读取/50%更新)来确认这一点,直到驱动器被多次填充. 在理想情况下,大型设备上的四个名称空间的行为与四个单个设备相同. 该场景的布局如图2所示.

没有FDP,并且在7上执行多个工作负载.68年结核病设备, 驱动器不会按名称空间分隔NAND,也无法确定在运行的实例上下文中应该将哪些Aerospike数据分组在一起. 交错意味着从驱动器的角度来看,工作负载有效地变得更加随机, 即使每个单独的工作负载是连续的, 如图1所示.  随着随机性的增加,我们看到WA相应增加到1.对于位于非fdp设备上的四个实例,从1个增加到84个.在它自己的专用设备上使用单个实例,如图3所示.

图3:气动脉冲写放大- FDP vs. 没有自由

 

这是一个基本的实验, 它显示了FDP在未来设备中实现的潜在好处. 我们还可以看到一些应用程序, 哪些设计是为了尽可能多地按顺序编写, 在争夺相同的驱动器资源时,是否会从FDP中受益.

1 看到 http://nvmexpress.org/wp-content/uploads/Hyperscale-Innovation-Flexible-Data-Placement-Mode-FDP.pdf Chris Sabol (Google)和Ross Stenfort (Meta)在NVMExpress的演讲中提供了更多细节。. 

首席存储解决方案工程师

约翰Mazzie

John是位于德克萨斯州奥斯汀的数据中心工作负载工程小组的技术人员. 他于2008年毕业于西弗吉尼亚大学(West Virginia University),获得硕士学位,主修无线通信. John曾在Dell的存储MD3系列存储阵列的开发和维护方面工作过. John于2016年加入美光,从事Cassandra的研究, MongoDB, 和Ceph, 以及其他高级存储工作负载.