Scheduler for Distributed Data Acquisition and Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Collecting data from complex sources is inefficient due to the need for manual planning, varying load profiles, and difficulties in ensuring global data collection objectives are met, leading to errors and labor-intensive script management across multiple resources.

Innovation Solution

A scheduler dynamically assigns data-collection tasks to forwarders, managing credentials and metadata to balance load and maintain consistency, using configuration tokens to execute tasks efficiently across a network of forwarders, and indexing data for processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data collection is performed manually from multiple complex sources, then data can be collected, but the process is labor-intensive, error-prone, and difficult to manage

Engineering Contradiction:
Improvedata collection efficiencyVSAvoidscript management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A scheduler system is introduced as an intermediary between data collection requirements and forwarder execution. The scheduler manages task queues, assigns jobs to forwarders, and coordinates data collection efforts across multiple sources, eliminating the need for manual script management while maintaining efficient productivity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service through automated task assignment and load balancing. Forwarders automatically receive and execute data collection tasks based on their current load, and the scheduler dynamically reassigns tasks when forwarders become unavailable, creating a self-managing system that reduces human intervention

Inventive Principle:
Principle #25Self-service

2Productivity

If data collection tasks are distributed across multiple forwarders, then productivity increases, but load balancing and task assignment become complex

Engineering Contradiction:
Improvedata collection throughputVSAvoidtask assignment management
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The scheduler implements dynamic task assignment that adapts to changing system conditions. Task assignments are not static but are continuously adjusted based on forwarder availability, current load, and task priorities, allowing the system to maintain optimal productivity without complex manual management

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms where forwarders report their status and task completion to the scheduler. This feedback loop enables automatic load balancing, as the scheduler receives real-time information about forwarder capacity and dynamically reassigns tasks to maintain balanced workloads across all forwarders

Inventive Principle:
Principle #23Feedback

3Reliability

If manual script management is used for each data source, then data collection can be performed, but errors increase and maintenance becomes labor-intensive

Engineering Contradiction:
Improvedata collection accuracyVSAvoidscript maintenance effort
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

Instead of managing unique scripts for each data source, the system uses standardized task templates and configurations that can be copied and reused. The scheduler manages these standardized task definitions, ensuring consistency across all data collection operations while reducing maintenance effort through template-based management

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11755371B1Data intake and query system with distributed data acquisition, indexing and search
Publication Date: 2023.09.12 CISCO TECHNOLOGY INC
  • US11755371B1 patent drawing
  • US11755371B1 patent drawing
  • US11755371B1 patent drawing

AI summary

A scheduler manages execution of a plurality of data-collection jobs, assigns individual jobs to specific forwarders in a set of forwarders, and generates and transmits tokens (e.g., pairs of data-collection tasks and target sources) to assigned forwarders. The forwarder uses the tokens, along with stored information applicable across jobs, to collect data from the target source and forward it onto an indexer for processing. For example, the indexer can then break a data stream into discrete events, extract a timestamp from each event and index (e.g., store) the event based on the timestamp. The scheduler can monitor forwarders' job performance, such that it can use the performance to influence subsequent job assignments. Thus, data-collection jobs can be efficiently assigned to and executed by a group of forwarders, where the group can potentially be diverse and dynamic in size.