Flexible Schema Data Intake System for Machine Log Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Analyzing and searching massive quantities of diverse machine data generated from various sources, such as system logs, network packets, sensors, and mobile devices, is challenging due to the vast amount of data and different formats, leading to inefficiencies in data retrieval and analysis.

Innovation Solution

An event-based data intake and query system with a flexible schema that allows for late-binding schema application, enabling the storage and search of raw machine data with field-searchability, using extraction rules and configuration files to process and index data on the fly, facilitating the analysis of all generated data rather than just pre-specified subsets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If pre-processing data to extract specified data items before storage, then retrieval efficiency is improved, but data flexibility and analysis capability are reduced

Engineering Contradiction:
Improvedata retrieval speedVSAvoiddata analysis flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary indexing of raw data without pre-processing or extraction, creating an inverted index that enables efficient retrieval while preserving all original data for flexible analysis. The index is built in advance but does not alter or discard the raw data, allowing both fast retrieval and full data utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts only the indexing information (field names and values) from raw data to create search indexes, while leaving the complete raw data intact. This selective extraction enables efficient searching without compromising data flexibility or requiring pre-processing of the actual data content.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If storing massive quantities of raw data, then data flexibility and analysis capability are improved, but storage cost and data processing complexity increase

Engineering Contradiction:
Improvedata analysis flexibilityVSAvoidstorage resource consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system creates a lightweight copy of data in the form of an inverted index that stores only field names and values needed for searching, while the actual raw data is stored once in its original form. This copying approach enables efficient retrieval without duplicating the full raw data multiple times, reducing storage overhead while maintaining flexibility.

Inventive Principle:
Principle #26Copying

3Productivity

If applying fixed schema during data ingestion, then data processing efficiency is improved, but adaptability to diverse data formats is reduced

Engineering Contradiction:
Improvedata processing efficiencyVSAvoiddata format flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system uses dynamic schema application where the data schema is determined at search time rather than being fixed during ingestion. The inverted index stores raw data with flexible formatting, and schema validation or interpretation occurs dynamically when queries are executed, allowing efficient processing of diverse data formats without requiring predetermined schemas.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11915044B2Distributed task assignment in a cluster computing system
Publication Date: 2024.02.27 CISCO TECHNOLOGY INC
  • US11915044B2 patent drawing
  • US11915044B2 patent drawing
  • US11915044B2 patent drawing

AI summary

A processing node selects a first task from a task list and sends, to a task assignment repository, a first write operation with a first task identifier of the first task to assign the first task to the processing node. The processing node detects failure of the first write operation based on the first task already being assigned and selects a second task from the task list. The processing node sends, to the task assignment repository, a second write operation with a second task identifier of the second task to assign the second task to the processing node. The processing node detects success of the second write operation and executes the second task.