Compute Replica Cache Priming Using Aggregate Page Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database management systems face performance degradation during failover events due to the need for fetching data from disk or remote sources when secondary compute replicas take over as primary replicas, as their caches are not adequately primed with frequently accessed pages.
Innovation Solution
Implement a system where primary and secondary compute replicas maintain page statistics, aggregate them across replicas, and use exponential smoothing to estimate page access frequencies, iteratively preloading frequently accessed pages into secondary replicas' caches based on these statistics to minimize disk access during failover.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If secondary compute replicas do not maintain their own caches, then device complexity is reduced, but performance degrades during failover due to disk access delays
Solution Approach 1:
The system performs preliminary action by having secondary compute replicas continuously preload frequently accessed pages into their caches before failover events occur. The page server identifies frequently accessed pages based on aggregate access patterns and proactively loads them into secondary replicas' caches, so that when failover happens, the secondary replica already has the needed data and can immediately process requests without disk access delays.
2Measurement precision
If each compute replica maintains separate page statistics, then measurement precision is improved, but loss of information increases due to redundant data storage
Solution Approach 1:
The system merges the page statistics from multiple compute replicas by having them send their individual statistics to a central page server. The page server then aggregates these statistics to calculate aggregate access patterns across all replicas. This merging approach allows the system to identify frequently accessed pages based on global access patterns rather than local patterns, improving the accuracy of cache priming decisions while reducing redundant data storage at each replica.
3Loss of time
If caches are not preloaded with frequently accessed pages, then device complexity is reduced, but loss of time increases during failover due to disk access
Solution Approach 1:
The system implements feedback by continuously monitoring page access patterns at compute replicas and using this information to dynamically update the list of frequently accessed pages. The page server receives access statistics from replicas, processes them to identify hot pages, and sends updated preload recommendations back to replicas. This feedback loop ensures that the cache priming strategy adapts to changing access patterns and continuously optimizes failover performance.
Data Source
AI summary
Systems, methods, apparatuses, and computer program products are disclosed for caching pages in a compute replica of a set of compute replicas. Page statistics associated with requests to read or write pages are maintained at a first compute replica of a set of compute replicas. A subset of the page statistics associated with pages served by a page server are provided to the page server. The first compute replica receives, from the page server, a set of aggregate page statistics associated with pages served by the page server, the aggregate page statistics including aggregate page access frequencies of the pages by the set of compute replicas. The first compute replica determines, based on the set of aggregate page statistics, frequently accessed pages that are missing from a cache of the first compute replica, and obtains, from the page server, the missing pages.


