Distributed In-Memory Cache for Database Performance
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
4Reliability
If data must be transferred from client to server disk for commit acknowledgment, then data consistency is ensured, but transaction response time increases
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.
Data Source
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.


