Overcoming the Write Amplification Problem with NVM Express® Flexible Data Placement

Blog

By: Amber Huffman and Chris Sabol, Google

The expanded use of solid-state drives (SSDs) has enhanced performance and quality of service throughout the hyperscale data center and cloud virtualization markets. However, various complications restrict SSDs from reaching optimal performance — including Write Amplification (WA), which diminishes overall system performance and increases media wear on the device. But what exactly is WA and why is it important? WA is the additional data written to the media when the host sends data to the device. These incidental writes slow the overall architecture while taking up unnecessary space on the device. The Write Amplification Factor (WAF) is the ratio of extra data written to the media during this process compared to the amount of data the host originally requested to be written. For example, if a system has a WAF of two, for every 4KB that the host writes ultimately 8KB is written to the media. This extra data creates a systemic issue especially when considering larger writes.

Historically, the method of reducing the WAF has been overprovisioning, or the process of maintaining extra NAND within the system to handle these extra writes. Overprovisioning successfully reduces the garbage collection demand required, as it establishes an additional place to write this extra data. However, it creates an additional issue where customers are forced to purchase and maintain unnecessary and oftentimes unused NAND, wasting resources and power while incurring additional costs. Instead of overprovisioning, the system can share information directly with the host on how best to place data on a device, helping to both overcome WA and directly boost system performance.

Introducing NVM Express® Flexible Data Placement

Write amplification occurs due to the disconnect between the host and the device, as the host does not have enough information to understand the physical layout of the device itself and does not know about data that tends to be used together. The NVM Express (NVMe®) Flexible Data Placement (FDP) specification overcomes the WA problem by enabling the host to provide hints to the device when these write requests occur. These hints share enough information with the host, both about the device and the data itself, to establish the optimal physical layout for the device by specifically placing data that tends to be used together in physical proximity. This process reduces both garbage collection and WA while also removing the need for overprovisioning.

Important Benefits for Hyperscale Data Centers and Cloud Virtualization Markets

Through collaboration between NVM Express member companies, we were able to develop this important, feature-rich and backward-compatible solution. Backward-compatibility is necessary as, if the host and application(s) support FDP, then the benefits of both reduced write amplification and better performance are realized. FDP defines hints that the host specifies based on the logical block addresses being written which the device then uses for optimal physical media placement. FDP also provides configuration information to the host that allows it to understand the physical layout of the device, including the number of logical blocks in each physical unit that is garbage collected. This information enables the host to provide the appropriate hints and achieve a WAF of nearly 1.0.

Key Industry Use Cases

FDP is vital for the hyperscale and enterprise data center markets as it not only boosts performance by maintaining the optimal physical layout of data but also reduces write amplification and garbage collection needs. Additionally, in any context where there are multiple users of a single device, such as in virtual machines, there will be significant benefits to using an NVMe device with FDP, including both improved quality of service and longer-lasting devices.

Learn More

For more information on NVMe FDP: