In one of my previous posts in this blog I covered the different types of snapshots and their effect on storage performance. Basically, snapshots fall into two categories:
- Metadata based snapshots which have no write penalty but extract a read penalty due to the sequential read after random write (SRaRW) issue.
- Reserve LUN Pool (RLP) based snapshots which have no read penalty but extract a write penalty due to the Copy on First Write (CoFW) issue.
It is noteworthy that NetApp is well known for its metadata based snapshots using the WAFL file system, and EMC is well known as being a leader in the RPL based snapshots space.
I have recently learned that EMC has now largely solved the CoFW performance penalty, using a new feature called Asynchronous Copy on First Write (ACoFW). This means that EMC snapshot technology is now ideal for the IT professional who wants great write performance combined with great read performance.
ACoFW works like this:
- The storage array marks a write track as "versioned write pending", and accepts it without a CoFW penalty to the host.
- When the storage array's processor proceeds to write this track the disk, it notices the flag and performs the CoFW in the background before writing the new data to the disk.
This still creates extra disk I/O on the array, but for the vast majority of database applications, it also means that a snap or a
clone does not enforce any write performance penalty.
My friends on the EMC SPEED site (for performance gurus only) have shown me the data: ACoFW dramatically reduces the write performance penalty for database applications using snapshots.
As usually, there is no free lunch. If the CoFW write
activity on the array exceeds a threshold, the system will start using synchronous (i.e. old-fashioned) CoFW to better manage the
pending writes. Thus, you need to manage the workload in such as way that there is excess capacity on the storage array to enable this performance benefit.
ACoFW is currently available on EMC Symmetrix arrays. I am investigating the status of this feature on other EMC arrays, and will report back on this blog as I learn more.