Coded Stream Processing With Parity Recovery for Slow Processors
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
4Reliability
If the system implements error correction mechanisms to handle processor failures, then system reliability improves, but system complexity increases
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.
Data Source
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).


