Data Intake System Using Message Queue for High Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Analyzing and searching massive quantities of diverse machine data from various sources in data centers and networks is challenging due to the vast types and formats of data generated, requiring efficient data intake and query systems that can handle real-time processing and storage.

Innovation Solution

A data intake and query system utilizing ingestors, a message bus, and indexers to dynamically scale data ingestion and indexing processes, allowing for flexible schema management and late-binding schema application during search time, enabling efficient storage and retrieval of minimally processed machine data across disparate data sources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data from multiple sources is ingested and indexed in real-time, then data throughput and processing speed are improved, but system complexity and resource requirements increase

Engineering Contradiction:
Improvedata throughputVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments data processing into distinct modular components: forwarders collect data from sources, ingestors receive and validate data, indexers process and index data, and searchers query the indexed data. Each component operates independently with well-defined interfaces, allowing the system to handle high throughput while maintaining manageable complexity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary components between data sources and the indexing system. Forwarders act as intermediaries between diverse data sources and the ingestors, providing a standardized interface for data collection. This mediation layer simplifies the overall system architecture by handling source-specific variations in a uniform manner.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If data is minimally processed and stored in raw format, then data resiliency and flexibility are improved, but storage requirements and processing overhead increase

Engineering Contradiction:
Improvedata resiliencyVSAvoidstorage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary minimal processing of data during ingestion, including validation and basic formatting, while preserving the original data content. This preliminary action ensures data quality and consistency without excessive processing that would lose information, achieving a balance between data resiliency and storage efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements flexible schema management where data parameters and structures can be dynamically adjusted. The system can adapt to different data formats and types without requiring complete reprocessing, allowing minimal processing to be applied selectively based on data characteristics, thereby reducing overall processing overhead while maintaining data integrity.

Inventive Principle:
Principle #35Parameter changes

3Manufacturing precision

If schema validation is performed at ingestion time, then data quality is improved, but processing speed and throughput decrease

Engineering Contradiction:
Improvedata qualityVSAvoidprocessing speed
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system applies partial schema validation at ingestion time, performing essential checks to ensure basic data quality while skipping more intensive validation routines. This partial action approach maintains acceptable data quality standards without the full processing overhead of complete validation, thereby preserving processing speed and throughput.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The validation process is made dynamic and configurable. The system can adjust the level of validation applied based on data source, data type, and system load conditions. During high-throughput periods, validation can be relaxed; during lower-load periods, more stringent validation can be applied, optimizing the balance between data quality and processing speed.

Inventive Principle:
Principle #15Dynamics

4Quantity of substance

If the system scales to handle massive quantities of data, then data capacity is improved, but infrastructure costs and operational complexity increase

Engineering Contradiction:
Improvedata capacityVSAvoidoperational complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent designs components with universal interfaces and standardized protocols that can handle multiple data types and sources uniformly. This multi-functionality allows the system to scale capacity by adding identical standardized components rather than requiring specialized infrastructure for each data type, thereby increasing data capacity while limiting the growth of operational complexity.

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

Data Source

PatentUS11615082B1Using a data store and message queue to ingest data for a data intake and query system
Publication Date: 2023.03.28 CISCO TECHNOLOGY INC
  • US11615082B1 patent drawing
  • US11615082B1 patent drawing
  • US11615082B1 patent drawing

AI summary

A data intake and query system can ingest and index large amounts of data using one or more ingestors and indexers. The ingestors can ingest incoming data and use it to generate events. The ingestor can group the events and prepare them for communication to a message bus. The ingestor can determine a size of the group of events. If the size of the group of events satisfies a message size threshold, the ingestor can store the group of events to a data store, obtain a reference to the group of events, and communicate the reference to the group of events to a message queue. An indexer can obtained the reference from the message queue and use the reference to obtain the group of events from the data store.