Partition Tracking Memory Limits in Distributed Query Workers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data intake and query systems face challenges in seamlessly searching and analyzing large sets of diverse data from various sources, including structured, semi-structured, and unstructured data, due to limited scope and unidirectional processing flows that restrict the ability to route data to different destinations, leading to isolated search and analytics capabilities.

Innovation Solution

A data intake and query system is developed that extends search and analytics capabilities by employing a search process master and query coordinators combined with a scalable network of distributed nodes, enabling the system to collect and process data from diverse data systems, and provide search results across internal and external data sources, including MySQL, PostgreSQL, NoSQL data stores, cloud storage, and Hadoop distributed file systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If partition tracking data is stored in memory on worker nodes, then query execution efficiency is improved, but memory capacity is exceeded when handling large-scale distributed queries

Engineering Contradiction:
Improvequery execution efficiencyVSAvoidmemory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the partition tracking system into multiple segments: local in-memory partition state trackers on worker nodes for quick access, and a centralized external storage system (HDFS/S3) for persistent partition metadata. This segmentation allows hot data to remain in memory while cold data is offloaded to external storage, resolving the memory capacity constraint.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary partition metadata service that mediates between worker nodes and external storage systems. This service cache partitions and metadata, reducing the memory burden on worker nodes while maintaining fast query execution through intelligent caching strategies.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If distributed query processing is implemented across multiple worker nodes, then data analysis capability is improved, but system complexity increases

Engineering Contradiction:
Improvedata analysis capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal partition metadata service that handles multiple functions: storing partition definitions, tracking data location, managing schema information, and coordinating query execution. This multi-functional approach consolidates complexity into a single service rather than distributing it across multiple specialized components.

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

Solution Approach 2:

The patent establishes feedback loops where worker nodes report query execution status and data location information back to the partition metadata service, which then updates partition tracking data. This feedback mechanism enables automatic adaptation to changing data distributions without manual intervention, simplifying system management.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240320231A1Addressing memory limits for partition tracking among worker nodes
Publication Date: 2024.09.26 CISCO TECHNOLOGY INC
  • US20240320231A1 patent drawing
  • US20240320231A1 patent drawing
  • US20240320231A1 patent drawing

AI summary

Systems and methods are described for distributed processing a query in a first query language utilizing a query execution engine intended for single-device execution. While distributed processing provides numerous benefits over single-device processing, distributed query execution engines can be significantly more difficult to develop that single-device engines. Embodiments of this disclosure enable the use of a single-device engine to support distributed processing, by dividing a query into multiple stages, each of which can be executed by multiple, concurrent executions of a single-device engine. Between stages, data can be shuffled between executions of the engine, such that individual executions of the engine are provided with a complete set of records needed to implement an individual stage. Because single-device engines can be significantly less difficult to develop, use of the techniques described herein can enable a distributed system to rapidly support multiple query languages.