MapReduce Load Balancing via Key Frequency Bucketing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional MapReduce implementations suffer from load imbalance issues due to uneven distribution of data items among processing units, leading to resource wastage and time inefficiencies, which require human intervention and are not robust to changes in data distribution.

Innovation Solution

A distributed computing system automatically addresses load imbalance by employing a map task module to identify the top K most frequent data keys, sorting data into single-key and multiple-key buckets, and assigning multiple workers to each single-key bucket based on key frequency, allowing for dynamic adjustment of resources without human intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If hash functions are used to distribute data items among processing units, then data distribution is even when the number of items with the same key is small, but load imbalance occurs when the number of items with the same key is large

Engineering Contradiction:
Improvedata distribution evennessVSAvoidprocessing unit load balance
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent segments the processing units into two distinct groups: a first set of processing units that process items with popular keys (high frequency), and a second set of processing units that process items with less popular keys. This segmentation allows each group to be optimized for its specific workload, resolving the load imbalance caused by hash function limitations when dealing with highly skewed key distributions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by assigning different processing strategies to different processing units based on their assigned workload. Processing units in the first set are dedicated to handling popular keys with high item frequency, while processing units in the second set handle less popular keys. This localized optimization ensures that each processing unit is appropriately configured for its specific data characteristics, preventing the load imbalance that occurs when all units use the same hash-based distribution approach.

Inventive Principle:
Principle #3Local quality

2Productivity

If a programmer manually intervenes to redirect data for popular keys to different processing units, then load imbalance can be addressed, but the solution becomes human-resource intensive and error-prone

Engineering Contradiction:
Improveload balanceVSAvoidhuman intervention requirement
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling the system to automatically detect popular keys and dynamically assign items with those keys to appropriate processing units without human intervention. The system autonomously monitors key frequency, identifies popular keys, and redistributes data accordingly, eliminating the need for manual programmer intervention while maintaining optimal load balance across processing units.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent employs feedback mechanisms where the system continuously monitors the frequency distribution of keys and uses this information to dynamically adjust data assignment among processing units. This feedback loop allows the system to automatically adapt to changing data patterns, identifying popular keys and redistributing their associated items to prevent load imbalance without requiring manual programmer input or intervention.

Inventive Principle:
Principle #23Feedback

3Productivity

If the input data changes causing a different key to become more popular, then a new imbalance occurs, but the previously implemented solution may exacerbate the new imbalance

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidrobustness to data changes
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies dynamics by implementing a flexible, adaptive system that continuously monitors key frequency and dynamically reassigns processing units based on current data patterns. When input data changes and new popular keys emerge, the system automatically detects these changes and redistributes data accordingly, rather than relying on static, pre-configured assignments. This dynamic approach ensures the system remains robust and adaptive to changing data distributions without exacerbating new imbalances.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements preliminary action by proactively monitoring key frequency trends and preparing to redistribute data before severe load imbalance occurs. The system continuously tracks popular keys and anticipates shifts in data distribution, allowing it to preemptively adjust processing unit assignments. This preliminary detection and response mechanism ensures the system can adapt to data changes smoothly, preventing new imbalances from forming rather than reacting after they occur.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10642866B1Automated load-balancing of partitions in arbitrarily imbalanced distributed mapreduce computations
Publication Date: 2020.05.05 QUANTCAST CORP
  • US10642866B1 patent drawing
  • US10642866B1 patent drawing
  • US10642866B1 patent drawing

AI summary

A distributed computing system executes a MapReduce job on streamed data that includes an arbitrary amount of imbalance with respect to the frequency distribution of the data keys in the dataset. A map task module maps the dataset to a coarse partitioning, and generates a list of the top K keys with the highest frequency among the dataset. A sort task module employs a plurality of sorters to read the coarse partitioning and sort the data into buckets by data key. The values for the top K most frequent keys are separated into single-key buckets. The other less frequently occurring keys are assigned to buckets that each have multiple keys assigned to it. Then, more than one worker is assigned to each single-key bucket. The output of the multiple workers assigned to each respective single-key bucket is stitched together.