Hybrid Memory Join Operator Data Placement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Hybrid main memory systems face challenges in efficiently distributing data between dynamic random access memory (DRAM) and non-volatile memory (NVM) to minimize power loss while maintaining performance, as traditional data migration techniques introduce runtime overhead and energy consumption.
Innovation Solution
The implementation selectively places intermediate results of a join operator in DRAM or NVM based on payload size and cache size, analyzing query execution plans to predict frequent memory accesses and allocate data sets on DRAM, thereby avoiding data migration and enhancing performance and energy-efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is stored in DRAM for fast access, then speed is improved, but use of energy worsens due to continuous leakage and refresh power
Solution Approach 1:
The system performs preliminary analysis of the query execution plan to predict which intermediate results will be frequently accessed by join operators. Based on this prediction, data is proactively placed in DRAM before it is needed, avoiding the need for frequent migrations and reducing overall energy consumption while maintaining fast access speeds.
Solution Approach 2:
The system dynamically allocates memory types based on runtime characteristics. It analyzes the query execution plan at runtime to identify join operators and their intermediate results, then selectively places only the necessary data in DRAM while keeping less critical data in NVM, creating a dynamic and adaptive memory management strategy.
2Use of energy by moving object
If data is migrated between memory types to optimize power consumption, then use of energy is improved, but productivity worsens due to runtime overhead
Solution Approach 1:
The system performs memory allocation decisions in advance by analyzing the query execution plan before query execution. It identifies join operators and predicts their intermediate results, pre-allocating appropriate memory types for each dataset. This eliminates the need for runtime data migration, thereby optimizing power consumption without sacrificing runtime performance.
Solution Approach 2:
The system autonomously manages memory allocation by automatically analyzing query execution plans, predicting data access patterns, and allocating appropriate memory types without requiring external intervention or complex runtime migration protocols, thus improving both energy efficiency and runtime performance.
3Use of energy by moving object
If intermediate results are stored in NVM to reduce energy consumption, then use of energy is improved, but speed worsens due to increased latency
Solution Approach 1:
The system applies different memory types to different data locations based on their specific access requirements. Intermediate results of join operators, which require fast access, are selectively placed in DRAM, while other less frequently accessed data remains in NVM. This localized optimization ensures that only the critical data paths use high-speed memory, balancing energy efficiency with performance.
Solution Approach 2:
The system proactively identifies which intermediate results will be frequently accessed by analyzing the query execution plan for join operators. It pre-places these specific datasets in DRAM before execution, ensuring fast access when needed while keeping the overall energy consumption low by using NVM for other data.
Data Source
AI summary
Implementations of the present disclosure include methods, systems, and computer-readable storage mediums for receiving an annotated query execution plan (aQEP), the aQEP being processed to execute a query on an in-memory database in a hybrid memory system, and including one or more annotations, each annotation indicating an output of a respective operator that is to be provided as input to a join operator, determining a payload size at least partially based on an estimated size of an intermediate output of the join operator, selecting a memory type from a plurality of memory types in the hybrid memory system based on the payload size and a cache size, and storing, after execution of the aQEP, the intermediate output on the memory type in the hybrid memory system.


