NUMA Database Memory Allocation via Node Load Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In non-uniform memory access (NUMA) database systems, improper data allocation can lead to congestion and increased latency due to uneven access frequencies and concurrency, similar to symmetric multiprocessing systems, as data may be loaded onto nodes already heavily accessed by multiple threads, causing processing delays.

Innovation Solution

A database management system (DBMS) that accounts for the system state by monitoring node loads and free memory to optimally allocate data across nodes, using a preferred allocation method that identifies ideal nodes for data storage based on current workload and distance from clients, and employs a modified API for NUMA-aware allocations with node-level binding to reduce congestion and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data is allocated to nodes without considering system state, then allocation simplicity is maintained, but congestion and latency increase due to uneven access frequencies

Engineering Contradiction:
Improvedata allocation simplicityVSAvoiddata access latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary monitoring of node loads and access frequencies before allocating data. The DBMS evaluates system state metrics such as current workload and access patterns in advance, then makes informed allocation decisions. This preliminary assessment prevents congestion by avoiding placement of frequently accessed data on already heavily loaded nodes, thereby reducing access latency without significantly complicating the allocation process.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data is concentrated on fewer nodes, then storage efficiency improves, but access congestion increases due to multiple threads accessing the same memory

Engineering Contradiction:
Improvestorage efficiencyVSAvoidmemory access congestion
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The system applies local quality by distributing data placement strategies according to local node conditions. Each node's data allocation is optimized based on its specific workload characteristics, access frequency patterns, and current load state. Frequently accessed data is preferentially placed on nodes with lower access frequencies and available capacity, while less frequently accessed data can be concentrated on nodes with higher capacity. This localized optimization reduces congestion on high-traffic nodes while maintaining overall storage efficiency.

Inventive Principle:
Principle #3Local quality

3Loss of time

If system state monitoring is implemented for optimal allocation, then access latency is reduced, but system complexity increases due to additional monitoring and decision logic

Engineering Contradiction:
Improvedata access latencyVSAvoidallocation system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms by continuously monitoring node load metrics, access frequencies, and memory utilization. This monitoring data feeds back into the allocation decision process, allowing the DBMS to dynamically adjust data placement based on current system conditions. The feedback loop enables the system to identify and prevent congestion patterns before they significantly impact performance, reducing access latency through data-driven allocation decisions while maintaining manageable complexity through standardized monitoring and response protocols.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9697048B2Non-uniform memory access (NUMA) database management system
Publication Date: 2017.07.04 SAP SE
  • US9697048B2 patent drawing
  • US9697048B2 patent drawing
  • US9697048B2 patent drawing

AI summary

Disclosed herein are system, method, and computer program product embodiments for managing non-uniform memory access (NUMA) in a database management system. An embodiment operates by receiving a request to load data from a disk into an in-memory database. An optimal one of the plurality of nodes onto which to load the data from the disk based on a system state is determined. It is determined whether the optimal node has sufficient free local memory in a free list to store the data. If the optimal node does not have sufficient free list memory, a memory allocation is requested from an operating system. An address of the memory storing the data is provided.