Content-Based Cache Failover for Virtual Hosts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Content-based read caches (CBRC) in virtual computing instances are not reusable in case of a host computer failure, leading to performance degradation as the cache built over time is lost, disrupting workload continuity.
Innovation Solution
A method to populate a fail-over cache by determining if the secondary host computer has a CBRC, and if not, copying the cache from the failed host, or merging caches if both hosts have CBRC enabled, using priority, deduplication, frequency, or eviction strategies to maintain cache size within limits.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a host computer system fails, then the CBRC cache cannot be reused, but it is desirable to reuse the cache to maintain performance
Solution Approach 1:
The patent copies the CBRC cache contents from the failed host computer system to the failover host computer system. This allows the cached data to be preserved and reused, maintaining workload performance after host failure. The copying mechanism ensures that the failover host can continue serving cached data without losing the performance benefits accumulated during normal operation.
Solution Approach 2:
The patent performs preliminary actions by detecting host failure and initiating cache copying before the failover host needs to serve requests. This proactive approach ensures that the cache is already populated and ready when the failover occurs, minimizing performance disruption and maintaining continuity of service.
2Reliability
If the second host computer does not have a CBRC, then the cache can be copied, but memory resources are consumed
Solution Approach 1:
The patent changes the state of the failover host by detecting whether a CBRC is enabled and dynamically adjusting cache management actions. When no CBRC exists, the system copies cache contents; when a CBRC exists, the system merges caches. This parameter-based decision-making optimizes memory resource usage while ensuring cache availability is maintained.
Solution Approach 2:
When the failover host already has a CBRC enabled, the patent merges the cached data from the failed host with the existing cache on the failover host. This merging approach consolidates duplicate data and optimizes memory utilization by combining both cache contents into a unified structure, rather than simply copying entire cache contents.
3Reliability
If both hosts have CBRC enabled, then caches can be merged, but cache size management becomes complex
Solution Approach 1:
The patent segments the cache merging process into distinct phases: identifying cached data blocks from both hosts, comparing block identifiers to detect duplicates, and selectively copying only non-duplicate blocks. This segmentation simplifies the overall complexity by breaking down the merging operation into manageable, systematic steps that can be executed efficiently.
Solution Approach 2:
The patent employs feedback mechanisms by monitoring cache size against predefined thresholds during the merging process. When the combined cache exceeds the threshold, the system triggers eviction of less frequently accessed blocks. This feedback-based size management automatically maintains cache efficiency without requiring complex manual intervention, balancing redundancy with manageable complexity.
Data Source
AI summary
Methods and systems are disclosed for populating a fail-over cache. When host computer systems in a system each have a content based read cache, the methods and system provide several functions applied in different orders for determining blocks that are to be included in the fail-over cache. Each function attempts a different strategy for combining the contents of the caches of each host computer system into the fail-over cache. If any strategy is successful, then the fail-over cache is placed into service. If all of the strategies fail, then an eviction strategy is employed in which blocks are evicted from each cache until the combination of caches meets a requirement of the fail-over cache, which, in one embodiment, is the size of the fail-over cache.


