Have you ever wondered what you could do with all of your high bandwidth, low latency RAM? Romex Software’s FancyCache has a suggestion for you: cache your drives.
Caching has been all the rage lately in the SSD world. If there isn’t a caching solution to your liking now, chances are their will be soon enough although such options are the industries attempts to marry the low cost per GB of HDDs with the speed of SSDs. Our review today of Romex FancyCache is going to be something just a bit different!
We started off with a headline of reaching an unheard of 13GB/s transfer speed and 765,000 IOPS and now we need to show you the way to get there. Our guess is that if you are reading this article, you’ve already bought into the solid state drive story and caching one SSD with another suits no purpose whatsoever. We need to cache it with something faster, something much faster and that only option seems to be through use of your systems RAM.
Faster DDR3 random access memory in an overclocked Sandy Bridge system can hit 20+ GB/s in bandwidth, and with infinitesimal access times. A quad-channel X79 motherboard destroys even those heady dual channel numbers. With that kind of speed on tap, imagine using that to speed up storage performance. Especially with the ongoing nosedive in RAM prices, RAM is cheaper and more plentiful than ever.
RAM might be caching your storage right now, to a small degree, and it helps high end RAID cards develop stellar performance. Hopefully, we can show you that FancyCache is unique in its configuration options and end results. There are some drawbacks and caveats, but one thing is for sure; using RAM to cache your SSD can result in some insane, cartoon-like performance numbers.
HOW IT WORKS
FancyCache operates in a similar manner to other caching solutions. Working at a low level, it works in between your OS (Windows) and your disk(s). At this time, there is one version for single disks and another for arrays, but it works the same for both.
If Windows asks for data from the cached disk, FancyCache first sees if the data is already cached in RAM. If it is, the request gets serviced at warp speed. If it isn’t, it gets serviced off the disk and placed into the RAM cache for later. As the data within the cache increases, it is eventually necessary to eject some of the lesser used or older data.
Of course, one vital difference between RAM and other SSD-based caching solutions is RAM is volatile. When the system gets powered off, a traditional SSD cache will still be there when the system gets restarted. Obviously, RAM-based cache is going to disappear after every power-off. Another FancyCache feature is a Level 2 cache, which can leverage SSDs and USB/SD/CF flash devices. Such a discussion is best left for another day, but the feature does exist. In fact, it could also be used to create a SSD/HDD hybrid of sorts, but again, we’re more interested in the RAM caching today.
Download and install the appropriate version of FancyCache, then reboot. When you do, you can start the simple configuration progress.
This is the main window of FancyCache. It’s fairly simple to get it up and running. First, select the drive you’d like to start caching. Decide how much RAM you would like to use and the block size — block size works in a similar way to stripe size in RAID applications. Lower numbers can increase small file performance, like 4K accesses, but require more CPU overhead. Larger block sizes can help with larger files and typically utilize fewer CPU cycles.
You can select a different caching strategy, but let’s leave it at Read/Write. Now, enable Defer Write and leave it at the default 10 seconds. Deferred writing enables the cache to accumulate data before being committed (flushed) to disk. This can be beneficial for several reasons, but any writes to the same address on the disk will get eliminated, so this will help reduce wear and tear on the SSD in some instances. When you have the desired settings, hit Start Caching and it’s active.
This article talks about making a hybrid drive as an option. FancyCache requires an “L1” (Memory) amount minimum of 128 MB, there are no “L2” only caches (which would be an SSD). Also, the SSD cache is not persistent either – there is no mechanism in place to recover the data from a power failure or blue screen. Hopefully this hybrid drive option will be added later.
Additionally, there are not only data loss issues but data corruption issues when using block based lazy writes. FancyCache’s main competition has had many issues of drives slowly becoming more and more corrupt over time. FancyCache calls out specific scenarios when you should use their product – in general if the windows read caching solution is insufficient for your program. The write caching doesn’t even come into play – only if you have self error checking programs and data (or are dealing with a scenario where data corruption only adds a bit of static) is it an acceptable risk.
Please compare with other similar solutions eg. SuperCache by Superspeed.
Wow, just wow! I have a 3930K that can hit 5.1Ghz, though it takes 1.5v so I typically keep my baby around 4.6Ghz (1.38v, under water btw), and is using 16GB of DDR3-2133 9-11-10-28 (G.Skill Ripjaws Z) running at 2400 10-11-11-30, with primary storage being a Samsung 830 256GB SSD….
I am going to try this out this week, and see if I can’t break 1mil IOPS in both read and write! 50% more cores, 3x as many threads, AND a higher clock speed as well as 2x as many memory channels, faster memory…. I am pretty pumped to see what this can do!
Shouldn’t the operating system do this automatically? I know Linux does, and I’d say Windows should have the same feature.
The main difference (besides the difference in the cache algorithm) is the ability to delay writes to the hard disk for seconds or even longer. I set my write back to 2 minutes on the drive I use to develop software (since all code gets checked into svn there is limited danger). The default cache in windows does not allow you to do that because it is potentially dangerous.