write amplification factor (WAF)
What is write amplification factor (WAF)?
Write amplification factor (WAF) is a numerical value that represents the amount of data a solid-state drive (SSD) controller writes in relation to the amount of data that the host's flash controller writes. To calculate the numerical value, divide the amount of data written to flash media by the amount of data written by the host.
For example, if an SSD writes 2 gigabytes (GB) of data to disk and the host writes 2 GB, the WAF is 1. A WAF of 1 indicates there is no write amplification. However, if the SSD writes 8 GB of data and the host writes 2 GB, then the WAF is 4. In that case, the SSD wrote four times the amount of data to disk than was written by the host.
Flash SSDs are susceptible to write amplification because of the way they write and erase data.
Why is WAF important?
The WAF is important because it measures the degree of write amplification in an SSD. Write amplification occurs when a NAND flash-based SSD writes more data to disk than the host submits.
A high WAF can negatively affect storage performance and durability. Ideally, the WAF should be as close to 1 as possible. However, it is difficult to sustain this rate over time. As the amount of stored data increases, write amplification increases. This is because additional data management is required to accommodate new and updated data and to move data around.
File sizes and workload types also affect the WAF.
How does write amplification work?
Unlike a hard-disk drive, SSDs divide storage into blocks and then divide the blocks into pages, which contain the individual cells. Data is read and written at the page level, but it can only be erased at the block level.
In addition, data cannot be overwritten in flash SSDs. If data is updated, the original data is marked as invalid or stale, and the updated data is written to empty pages. New data is also written to empty pages.
An empty page is one that has never stored data or one that has had its data erased. Pages with stale data must be erased before they can be used again. But they can only be erased at the block level, so before a block can be erased, all pages that contain good, usable data must be moved to another block.
WAF and P/E cycles
In an effort to optimize storage, an SSD is continually moving good data to new blocks and erasing blocks with old data. These tasks result in many extra program/erase cycles (P/E cycles) throughout a drive's lifetime. Additional P/E cycles lead to further write amplification because more data is written to the SSD than the host provides.
A device's flash controller manages the P/E cycles. The controller uses a logical-to-physical mapping system known as logical block addressing (LBA) to manage data. When data is rewritten, the flash controller writes the new data to a different location and then updates the LBA with the new location. Invalid data continues to reside in the old location until it is erased.
All these extra writes result in a higher WAF. Too much write amplification can inhibit performance and shorten the drive's life. A flash drive can support only a set number of P/E cycles before the storage cells start to wear out and become unusable -- ultimately shortening the life of the drive. Because each cell can handle only a certain number of P/E cycles before starting to have reliability issues, a higher WAF often indicates that an SSD is approaching its end of life.
How to prevent the negative effects of WAF
Limiting the number of writes to an SSD will improve performance and extend its life. There are several ways to do this.
- Overprovisioning. Extra flash is added to the drive the user can't access. Overprovisioning facilitates data management and extends SSD endurance.
- Error correction code. Bit errors are corrected with error correction code, extending the life of the drive.
- Wear leveling. Wear leveling distributes P/E cycles across all blocks of the drive to prevent overuse of any one block.
- Trim command. Old data is deleted faster with SSD Trim command, consolidating free space on a drive and enabling garbage collection at the page level rather than the block level.
- Intelligent firmware. The program that runs an SSD and can manage the flash inside the drive to extend its life.
Learn more about the key factors that affect NAND flash memory endurance.