Storage-Side Volatile Cache Extension for Database I/O Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In clustered database environments, the storage-side volatile memory cache often has a smaller capacity than the database-side cache, leading to cache misses and inefficiencies in I/O operations, as it cannot store duplicate data blocks, resulting in slower performance due to reliance on higher-latency persistent storage.

Innovation Solution

Implementing an exclusive storage-side volatile memory cache that operates as an extension of the database-side cache, evicting data blocks from the database-side cache to store them in the storage-side volatile cache, maintaining an exclusive relationship and allowing for faster I/O operations by utilizing lower-latency volatile memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the storage-side volatile memory cache capacity is increased to match the database-side cache capacity, then cache hit rate improves, but system cost and memory resource requirements worsen

Engineering Contradiction:
Improvecache hit rateVSAvoidmemory capacity requirement
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent introduces a hierarchical cache architecture that adds a new dimension to the caching system. Instead of a single flat cache, it creates multiple cache layers (storage-side volatile cache, storage-side persistent cache, and database-side cache) organized in tiers. This dimensional transformation allows the system to achieve high cache hit rates through the volatile cache layer without requiring the entire cache capacity to be volatile, thus resolving the contradiction between reliability and resource requirements.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If the storage-side volatile memory cache capacity is smaller than the database-side cache capacity, then system cost reduces, but cache miss rate increases leading to slower I/O operations

Engineering Contradiction:
ImproveI/O operation speedVSAvoidcache miss penalty
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies local quality by making different parts of the caching system serve different purposes. The storage-side volatile cache is optimized for speed with smaller capacity, while the storage-side persistent cache provides larger capacity with higher latency. This local optimization allows each cache layer to excel at its specific function, resolving the contradiction between I/O speed and cache miss penalty by ensuring that frequently accessed data is served from the fast volatile cache while less frequently accessed data resides in the larger persistent cache.

Inventive Principle:
Principle #3Local quality

3Reliability

If duplicate data blocks are stored in both database-side and storage-side caches, then cache hit rate improves, but memory utilization efficiency worsens

Engineering Contradiction:
Improvecache availabilityVSAvoiddata redundancy
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the database-side cache and storage-side volatile cache into a unified hierarchical caching system. Instead of operating as separate, potentially redundant caches, they are integrated into a coordinated architecture where the storage-side volatile cache acts as an extension of the database-side cache. This merging eliminates data redundancy while maintaining cache availability, as the hierarchical structure ensures that data is stored once and accessed through the appropriate cache layer, resolving the contradiction between reliability and complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11327887B2Server-side extension of client-side caches
Publication Date: 2022.05.10 ORACLE INT CORP
  • US11327887B2 patent drawing
  • US11327887B2 patent drawing
  • US11327887B2 patent drawing

AI summary

Techniques related to a server-side extension of client-side caches are provided. A storage server computer receives, from a database server computer, an eviction notification indicating that a data block has been evicted from the database server computer's cache. The storage server computer comprises a memory hierarchy including a volatile cache and a persistent cache. Upon receiving the eviction notification, the storage server computer retrieves the data block from the persistent cache and stores it in the volatile cache. When the storage server computer receives, from the database server computer, a request for the data block, the storage server computer retrieves the data block from the volatile cache. Furthermore, the storage server computer sends the data block to the database server computer, thereby causing the data block to be stored in the database server computer's cache. Still further, the storage server computer evicts the data block from the volatile cache.