Dynamic Shard Allocation for Parallel Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale parallel data processing faces challenges in distributing input data sets evenly among tasks, leading to 'straggler' shards that take longer to process, causing runtime issues and potential loss of work due to heterogeneous data sets, task execution environments, and network conditions.

Innovation Solution

A dynamic shard allocation method where a supervisor divides the input data set into shards, monitors task progress, and splits shards if a task is expected to exceed a target completion time, allowing idle tasks to claim and process the remaining portions, optimizing allocation based on observed conditions and available resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the input data set is divided into a fixed number of shards and assigned to tasks at the beginning, then the initial parallel processing can start immediately, but straggler shards may take longer to process causing runtime issues and potential loss of work

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidcompletion time guarantee
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts shard allocation during processing by monitoring task progress and splitting shards that are running behind schedule. The supervisor continuously evaluates completion estimates and redistributes work from straggler tasks to idle tasks, making the initially static shard allocation adaptive and dynamic to ensure all tasks complete by the target time.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The supervisor implements a feedback mechanism by continuously monitoring task progress, estimating completion times, and comparing them against the target completion time. Based on this feedback, the supervisor identifies straggler tasks and triggers shard splitting operations, creating a closed-loop control system that adapts to actual processing conditions.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If shards are split dynamically during processing, then shard allocation can be optimized based on observed conditions, but the system complexity and overhead increase

Engineering Contradiction:
Improveshard allocation adaptabilityVSAvoidshard management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The supervisor acts as an intermediary between tasks and the shard allocation system. It centralizes the logic for monitoring task progress, estimating completion times, and deciding when to split shards. This intermediary approach simplifies the overall system architecture by consolidating complex decision-making in a single component rather than distributing it across all tasks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the shard management functionality into distinct operations: initial shard creation, progress monitoring, completion estimation, shard splitting, and task redistribution. This segmentation allows each function to be implemented and managed independently, reducing overall system complexity despite the dynamic nature of the solution.

Inventive Principle:
Principle #1Segmentation

3Reliability

If more monitoring and evaluation of task progress is performed, then straggler shards can be identified and addressed, but the overhead and computational cost increase

Engineering Contradiction:
Improvecompletion time guaranteeVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system performs monitoring and evaluation at strategic points rather than continuously. It checks task progress at intervals and only performs detailed completion time estimation for tasks that are at risk of becoming stragglers. This partial monitoring approach provides sufficient information to identify and address completion time issues without the excessive overhead of continuous detailed analysis of all tasks.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3167368B1Dynamic shard allocation adjustment
Publication Date: 2022.03.23 GOOGLE LLC
  • EP3167368B1 patent drawingFigure 1
  • EP3167368B1 patent drawingFigure 2A~2B
  • EP3167368B1 patent drawingFigure 3

AI summary

The present disclosure relates to dynamically adjusting shard allocation during parallel processing operations. One example method includes determining a target completion time for a batch data processing job of an input data set performed by a plurality of tasks, each of the plurality of tasks processing a different input shard including a different portion of the input data set; identifying a first task having an estimated completion time greater than the target completion time of the batch data processing job; and splitting the first input shard into a first split input shard and a second split input shard different from the first split input shard, the first split input shard including a first portion of the first input shard, and the second split input shard including a second portion of the first input shard different from the first portion.