Distributed Multi-Version Partitioned MapReduce for Cluster Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The MapReduce paradigm in cluster computing systems faces inefficiencies due to the master node acting as a bottleneck and repeated calculations, especially when portions of calculations are repeated over time, limiting parallel processing capabilities.

Innovation Solution

A distributed multi-version partitioned MapReduce system is implemented, where data is stored across multiple nodes with versioning, allowing for parallel processing and efficient data management through a data fabric that virtualizes compute and memory resources, enabling scalable and redundant storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the master node executes the reduce step in MapReduce, then the calculation results can be combined into a single output, but the master node becomes a bottleneck that limits future cluster computing operations

Engineering Contradiction:
Improvecomputing efficiencyVSAvoidbottleneck at master node
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The reduce step is segmented and distributed across multiple worker nodes instead of being centralized at the master node. Each worker node that has completed its map step can independently perform reduce operations on its local data partitions, eliminating the single-point bottleneck at the master node while maintaining the ability to produce consolidated output results.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the MapReduce paradigm is used for processing large data sets, then parallel processing can be achieved in the map step, but repeated calculations occur when portions of calculations are repeated at different times

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidrepeated calculations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by storing intermediate calculation results from map steps in a distributed cache memory accessible to all worker nodes. When subsequent reduce steps or new calculations require the same intermediate data, the system retrieves these pre-computed results from cache rather than re-calculating, significantly reducing redundant computation time while preserving parallel processing benefits.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If data is stored across multiple nodes with versioning, then parallel processing and efficient data management are enabled, but the system complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The distributed cache memory serves multiple functions: it stores intermediate map results for current processing, maintains versioned historical data for rollback and auditing, and provides a shared data pool for multiple worker nodes to access simultaneously. This multi-functional approach enables parallel processing and version management without requiring separate complex systems for each function, thereby improving scalability while controlling overall system complexity.

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

Data Source

PatentUS10929388B1Distributed multi-version partitioned mapreduce for a data fabric
Publication Date: 2021.02.23 WORKDAY INC
  • US10929388B1 patent drawing
  • US10929388B1 patent drawing
  • US10929388B1 patent drawing

AI summary

A system for performing a computation includes an interface and a processor. The interface is configured to receive an indication of the computation. The processor is configured to determine whether the computation is with respect to a computation version number. In response to a determination that the computation is with respect to a computation version number: 1) determine whether the system has been updated to at least the computation version number; and 2) in response to a determination that the system has been updated to at least the computation version number: a) determine a set of data values for the computation associated with the computation version number; b) perform a partition reduce operation on the set of data values to determine a partition result; and c) provide the partition result.