Key Features


The GridIron TurboCharger attaches to a SAN switch and is transparent (invisible) to the servers and storage arrays by acting as a Fibre Channel (FC) Proxy. It is configured so that servers believe they are connecting directly to the storage arrays and storage arrays believe they are receiving requests directly from the servers. In this way the GridIron TurboCharger requires no change whatsoever to the existing servers, storage arrays or the software running on them.

The TurboCharger uses virtual initiators and virtual targets as proxies for real servers and real storage arrays to seamlessly bridge communications between them. The TurboCharger uses a virtual initiator to represent the real server when accessing the storage array(s). Similarly, the TurboCharger uses a virtual target to represent the real storage array controller port when communicating with the server(s). The real
server thinks that it is talking to the real storage array and vice versa.

Learning Access Patterns

The GridIron TurboCharger has a hardware processor that analyzes every storage request in real time and gathers statistical information about the requested data -

How frequently is it requested?
When is it requested?
What other data is in the cache when it is requested?
What is the ratio of reads to writes?
How large are the accesses?

This data is used to characterize all of the data in the data sets that can be accessed through the TurboCharger.

The data is then structured into a Bayesian Tree, stored as long term meta-data, and used to find clusters of data that behave in similar ways and data that is likely to be needed given the state of the system. In this way the TurboCharger learns the access patterns of the data and creates a data model.

Performance Critical Data

Through the data model the TurboCharger has a real time understanding of all the data patterns. That understanding is used to place data into high performance DRAM or Flash tiers along with timers and parameters needed to manage the data presence in the cache.

Most cache approaches are based on data behavior for just the data being accessed and then only during the current access. The TurboCharger uses many days of history of the entire data set to decide how to best manage each data access.

Most caches focus on loading the most frequently accessed data. While that may be useful, GridIron uses a much more powerful concept – load data into cache that will most improve the performance of the appication.

The TurboCharger determines importance by measuring how much the aggregate I/O bandwidth requested by the application increases as a result of reducing the access time. If improving the access time doesn’t increase the rate at which the application requests data then that data doesn’t need to be a high performance tier. On the other hand individual data such as indirection pointers are often the most critical items to application performance. They are bottlenecks to loading other data and thus may be very critical even though they are accessed infrequently.

The historical importance meta-data is used in a feedback loop to ensure that the most importance data is retained in the caches each time it could be used.

Microsecond Latencies

To ensure that access times are as short as possible the mapping of all data accesses are done in custom hardware. The result is that data accesses to the TurboCharger through the SAN are typically satisfied in 10s of microseconds. This is dramatically shorter than the access times for DRAM or Flash caches that are managed by array controllers where the shortest access times are typically at least 1000 microseconds.


To ensure availability and data integrity all writes to the data sets that are covered by the TurboCharger are written through to the storage arrays before the write is acknowledged to the server. In this way the copy of the data in the storage system is always consistent and up to date. The TurboCharger effectively serves the read requests and the storage array services the write requests. Because the read requests are offloaded from the storage array the write performance of the array is significantly improved.

In the unlikely event of a TurboCharger failure, the failed unit can be bypassed through simple zoning changes in the Fibre Channel fabric and the servers will then operate directly against the data in the storage array without requiring any special recovery process.