Memory Estimation for Distributed Data Processing Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory estimation methods for distributed data processing systems, such as those using black box machine learning models, are application-specific, inaccurate, and unable to dynamically estimate memory variations across stages, leading to inefficient memory allocation and performance degradation.

Innovation Solution

A method and system that perform analysis on application code conditional branches and loop bodies to estimate memory limits and optimize configuration parameters using a data feature acquiring strategy, reducing the need for manual training and enabling fine-grained configuration optimization by capturing static and dynamic features for precise memory estimation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If black box machine learning models are used for memory estimation, then memory allocation can be automated, but estimation accuracy deteriorates and models become application-specific

Engineering Contradiction:
Improvememory allocation automationVSAvoidmemory estimation accuracy
Core Design Contradiction:
Extent of automationVSMeasurement precision

Solution Approach 1:

The patent segments the memory estimation process into multiple stages corresponding to different application execution phases. Instead of using a single black box model, it divides the estimation into stage-specific models that capture memory behavior at each phase, thereby improving overall accuracy while maintaining automation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic adjustment mechanisms that adapt memory estimation to different application types and execution stages. The system dynamically selects and adjusts estimation parameters based on runtime characteristics, moving away from static black box models to a more flexible, accurate approach.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If different machine learning models are built for different applications, then estimation accuracy for each application improves, but system complexity and model maintenance burden increase

Engineering Contradiction:
Improveapplication-specific estimation accuracyVSAvoidmodel management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a universal memory estimation framework that can handle multiple application types through a common architecture. By defining standardized stage models and parameter structures, the system achieves application-specific accuracy without requiring separate custom models for each application, thus reducing overall complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses parameter adjustment within a unified model structure rather than creating entirely different models for each application. By changing parameters such as memory allocation factors and stage-specific coefficients, the same framework adapts to different applications, maintaining accuracy while simplifying model management.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If memory is allocated insufficiently to Spark applications, then resource utilization improves, but performance deteriorates due to spilling to disc

Engineering Contradiction:
Improvememory resource utilizationVSAvoidtask processing performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements feedback mechanisms that monitor actual memory usage and performance metrics during execution. This feedback is used to adjust memory allocation decisions for subsequent tasks, balancing resource utilization with performance requirements by learning from past spilling events and optimization outcomes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary memory estimation and configuration optimization before task execution. By predicting memory requirements in advance based on application characteristics and historical data, the system pre-allocates appropriate memory resources to prevent spilling and performance degradation during actual execution.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If too much memory is allocated to applications, then performance improves, but memory resource waste increases

Engineering Contradiction:
Improveapplication execution performanceVSAvoidmemory resource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent optimizes memory allocation parameters dynamically based on application characteristics and execution stages. By adjusting parameters such as cache size, shuffle memory, and stage-specific allocations, the system achieves near-optimal performance with minimal memory waste, avoiding both under-allocation and over-allocation.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies differentiated memory allocation strategies to different parts of the application execution process. Instead of uniform memory allocation, it optimizes memory distribution across different stages and components based on their specific requirements, improving overall efficiency while reducing waste in less memory-intensive phases.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10725754B2Method of memory estimation and configuration optimization for distributed data processing system
Publication Date: 2020.07.28 HUAZHONG UNIV OF SCI & TECH
  • US10725754B2 patent drawing
  • US10725754B2 patent drawing

AI summary

The present invention relates to a method of memory estimation and configuration optimization for a distributed data processing system involves performing match between an application data stream and a data feature library, wherein the application data stream has received analysis and processing on conditional branches and/or loop bodies of an application code in a Java archive of the application, estimating a memory limit for at least one stage of the application based on the successful matching result, optimizing configuration parameters of the application accordingly, and acquiring static features and/or dynamic features of the application data based on running of the optimized application and performing persistent recording. Opposite to machine-learning-based memory estimation that does not ensure accuracy and fails to provide fine-grained estimation for individual stages, this method uses application analysis and existing data feature to estimate overall memory occupation more precisely and to estimate memory use of individual job stages for more fine-grained configuration optimization.