Prefetch Optimizer for In-Memory Computing Page Faults
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In-memory computing programs, such as DBMS executing OLAP, often experience temporary stops due to lack of access locality, leading to frequent page-out and page-in operations when dealing with large data sets like images or speech data, exceeding the main memory capacity and resulting in performance degradation.
Innovation Solution
A computer system incorporating a main memory, a lower class memory, and a secondary storage medium, which executes an in-memory computing program and a prefetch optimizer. The prefetch optimizer identifies continuous areas in virtual memory and directs the OS to perform class-in processes for virtual pages, reducing the frequency of temporary stops by prefetching data from secondary storage to main memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is loaded from secondary storage medium into main memory for in-memory computing, then processing speed is improved, but when data amount exceeds main memory capacity, frequent page-out and page-in operations occur causing temporary stops and performance degradation
Solution Approach 1:
The prefetch optimizer performs preliminary actions by predicting which data will be needed soon and loading it into main memory in advance, before the in-memory computing program actually requests it. This prevents temporary stops by ensuring data is already available in main memory when needed, resolving the contradiction between maintaining high processing speed and avoiding frequent page-out/page-in operations.
2Quantity of substance
If virtual memory space is used to extend storage capacity beyond main memory, then storage capacity is improved, but access speed deteriorates due to frequent swaps between main memory and secondary storage
Solution Approach 1:
The system maintains large storage capacity through virtual memory while preserving access speed by proactively loading predicted data into main memory before access occurs. The prefetch optimizer analyzes access patterns and pre-loads data that will be needed, reducing the frequency of slow swap operations between main memory and secondary storage, thus maintaining both large capacity and fast access.
3Ease of manufacture
If conventional LRU algorithm is used for determining pages to swap out, then implementation simplicity is improved, but performance deteriorates for in-memory computing programs lacking access locality
Solution Approach 1:
The prefetch optimizer introduces feedback mechanisms that monitor actual data access patterns of in-memory computing programs and use this information to make intelligent predictions about future access needs. This feedback-driven approach replaces the simple LRU algorithm with a more sophisticated prediction mechanism that adapts to the specific access patterns of analytical processing workloads, significantly improving processing efficiency while maintaining reasonable implementation complexity.
Data Source
AI summary
A computer system includes a main memory, a lower class memory, and a secondary storage medium and executes an operating system, an in-memory computing program, and a prefetch optimizer program. The in-memory computing program writes processing target data including a plurality of data objects stored in the secondary storage medium into a plurality of continuous areas on a virtual memory space and executes a process while accessing the continuous area. When detecting that the operating system executes a class-in process triggered upon a page fault for a predetermined virtual page, the prefetch optimizer program acquires information of the continuous area from the in-memory computing program and directs the operating system to execute a class-in process for virtual pages included in the predetermined continuous area including the predetermined virtual page.


