Heterogeneous Memory Hierarchy for Database Storage Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Main memory-based databases face limitations due to small capacity, making them cost-prohibitive and speed-limited when trying to increase memory capacity, either through expensive high-capacity devices or distributed architectures.
Innovation Solution
Implementing a hierarchy of memories with low-density, low-latency and high-density, high-latency memory units, where data is stored based on user-specified criteria such as compression level, priority, access frequency, and available memory, allowing automatic movement of data between memory types based on policy conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If high-capacity main memory devices are used to increase memory capacity, then memory capacity is improved, but cost increases significantly
Solution Approach 1:
The patent segments memory capacity into two distinct types: volatile memory for frequently accessed data and non-volatile memory for less frequently accessed data. This segmentation allows the system to achieve high total capacity without requiring all capacity to be expensive volatile memory, thereby reducing overall cost while maintaining adequate performance for active workloads.
Solution Approach 2:
The patent applies local quality by assigning different memory types to different data based on access patterns. Frequently accessed data resides in fast volatile memory while less frequently accessed data is stored in slower non-volatile memory. This localized optimization ensures that expensive high-performance memory is only used where necessary, reducing overall system cost while maintaining performance for critical operations.
2Quantity of substance
If a cluster of computing devices is used to increase main memory capacity, then memory capacity is improved, but access speed deteriorates due to interconnect limitations
Solution Approach 1:
The patent segments the memory system into volatile and non-volatile components within a single computing device, eliminating the need for distributed clusters. This segmentation provides a unified memory namespace that appears as a single address space to applications, avoiding the interconnect bottlenecks inherent in clustered architectures while still achieving high capacity through the combination of different memory types.
Solution Approach 2:
The patent introduces a memory management mechanism that acts as an intermediary between the volatile and non-volatile memory types. This intermediary transparently manages data placement and movement between memory types, providing unified access semantics to applications while optimizing performance by keeping frequently accessed data in volatile memory, thereby maintaining high access speeds without requiring clustered architectures.
3Speed
If volatile memory is used for all data storage, then data access speed is improved, but memory capacity is limited and cost increases
Solution Approach 1:
The patent applies local quality by using volatile memory specifically for frequently accessed data where speed is critical, while using non-volatile memory for less frequently accessed data where capacity is more important than speed. This localized application of different memory types optimizes the overall system by ensuring that volatile memory's high speed is utilized only where necessary, while non-volatile memory provides cost-effective capacity for other data.
Solution Approach 2:
The patent changes the parameters of the memory system by introducing non-volatile memory with different characteristics (higher capacity, lower cost, slower speed) to complement volatile memory. By adjusting the mix and distribution of data across these memory types based on access patterns, the system achieves an optimal balance between capacity, cost, and performance that neither memory type could achieve alone.
Data Source
AI summary
Techniques related to efficient data storage and retrieval using a heterogeneous main memory are disclosed. A database includes a set of persistent format (PF) data that is stored on persistent storage in a persistent format. The database is maintained on the persistent storage and is accessible to a database server. The database server converts the set of PF data to sets of mirror format (MF) data and stores the MF data in a hierarchy of random-access memories (RAMs). Each RAM in the hierarchy has an associated latency that is different from a latency associated with any other RAM in the hierarchy. Storing the sets of MF data in the hierarchy of RAMs includes (1) selecting, based on one or more criteria, a respective RAM in the hierarchy to store each set of MF data and (2) storing said each set of MF data in the respective RAM.


