Proactive Memory Allocation for Database Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, particularly in-memory database systems, low free memory can lead to performance bottlenecks as processes wait for memory allocation, causing delays and reduced responsiveness during insertion-intensive workloads.

Innovation Solution

Implementing proactive memory allocation, where a dedicated thread monitors the free memory pool and pre-allocates additional memory from the operating system when the pool falls below a threshold, ensuring a sufficient pool of free memory pages is maintained to avoid delays in memory allocation for other threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory is allocated on-demand when free memory is low, then memory is used efficiently, but process performance degrades due to waiting for allocation

Engineering Contradiction:
Improvefree memoryVSAvoidprocess throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements proactive memory allocation where a dedicated thread monitors the free memory pool and pre-allocates additional memory from the operating system before the memory is actually needed by other threads. This preliminary action ensures that memory is available when needed without causing process delays, resolving the contradiction between efficient memory usage and maintained productivity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a dedicated thread monitors and manages memory allocation proactively, then memory availability is improved, but system complexity increases

Engineering Contradiction:
Improvememory availabilityVSAvoidthread management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The dedicated thread autonomously monitors the free memory pool, detects when memory falls below thresholds, and proactively allocates additional memory without requiring external intervention or complex coordination with other threads. This self-service approach improves memory availability while keeping the system relatively simple by avoiding complex inter-thread communication and synchronization mechanisms.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10133659B2Proactive memory allocation
Publication Date: 2018.11.20 SAP SE
  • US10133659B2 patent drawing
  • US10133659B2 patent drawing
  • US10133659B2 patent drawing

AI summary

Technologies are described for performing proactive memory allocation (e.g., pre-allocation). Proactive memory allocation (e.g., proactive memory page allocation) can be provided for applications, such as database applications. For example, an application can be associated with a free memory pool (e.g., a free memory pool containing free memory pages). A dedicated thread of the application can monitor the free memory pool and perform proactive memory allocation when needed (e.g., when the amount of memory in the pool is low). For example, the dedicated thread can obtain new free memory from the operating system and add it to the pool.