Distributed In-Memory Cache for Database Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional relational database management systems (RDBMS) face limitations in performance due to the need for translating application data representations into relational formats, caching databases on disk, and requiring multiple software and network protocol layers, which results in bottlenecks during data updates and commits.

Innovation Solution

A memory-based relational data store that can act as a cache or standalone in-memory database, distributed across multiple systems, allowing for fast reads and updates without writing to disk, and enabling transaction commits by mirroring data across two machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored in a traditional RDBMS on disk, then data persistence and reliability are ensured, but read and write performance deteriorate due to disk access overhead and multiple software layers

Engineering Contradiction:
Improveread performanceVSAvoiddata persistence
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system segments the database into a cache layer (in-memory) and a backing store layer (on-disk RDBMS). The cache layer handles frequent read operations quickly, while the backing store ensures persistence. This segmentation allows each layer to optimize for its specific function without compromising the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The in-memory cache acts as an intermediary between the application and the on-disk RDBMS. It mediates read operations by serving data from memory when available, reducing direct disk access. For writes, it intermediates by buffering changes and synchronizing them to the backing store, thereby improving read performance while maintaining data persistence through the backing store.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If data is cached in a single-system cache, then read performance improves, but commit performance deteriorates due to the need to write through to the backing database

Engineering Contradiction:
Improveread performanceVSAvoidcommit performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system performs preliminary action by maintaining an in-memory cache of data before commits are finalized. When a write operation occurs, the data is immediately cached in memory, making it available for rapid reads. The commit process then synchronizes this cached data to the backing store, allowing reads to occur quickly without waiting for the complete write-through process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the cache synchronization strategy based on operational needs. It can operate in different modes: synchronous commits (for high consistency) or asynchronous commits (for high performance). The cache can be flushed to the backing store immediately after writes or delayed until a scheduled sync point, allowing the system to optimize commit performance while maintaining read performance through dynamic synchronization mechanisms.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If a RDBMS uses traditional b-trees and database pages, then data organization and indexing are optimized for disk access, but CPU time and memory space efficiency deteriorate

Engineering Contradiction:
Improvedata organizationVSAvoidCPU time efficiency
Core Design Contradiction:
Ease of manufactureVSUse of energy by moving object

Solution Approach 1:

The system changes the fundamental parameter of data storage from disk-based to in-memory. Instead of using traditional RDBMS structures optimized for disk access (b-trees, pages), the cache layer stores data in memory structures that are directly accessible to the application. This parameter change eliminates the need for complex disk I/O operations and reduces CPU time spent on data retrieval and processing.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If data must be transferred from client to server disk for commit acknowledgment, then data consistency is ensured, but transaction response time increases

Engineering Contradiction:
Improvedata consistencyVSAvoidtransaction response time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by caching data in memory before the commit process completes. When a transaction modifies data, the change is immediately reflected in the in-memory cache, which is accessible to subsequent transactions. The actual synchronization to the backing store can be delayed or performed asynchronously, allowing transaction responses to be generated quickly while maintaining data consistency through the cache-backing store architecture.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8117153B2Systems and methods for a distributed cache
Publication Date: 2012.02.14 ORACLE AMERICAN INC
  • US8117153B2 patent drawing
  • US8117153B2 patent drawing
  • US8117153B2 patent drawing

AI summary

Methods, systems, and articles of manufacture consistent with the present invention provide managing a distributed database cache. A database cache is provided. The database cache is distributed over at least two data processing systems.