Streaming Search Routing Keys for Ordered Parallel Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems struggle to maintain temporal ordering of data while performing parallel processing, leading to inaccurate search results due to out-of-order data processing.
Innovation Solution
A streaming search system that uses routing keys to ensure temporal ordering of data by routing related payloads through the same data streams, queues, and processing threads, allowing for parallel processing without disrupting the order in which the data was generated.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel processing is performed on data streams, then productivity is improved, but data ordering is lost leading to inaccurate search results
Solution Approach 1:
The system segments data streams into multiple independent streams, each serviced by dedicated index workers. Payloads are routed to specific streams based on routing keys, ensuring that related data remains together while allowing parallel processing across different streams. This segmentation enables both high throughput and maintained ordering within each segment.
Solution Approach 2:
The patent introduces routing keys as intermediary elements that mediate between incoming payloads and data streams. These routing keys act as mediators that ensure payloads are directed to the appropriate stream while maintaining temporal ordering. The routing key mechanism allows parallel processing to occur without disrupting the original data generation order within each stream.
2Speed
If data is processed in parallel across multiple threads, then processing speed is improved, but temporal ordering between related payloads is disrupted
Solution Approach 1:
The system divides processing into multiple independent threads, each responsible for a specific data stream or queue. By segmenting the processing workload, the system achieves parallel execution while maintaining temporal ordering within each thread's designated scope. Related payloads with the same routing key are processed sequentially within their assigned thread, preserving temporal relationships.
Solution Approach 2:
The patent introduces an additional dimension of organization through routing keys and multiple queues. Instead of a single sequential processing line, the system creates a multi-dimensional processing structure where data can be routed to different queues based on routing keys. This dimensional expansion allows parallel processing across queues while maintaining ordering within each queue dimension.
3Productivity
If multiple index workers service the same data stream, then productivity is improved, but data consistency and ordering are compromised
Solution Approach 1:
The system segments the workload by assigning different data streams to different index workers. Each worker is responsible for servicing specific streams, preventing multiple workers from competing on the same stream. This segmentation enables parallel processing across workers while maintaining data consistency within each worker's assigned streams.
Solution Approach 2:
The patent applies local quality by allowing different index workers to have specialized responsibilities for different data streams. Each worker optimizes processing for its assigned streams, ensuring high-quality, consistent processing locally. The routing key mechanism ensures that related data is always processed by the same worker, maintaining local consistency while enabling global parallelism.
Data Source
AI summary
Methods and systems for managing data storage are disclosed. To store data, portions of data that are generated may be streamed to a storage system. The storage system may process various portions of data in parallel. To maintain ordering of some portions of the data, routing keys may be used. The routing keys may ensure that ordering between related portions of data is maintained as the portions of data are streamed and processed by the storage system.


