A commercial company has opened up their Linux driver that is based upon their SSD (Solid-State Drive) caching software product. This code is designed to use SSDs as cache devices for traditional rotating hard drives. This new SSD caching driver is based upon Facebook's Flashcache
Flashcache is the project Facebook open-sourced in 2011 that is a kernel-level solution for providing a block cache for Linux that supports multiple caching models. Flashcache can be used to accelerate reads and writes from slower rotational media by caching the data on a solid-state drive.
Based upon Flashcache, STEC Inc has opened up their EnhanceIO SSD caching software for Linux. EnhanceIO uses SSDs as cache devices for traditional HDDs and works with any block device whether it be an actual physical device, a disk partition, a RAID-ed DAS device, SAN volumes, and device mapper volumes.
EnhanceIO supports caching modes of read-only, write-through, and write-back. The cache replacement policies are random, FIFO, and LRU.
STEC Inc didn't simply make a couple of changes to Flashcache and call it something new, but rather they have made some significant and original improvements. Over Flashcache, EnhanceIO adds a new write-back enhance that's designed from scratch, transparent cache support not using the Linux device mapper, large I/O support, a smaller memory footprint, supports loadable replacement policies, optimal alignment of data blocks on SSDs, improved device failure handling, and code optimizations.
The EnhanceIO code was originally opened in late December while on Saturday the work was just announced on the Linux kernel mailing list
. "STEC is happy to announce hosting of our EnhanceIO SSD caching software on github. We would like to invite kernel hackers to try it. We'll appreciate your valuable feedback to help us improve it to the standards of Linux kernel source code. We hope to eventually submit it for a possible inclusion in Linux kernel."
The GPL-licensed code to EnhanceIO can be found on GitHub