RAM Caching Vs. SSDs: A Startup's Gamble
July 08, 2013
One of the things I enjoy most about attending Tech Field Day events is when innovative companies are brave enough to make their first public appearances in front of an obstreperous group of bloggers and on live Internet video. The latest to run the TFD gauntlet is Infinio. Its Infinio Accelerator bucks the trend of using SSDs to accelerate NFS storage performance for vSphere hosts, and instead uses server RAM as a cache.
RAM caching isn't a new idea. I remember back in the '80s my friend John P. Davis promoted Multisoft's Super PC-Kwik caching software for MS-DOS. Because the disk drives of the day were pretty slow, an ST-412 spun at 3600RPM and had an average seek time of 85ms, and people still used floppy disks for real work, even a small RAM cache made a big difference in system performance.
- Forrester Study: The Total Economic Impact of VMware View
- HP Newsletter with Gartner Research: Maximizing Your Infrastructure through Virtualization
I'm not a big fan of RAM caches for applications like database servers. First is the cost of RAM. If you can get enough RAM into your server for the application and cache using 16-Gbyte DIMMs, your incremental cost will be about $13 per gigabyte; upgrade to 32-Gbyte DIMMs, and the price about doubles to $25 per gigabyte. By contrast, an Intel 910 PCIe SSD will set you back just $5 per gigabyte.
Second, and more significantly, most database engines use RAM to cache data themselves. I assume that because the database engine has more information about the data, it can make better decisions about what data to cache than a simple disk caching solution. The database engine can easily choose to cache indexes and not cache log file writes, while a basic write-through cache wouldn't be able to tell these two types of data apart.
[Worried about SSD failures? It may not be as bad as you think. Howard Marks explains why in "SSDs and the Write Endurance Boogeyman."]
However, things are very different in a virtualized environment, where each VM claims, and holds, as much memory as it can. A common RAM cache that can dynamically allocate cache space to VMs as they make demands for storage access makes a lot more sense here. That's especially true if the caching engine deduplicates the cached data so common data, like common Windows DLLs, are only stored in the cache once.
Infinio Accelerator not only deduplicates data in each server's cache, but treats the cache memory across all the servers running Accelerator in a cluster as a single cache pool and a single deduplication realm.
Infinio Accelerator installs as a virtual caching appliance in each accelerated host and a single management VM that presents the dashboard to manage the Accelerator instances in a cluster. The caching VM could, under heavy load, consume as much as two vCPUs and, by default, claim 1/16th of the server's RAM (a minimum 8 Gbytes) for its cache. The administrator can then assign the NFS datastores (unfortunately only NFS datastores) to be accelerated. Once Accelerator is running, it acts as a write-through cache.
One big advantage Infinio has over its flash competitors is that the company makes it especially easy to sample the product. Installing a typical SSD caching product will first require the installation of a new SSD in the server and then some fiddling with data store configurations to introduce the cache in the data stream. This generally means administrators have to vMotion their workloads off a test server, set up the SSD and cache, and then vMotion them back.
To test Infinio Accelerator, an admin simply has to download the evaluation software and install it (the software is free for 30 days), and the Infinio VM will be created. Because Infinio uses some very clever networking tricks to dynamically intercept NFS traffic it wants to cache at the ESX vmKernel/vSwitch, it can insert the caching engine in the stream without a reboot while VMs are still using the storage.
Infinio Accelerator is currently in limited beta test; a public beta (downloadable from Infinio's home page) is promised for release at VMworld. Real production software should be available later this year. Infinio is also promising SSD support, as a Level 2 cache, for a future release.
I'm impressed with Infinio Accelerator, and looking forward to getting it into the lab soon, but I'm afraid its NFS-only support might limit its potential market. The company hinted at future block storage and Hyper-V support in the TFD presentation, but I'm not holding my breath.
For the full, or almost full, Tech Field Day experience, you can watch the Infinio presentations, and my snarky comments, here.
Does Infinio's approach make sense to you? If you're planning to invest in SSDs for storage acceleration, would you consider RAM caching instead? Use the comment box below and let me know what you think.
Disclaimer: Infinio was a sponsor of Tech Field Day 9. Gestalt IT, the organizer of the Tech Field day events, pays the travel expenses of TFD delegates, including this intrepid reporter.