Database Query Response via Static Data Memory Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database management systems (DBMS) face inefficiencies in handling high volumes of tasks and responding to simple queries due to high latency, particularly with static data that is frequently requested but not frequently updated, such as insurance rate tables and jurisdictional requirements.
Innovation Solution
Loading static data from the DBMS into main memory for faster access, using pointers to manage data elements and employing aggregation methods like single-column aggregation and aggregation-by-size to optimize CPU resources and reduce latency, while trapping and resolving data retrieval requests directly from memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is retrieved from DBMS using traditional query methods, then data access is reliable and consistent, but access latency is high
Solution Approach 1:
The system performs preliminary actions by identifying static data elements from the DBMS and loading them into main memory before they are needed. This pre-loading of frequently accessed static data eliminates the need to query the DBMS for every access, thereby reducing access latency while maintaining data consistency.
Solution Approach 2:
The system introduces an intermediary layer (main memory) between the application and the DBMS. This intermediary stores copies of static data elements and serves as a buffer, allowing fast access to frequently requested data without directly querying the DBMS, thus reducing access latency while maintaining reliability.
2Loss of time
If all data elements are copied to main memory, then access latency is reduced, but memory usage increases
Solution Approach 1:
The system applies local quality by selectively loading only static data elements into main memory based on their characteristics (static nature and access frequency). Different data elements are treated differently - static elements are loaded to memory while volatile elements remain in the DBMS, optimizing memory usage while reducing latency for the most critical data.
Solution Approach 2:
The system changes the parameter of data location from exclusively DBMS-resident to a hybrid approach where static data elements are replicated in main memory. This parameter change in data placement strategy reduces access latency for static elements while the selective copying mechanism controls memory usage.
3Productivity
If traditional DBMS query processing is used for all requests, then data consistency is maintained, but CPU resource utilization increases
Solution Approach 1:
The system extracts the processing of static data element requests from the traditional DBMS query path. By identifying and separating static data access patterns, the system resolves these queries directly from main memory without involving the full DBMS processing stack, thereby reducing CPU resource utilization while maintaining productivity.
Solution Approach 2:
The system performs preliminary identification and classification of static data elements, loading them into main memory before query processing. This preliminary action shifts the workload from runtime DBMS processing to pre-processing, reducing CPU utilization during actual query execution while maintaining high productivity for static data access.
Data Source
AI summary
Responding to queries directed to a database management system (DBMS) includes identifying data from a DBMS, where the identified data is at least partially responsive to a query, and where the identified data remains static over a period. Also including establishing a subset of the identified data in a computer memory, where the computer memory is characterized by an access latency less than the latency associated with retrieving the identified data using a query to the DBMS, and where the access latency is defined with respect to an application program operable to issue a query to which the identified data is responsive. Further includes trapping those queries intended for the DBMS where at least a portion of the response to the query corresponds to at least a portion of the established data; and resolving trapped queries at least in part using the corresponding established data.


