Persistent Shuffle Storage for Dynamic Key Range Reallocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing shuffle operations in distributed data processing systems are inefficient when dealing with unbounded or unknown data sets, as optimal key ranges cannot be discernible at the start, and there is a lack of flexibility in reconfiguring during the operation.

Innovation Solution

The system allows for dynamic reconfiguration of shuffle operations by analyzing metadata to adjust key range allocations and stores shuffle results in persistent storage, enabling efficient handling of unbounded data sets and decoupling producers from consumers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If key range allocations are fixed at the start of the shuffle operation, then the system structure is simple and easy to implement, but the system cannot adapt to unbounded data sets or change in data distribution patterns

Engineering Contradiction:
Improveadaptability to unbounded data setsVSAvoidshuffle operation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic reconfiguration of the shuffle operation by allowing key range allocations to be modified during runtime. The system monitors data distribution patterns and adjusts key range assignments to shufflers dynamically, enabling adaptation to unbounded data sets without requiring a complete redesign of the shuffle architecture.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary actions by establishing initial key range allocations before the shuffle operation begins, then prepares for subsequent reconfiguration by maintaining metadata about data distribution. This allows the system to start with a simple configuration and evolve it as needed based on observed data patterns.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If shuffle results are stored in persistent storage, then fault tolerance is improved and operations can resume from failure points, but storage requirements and system complexity increase

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces persistent storage as an intermediary layer between the shuffle operation and consumers. This intermediary stores shuffle results in a durable manner, allowing the system to recover from failures by resuming operations from the persisted state rather than requiring complete reprocessing, thereby improving fault tolerance with moderate complexity addition.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If the shuffle operation processes all data before consumers can access it, then data consistency is maintained, but the time to deliver data to consumers is increased

Engineering Contradiction:
Improvedata delivery speedVSAvoiddata consistency
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The system performs preliminary shuffle operations on portions of data and stores results in persistent storage before all data processing is complete. Consumers can then access partially processed data from persistent storage while the shuffle operation continues, enabling faster data delivery without compromising overall data consistency for the complete data set.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12505087B2Persistent shuffle system
Publication Date: 2025.12.23 GOOGLE LLC
  • US12505087B2 patent drawing
  • US12505087B2 patent drawing
  • US12505087B2 patent drawing

AI summary

A method includes receiving a request to perform a shuffle operation on a data stream; receiving at least a portion of the data stream including a plurality of records, each including a key; storing each of the plurality of records in a persistent storage location assigned to a key range corresponding to keys included in the plurality of records; receiving a request from a consumer for a subset of the plurality of records including a range of keys; and upon receiving the request from the consumer, providing the subset of the plurality of records including the range of keys from the one or more persistent storage locations.