Off-Heap Memory Management for Distributed Database Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed database systems face challenges in data synchronization, low latency over wide area networks, scalability, and handling different user schemas, particularly in managing large datasets and reducing Java memory management overhead.

Innovation Solution

A distributed parallel processing database system allocates memory both on and off the Java heap, utilizing off-heap memory managed by a separate garbage collector to improve CPU utilization and reduce pauses caused by Java garbage collection, especially for large database operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data is processed in Java heap memory, then memory management is simplified through automatic garbage collection, but CPU utilization decreases and pauses occur due to garbage collection overhead

Engineering Contradiction:
Improvememory managementVSAvoidCPU utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments memory management into two distinct parts: Java heap memory for general objects and off-heap memory for byte buffer data. This segmentation allows different memory regions to be managed differently, with off-heap memory bypassing Java's garbage collection mechanism to eliminate pauses and improve CPU utilization while maintaining automatic management benefits in the Java heap region.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (DirectBuffer wrapper and custom memory management layer) between the Java application and off-heap memory. This intermediary handles memory allocation, access, and cleanup operations, allowing Java code to work with off-heap memory as if it were managed by the garbage collector while actually avoiding GC overhead for these specific memory regions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If Java garbage collection is used for memory management, then automatic memory reclamation is achieved, but performance pauses occur during collection operations

Engineering Contradiction:
Improveautomatic memory reclamationVSAvoidgarbage collection pauses
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts the memory management responsibility for byte buffer data from Java's garbage collection system. By allocating this data in off-heap memory and managing it through direct buffer wrappers with explicit cleanup mechanisms, the system removes the source of GC-induced pauses while preserving automatic memory reclamation for other objects that remain in the Java heap.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The off-heap memory management system implements self-service through direct buffer wrappers that automatically track and clean up their own memory resources. When buffers are no longer needed, the wrapper objects are garbage collected and automatically release their underlying native memory, eliminating the need for manual memory management while avoiding Java GC pauses.

Inventive Principle:
Principle #25Self-service

3Quantity of substance

If large amounts of data are allocated in Java heap memory, then data processing capacity increases, but memory management overhead increases

Engineering Contradiction:
Improvedata processing capacityVSAvoidmemory management overhead
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent transitions from managing large data structures within the constrained Java heap dimension to utilizing off-heap memory, effectively adding another memory dimension. This allows byte buffer data to be allocated outside the Java heap's garbage collection domain, reducing the overhead of tracking and managing large amounts of data while maintaining full accessibility through Java's memory model.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10223256B1Off-heap memory management
Publication Date: 2019.03.05 VMWARE INC
  • US10223256B1 patent drawing
  • US10223256B1 patent drawing
  • US10223256B1 patent drawing

AI summary

A distributed parallel processing database that processes data in a Java environment allocates memory both on a Java heap and off a Java heap. The distributed parallel processing database includes multiple servers. Each server executes a Java virtual machine (JVM) in which data allocated to the server is processed. When a JVM of a server starts, the JVM can specify an off-heap memory size, based on a JVM start parameter. The server can designate memory of the specified size that is off JVM memory heap as off-heap memory. The off-heap memory is different from heap memory in the Java environment, and is managed by a garbage collector that is outside of the Java environment. The server can process data designated as off-heap memory eligible in the off-heap memory. The off-heap memory can improve database operations that create a large number of similar-sized objects in memory by reducing Java memory management overhead.