设计工具
存储

Benefits of flexible data placement on real workloads using Aerospike

约翰·马奇| 2024年3月

Flexible Data Placement (FDP) is a feature of the NVMe™ specification1 that has been proposed by Google and Meta. The purpose of this feature is to reduce write amplification (WA) when multiple applications are writing and modifying data on the same NVMe 固态硬盘. Benefits of reduced WA for these companies include increased usable capacity (due to requiring less over-provisioning) and potentially longer device life (due to reduced wear).

We proposed an experiment to determine how helpful FDP might be. 在这个测试中,我们使用了7.68TB 微米® 7450 PRO 固态硬盘 split into four equal (1.92TB) namespaces and executing parallel instances of the Aerospike NoSQL database. Aerospike is highly optimized for 固态硬盘 usage and attempts to only write sequentially to the device. This gives a very low write amplification factor (WAF) for single instances, but when running multiple instances on the same physical device, these transactions get jumbled together causing randomness in the workload.

Each Aerospike instance was configured to write with varying block size (32KB, 64KB, 128KB, 256KB), to simulate different customers sharing space in a virtual environment. We also execute these workloads individually to 4x 1.92TB 微米 7450 PRO固态硬盘, which we imagine as the most optimal implementation of FDP where all application data receives dedicated NAND space, so data does not get interleaved on the device 如图1所示.

Figure 1: Data layout without FDP (interleaved)

Figure 2: Data layout with FDP (interleaved)

 

Due to the optimizations of Aerospike, we expected to see a WA factor 关闭 to 1 when running a single instance of the application on its own dedicated storage device. This was confirmed by running YCSB workload A (50% read/50% update) until the drive was filled multiple times. In an ideal scenario, four namespaces on a large device would behave the same as four single devices. The layout of this scenario is seen in Figure 2.

Without FDP and with multiple workloads executing on the 7.68年结核病设备, the drive does not separate the NAND by namespace and has no way of determining which Aerospike data should be grouped together in context of the instances running. Interleaving means that the workload effectively becomes more random from a drive perspective, even though each individual workload is sequential, 如图1所示.  With this increase in randomness, we see a corresponding increase in WA to 1.84 for four instances co-located on a non-FDP device, up from 1.08 for a single instance on its own dedicated device, as seen in Figure 3.

Figure 3: Aerospike write amplification – FDP vs. 没有自由

 

While this is a basic experiment, it shows the potential benefits for FDP implementation in future devices. We can also see how some applications, which are designed to write sequentially as much as possible, would benefit from FDP when contending for the same drive resources.

1 看到 http://nvmexpress.org/wp-content/uploads/Hyperscale-Innovation-Flexible-Data-Placement-Mode-FDP.pdf for additional details provided in a presentation to NVMExpress by Chris Sabol (Google) and Ross Stenfort (Meta). 

Principal 存储 Solutions Engineer

约翰Mazzie

John is a Member of the Technical Staff in the Data Center Workload Engineering group in Austin, TX. He graduated in 2008 from West Virginia University with his MSEE with an emphasis in wireless communications. John has worked for Dell on their storage MD3 Series of storage arrays on both the development and sustaining side. John joined 微米 in 2016 where he has worked on Cassandra, MongoDB, 和Ceph, and other advanced storage workloads.