To cache or not to cache, that is the question
The first strategy has to do with using high speed (and expensive) volatile DRAM memory in order to buffer the write. This method is used in many hard disk drive RAID controllers as well. It means that the writes are captured into staging blocks and only written after the block is full or an algorithmically determined amount of time has passed. This saves time for many applications such as on-line transaction processing and streaming data input, such as video surveillance, but it does imply additional costs, not just for the volatile memory, but for a means to protect it. Protection is provided by an Uninterruptible Power Supply (UPS) for an entire system or data center, a battery for the local memory circuit or a ‘super capacitor’ which will keep the memory alive until it can be written to the non-volatile media (be it HDD or FLASH).
The second strategy gets more complex from an algorithm and provisioning standpoint, but has the advantages of cost savings and eliminates maintenance issues associated with UPS and battery systems. While all processes lie beneath the surface of the controller algorithm, and the details of the actually algorithm are closely guarded and often involved in patents, they all generally involving keeping spare areas erased and ready to write the ‘staging’ data into, and some sort of background clean-up algorithm, not unlike an HDD ‘defragmenter’ that goes through and frees the staged blocks that may only contain a fractional amount of new data. While this process may be slower than the buffering method in many application scenarios, since SSDs are already an order of magnitude faster than HDDs it is often very acceptable and has an additional advantage when employed within an overall wear-leveling and endurance management process.
The two strategies are exemplified by two appliance integrations of which we are very familiar. The WhipTail Technologies appliance uses DRAM buffering in an SSD-only array with a UPS built into its 1.5-, 3- or 6TB appliance. Atrato, on the other hand, uses SSDs as a FIFO cache and an algorithm that analyzes the application’s usage of the data to determine whether to finally place the data on SSD or HDD, both of which are available within the its storage system and can be built with varying capacities of each. WhipTail has the bandwidth advantage, but is expensive. Atrato has a cost advantage and total storage advantage as well. Both are positioned to take advantage better and faster SSD as coming on the market in 3.5-inch and 2.5-inch form factors.
The different strategies and performance results demand a common method of benchmarking, so we continue to encourage all contenders to join the Storage Performance Council benchmarks.–Jim Bagley
Leave a Reply


