Persistent Cache Invalidation via Storage Filter Driver

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Server-side cached data becomes inconsistent with the backing store during administrative actions or fault events, leading to a warm cache being purged and requiring re-warming, which is undesirable for performance.

Innovation Solution

Implementing a persistent cache system that uses SSDs for fast access and an in-memory data structure to maintain coherency by invalidating cache entries in a write-thru manner, with a storage filter driver tracking write requests to ensure cache entries are invalidated before the cache is operational, thus maintaining consistency across administrative actions and fault events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the cache is purged after administrative actions or fault events to ensure data coherency, then data consistency between cache and backing store is improved, but I/O performance deteriorates due to cache re-warming time

Engineering Contradiction:
Improvedata consistencyVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary invalidation of cache entries before the administrative action or fault event occurs. By proactively invalidating cache entries that are about to become inconsistent, the system prevents coherency issues rather than reacting to them afterward, thus avoiding cache purge and re-warming while maintaining data consistency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where the storage filter driver monitors write requests to the backing store and provides feedback about which cache entries need to be invalidated. This feedback loop ensures that cache invalidation occurs precisely when needed to maintain coherency without unnecessary cache purges, thereby preserving I/O performance while ensuring data consistency.

Inventive Principle:
Principle #23Feedback

2Productivity

If the cache is maintained warm across fault events to preserve I/O performance, then productivity is improved, but data coherency between cache and backing store deteriorates

Engineering Contradiction:
ImproveI/O performanceVSAvoiddata coherency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system extracts the invalidation information from the write requests and stores it separately in an in-memory data structure. This separation allows the cache to remain warm while the invalidation metadata is preserved independently, enabling selective invalidation of only the affected cache entries rather than purging the entire cache, thus maintaining both performance and coherency.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The storage filter driver acts as an intermediary between the application/write requests and the cache system. It intercepts write requests, determines which cache entries need invalidation, and manages the invalidation process without requiring the entire cache to be purged. This intermediary role allows the cache to remain warm while ensuring coherency through targeted invalidation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If invalidation information is stored in-memory only, then device complexity is reduced, but reliability deteriorates due to potential loss during server restarts

Engineering Contradiction:
Improvestorage system complexityVSAvoidinvalidation information durability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system merges the in-memory invalidation data structure with the persistent cache storage on SSD. By combining volatile in-memory storage with non-volatile SSD storage, the system achieves both the simplicity and speed of in-memory operations and the durability of persistent storage, ensuring invalidation information survives server restarts while maintaining system simplicity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system changes the persistence parameter of the invalidation information by writing it to SSD storage in addition to keeping it in memory. This parameter change from purely volatile to partially persistent storage ensures the invalidation information survives faults and restarts while maintaining the operational simplicity of the original in-memory approach.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9514054B2Method to persistent invalidation to ensure cache durability
Publication Date: 2016.12.06 NETAPP INC
  • US9514054B2 patent drawing
  • US9514054B2 patent drawing
  • US9514054B2 patent drawing

AI summary

A method and system of persistent cache invalidation ensures cache durability. A storage filter driver of a storage input/output (I/O) stack of a server may be used to capture (i.e., track) write requests made to storage devices prior to the persistent cache becoming operational. Entries in the cache having overlapping address ranges with the tracked write requests may be invalidated before the cache is deemed operational. In this manner, the cache remains consistent with the backing store across the administrative actions or failure event (albeit with less valid entries). Notably, the filter driver tracks (i.e., captures) metadata of the write request (i.e., address range and size of the request) to support invalidation of matching cache entries. As such, the filter driver need not store (record) data associated with the write request.