Coded Stream Processing With Parity Recovery for Slow Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Stream processing systems face challenges in error correction and latency due to failures or slow processing of processors, leading to inefficient use of network bandwidth and computing resources.

Innovation Solution

A system that partitions streaming data into data chunks and generates parity chunks using algorithms like Reed-Solomon, allowing the system to recover missing data by utilizing parity chunks, thus tolerating a defined quantity of failed or slow processors without significant latency or interruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system waits for all processors to complete processing before proceeding, then data integrity is maintained, but processing latency increases significantly

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary encoding of data into multiple chunks and distributes them to multiple processors before processing begins. This allows the system to start processing immediately and proceed with reconstruction as soon as sufficient chunks are received, rather than waiting for all processors to complete.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates redundant copies of data in the form of encoded chunks distributed across multiple processors. These copies enable the system to reconstruct the original data from any sufficient subset of chunks, allowing early termination and reconstruction once the minimum number of chunks is received.

Inventive Principle:
Principle #26Copying

2Productivity

If the system uses multiple processors to parallelize data processing, then processing speed increases, but the system becomes vulnerable to processor failures and slow processing

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem robustness to failures
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system divides the data into multiple separate chunks and distributes them to different processors for parallel processing. This segmentation enables speedup through parallelism while isolating failures to individual chunks rather than affecting the entire dataset.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies encoding transformations to convert the original data into multiple encoded chunks with specific mathematical relationships. This parameter transformation enables the system to tolerate a certain number of failed or slow processors while maintaining the ability to reconstruct the original data.

Inventive Principle:
Principle #35Parameter changes

3Loss of information

If the system requests data from all processors to ensure complete data collection, then data completeness is achieved, but network bandwidth consumption increases

Engineering Contradiction:
Improvedata completenessVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The system creates redundant encoded copies of the data and distributes them across multiple processors. This allows the coordinator to reconstruct the original data from any sufficient subset of chunks, eliminating the need to collect data from all processors and reducing network bandwidth consumption.

Inventive Principle:
Principle #26Copying

4Reliability

If the system implements error correction mechanisms to handle processor failures, then system reliability improves, but system complexity increases

Engineering Contradiction:
Improveerror correction capabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system applies mathematical encoding transformations to convert data into chunks with built-in error correction properties. This allows the system to tolerate a certain number of failures without requiring complex error detection and correction protocols, as the encoding itself provides the necessary redundancy and correction capability.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11496153B2Coded stream processing
Publication Date: 2022.11.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11496153B2 patent drawing
  • US11496153B2 patent drawing
  • US11496153B2 patent drawing

AI summary

Described herein is a system and method for coded streaming data to facilitate recovery from failed or slow processor(s). A batch of processing stream data can be partitioned into a plurality of data chunks. Parity chunk(s) for the plurality of data chunks. The plurality of data chunks and the parity chunk(s) can be provided to processors for processing. Processed data of at least some (e.g., one or more) of the plurality of data chunks, and, processed data of parity chunk(s) are received. When it is determined that processed data for a pre-defined quantity of data chunks has not been received by a pre-defined period of time, the processed data for particular data chunk(s) of particular processor(s) from which processed data has not been received are determined based, at least in part, upon the received processed parity chunk(s) and the received processed data chunk(s).