Storage systems generally utilize large fast memories for caching data, so as to accelerate performance of I/O operations, e.g., shorten data access time and reduce latency of I/O operations. A cache memory stores data that is likely to be accessed, such as: most frequently accessed data, most recently accessed data, and data assumed to be accessed according to access patterns detected by prefetch algorithms.
SSD (solid-state drive) is a flash based device that is often used for caching data, due to its characteristics allowing fast access and large storage capacity.
Being a device that is separate from the controlling processor, the controlling processor may lose connection with the SSD, or the SSD itself may be subject to failures.
Though the loss of cached data, upon SSD failure, may not be considered as a critical failure, since the data is not really lost and can be read from the permanent devices—losing the option of fast access to the most frequency accessed data can dramatically degrade the I/O performance.
There is a need to maintain the system performance in the event of a cache memory failure or upon losing connection to the cache memory.