Data Partitioning Optimization for Distributed Computing Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data partitioning techniques in distributed computing are simplistic and often lead to performance degradations and job failures, particularly in complex user-defined functions and data models, due to inefficient workload distribution across multiple computers.

Innovation Solution

A system and method for automatically generating an optimized data partitioning plan by analyzing the data-parallel program code, inferring computational and I/O complexities, and estimating costs to determine an improved partitioning scheme, which balances workload distribution and minimizes overall runtime costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If current simplistic data partitioning techniques are used, then implementation ease is maintained, but performance degradation and job failures occur due to unbalanced workloads

Engineering Contradiction:
Improveease of partitioning implementationVSAvoiddistributed computing performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system performs preliminary analysis of the data-parallel program code to derive computational properties and infer complexity characteristics before executing the actual partitioning. This advance preparation enables the system to determine optimal partitioning strategies without trial-and-error, resolving the contradiction by maintaining ease of operation while dramatically improving performance through pre-computed partitioning plans based on code analysis and complexity modeling

Inventive Principle:
Principle #10Preliminary action

2Productivity

If complex analysis and optimization modules are added to improve partitioning quality, then performance is optimized, but system complexity increases

Engineering Contradiction:
Improvedistributed computing performanceVSAvoidpartitioning system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The partitioning system is segmented into distinct functional modules: code analysis module that derives program properties, complexity module that infers computational characteristics, data analysis module that processes input data characteristics, and optimization module that generates partitioning plans. This modular segmentation manages system complexity by organizing complex functionality into independent, manageable components while maintaining overall performance optimization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces intermediate representation structures (execution plan graphs, cost models, complexity metrics) that mediate between the input program code and the final partitioning decisions. These intermediaries enable sophisticated analysis and optimization without directly complicating the core partitioning logic, resolving the contradiction by providing structured abstraction layers that manage complexity while enhancing performance

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If the system runs the program on the input dataset first to determine partitioning, then accurate performance data is obtained, but execution time is increased

Engineering Contradiction:
Improveperformance measurement accuracyVSAvoidpartitioning determination time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Instead of executing the actual program on the full input dataset to measure performance, the system creates and analyzes a copy or representation of the program code through static analysis. The code analysis module derives computational properties from the program structure itself, and the complexity module infers performance characteristics without actual execution. This copying approach maintains measurement precision by analyzing program semantics while eliminating the time cost of running the full program just to determine partitioning

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9235396B2Optimizing data partitioning for data-parallel computing
Publication Date: 2016.01.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9235396B2 patent drawing
  • US9235396B2 patent drawing
  • US9235396B2 patent drawing

AI summary

A data partitioning plan is automatically generated that—given a data-parallel program and a large input dataset, and without having to first run the program on the input dataset—substantially optimizes performance of the distributed execution system that explicitly measures and infers various properties of both data and computation to perform cost estimation and optimization. Estimation may comprise inferring the cost of a candidate data partitioning plan, and optimization may comprise generating an optimal partitioning plan based on the estimated costs of computation and input/output.