A Linux engineer at STEC Inc compared the performance of EnhanceIO, BCache, and DM-Cache. A 100GB HDD was used with a 20GB SSD providing write-through / write-back cache. For those out of the look on these different caching methods:
- EnhanceIO is a new SSD caching method for Linux and was merged for Linux 3.9 staging. For those unfamiliar with EnhanceIO, read those aforelinked articles.
- BCache is another caching method and the HDD/SSD caching method was merged for Linux 3.10. Again, click those articles for more information.
- Lastly, DM-Cache is the device mapper cache and aims to improve the performance of block devices by dynamically migrating data to faster/smaller devices (SSDs).
In terms of the company's results between EnhanceIO, BCache, and DM-Cache, on the Linux kernel mailing list are their full results.
The summary? "We found that EnhanceIO provides better throughput on zipf workload (with theta=1.2) in comparison to bcache and dm-cache for write through caches. However, for write back caches, we found that dm-cache had best throughput followed by EnhanceIO and then bcache. Dm-cache commits on-disk metadata every time a REQ_SYNC or REQ_FUA bio is written. If no such requests are made then it commits metadata once every second. If power is lost, it may lose some recent writes. However, EnhanceIO and bcache do not acknowledge IO completion until both IO and metadata hits the SSD. Hence, EnhanceIO and bcache provide higher data integrity at a cost of performance."