Universal Cache Management for Dynamic Memory Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenancy deployments on Symmetric Multi-Processor (SMP) hosts, memory over-provisioning limits clustered scalability as administrators must shut down less busy database instances to reallocate memory to busy ones, leading to inefficiencies and reduced availability.

Innovation Solution

Implementing a universal cache management system where each data-processing instance has a private cache and a shared common cache in volatile memory, allowing clean data items to be evicted from private caches and stored in a common cache, enabling dynamic memory allocation without instance shutdowns and improving scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If all available physical memory is configured among multiple database instances on an SMP host, then memory utilization is improved, but the ability to dynamically allocate memory to instances experiencing heavier workload deteriorates

Engineering Contradiction:
Improvememory utilizationVSAvoiddynamic memory allocation
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent merges multiple private caches into a unified shared cache structure. Each database instance maintains a private cache for exclusive access, while also sharing a common cache among all instances. This combination allows memory to be dynamically allocated to instances with heavier workloads by utilizing the shared cache space, thereby resolving the contradiction between high memory utilization and dynamic adaptability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared cache serves multiple functions: it acts as additional memory for instances experiencing heavy workloads, provides a pooling mechanism for memory reuse, and enables dynamic resource allocation across multiple database instances. This multi-functional design allows the same memory resource to serve different purposes for different instances, improving both utilization and adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Quantity of substance

If administrators shut down less busy database instances to reallocate memory to busy ones, then memory over-provisioning is reduced, but system availability and productivity deteriorate

Engineering Contradiction:
Improvememory over-provisioningVSAvoidsystem availability
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system implements automatic memory management where the shared cache dynamically allocates memory to database instances based on their workload demands without requiring administrator intervention. The cache management system automatically identifies instances needing additional memory and allocates from the shared pool, eliminating the need to shut down instances for memory reallocation while maintaining high availability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces dynamic memory allocation through the shared cache structure. Memory allocation is no longer static but changes automatically based on real-time workload conditions. Instances can dynamically access additional memory from the shared cache when needed, and the system adapts to changing conditions without requiring administrative re-provisioning or instance shutdowns.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If a shared cache is introduced to enable dynamic memory allocation, then adaptability and scalability are improved, but device complexity increases

Engineering Contradiction:
Improvedynamic memory allocationVSAvoidcache management structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache memory is segmented into private cache portions for each database instance and a shared cache portion accessible by all instances. This segmentation provides clear boundaries and ownership while enabling controlled sharing. The modular structure simplifies management by separating instance-specific data from shared resources, reducing the complexity burden of the shared cache implementation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11755481B2Universal cache management system
Publication Date: 2023.09.12 ORACLE INT CORP
  • US11755481B2 patent drawing
  • US11755481B2 patent drawing
  • US11755481B2 patent drawing

AI summary

Techniques for universal cache management are described. In an example embodiment, a plurality of caches are allocated, in volatile memory of a computing device, to a plurality of data-processing instances, where each one of the plurality of caches is exclusively allocated to a separate one of the plurality of data-processing instances. A common cache is allocated in the volatile memory of the computing device, where the common cache is shared by the plurality of data-processing instances. Each instance of the plurality of data-processing instances is configured to: identify a data block in the particular cache allocated to that instance, where the data block has not been changed since the data block was last persistently written to one or more storage devices; cause the data block to be stored in the common cache; and remove the data block from the particular cache. Data blocks in the common cache are maintained without being persistently written to the one or more storage devices.