Dynamic Query Engine Selection for Heterogeneous Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge lies in efficiently identifying and utilizing query engines for data operations across various datasets stored in heterogeneous data storage environments, as existing approaches often require manual selection and reconfiguration, leading to inefficiencies and resource wastage due to temporary outages, data migrations, or the availability of new query engines with enhanced capabilities.

Innovation Solution

The system dynamically selects a target query engine by mapping logical data statements to a virtual data model, analyzing statement and query engine attributes, and applying selection rules to generate a physical plan optimized for the chosen engine, thereby reducing resource demands and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data statements are structured for a specific target query engine to optimize performance, then query execution efficiency is improved, but the system loses adaptability when the target query engine becomes unavailable or new engines emerge

Engineering Contradiction:
Improvequery execution efficiencyVSAvoidquery engine adaptability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic query engine selection by evaluating multiple available query engines at runtime based on current system conditions, data characteristics, and engine capabilities. Instead of statically binding data statements to a single query engine, the system dynamically determines the optimal engine for each query execution, allowing adaptation to engine availability changes and performance variations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal query processing framework that can interface with multiple different query engines through a common abstraction layer. This multi-functional architecture allows the same data statements to be executed on different query engines by translating and adapting them appropriately, enabling the system to leverage multiple engines for different queries or fallback options.

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

2Reliability

If multiple query engines are maintained in heterogeneous data storage environments, then system versatility and fault tolerance are improved, but the complexity of identifying and managing appropriate query engines increases

Engineering Contradiction:
Improvesystem fault toleranceVSAvoidquery engine management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary query engine selection layer that sits between the data statements and multiple query engines. This mediator evaluates query characteristics, engine attributes, and availability information to automatically select the appropriate engine, eliminating the need for users to manually manage or understand the complexity of multiple engine configurations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms that monitor query engine performance, availability, and system conditions in real-time. This feedback information is used to dynamically adjust query engine selection decisions, ensuring that the system automatically adapts to changing conditions such as engine outages, performance degradation, or new engine availability without manual intervention.

Inventive Principle:
Principle #23Feedback

3Manufacturing precision

If manual selection and reconfiguration of query engines is performed, then specific query optimization can be achieved, but significant human effort and resource wastage occur due to outages, migrations, or new engine availability

Engineering Contradiction:
Improvequery optimization precisionVSAvoidhuman effort and reconfiguration time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent enables the system to automatically select and reconfigure query engines without human intervention. The query engine selection framework autonomously evaluates available engines, monitors their status, and makes optimization decisions based on current conditions, eliminating the need for manual selection and reconfiguration while maintaining or improving query optimization quality.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary evaluation and selection of query engines in advance, maintaining an updated understanding of available engines and their characteristics. This preliminary action allows the system to quickly make optimal selection decisions when queries are executed, avoiding the need for time-consuming manual reconfiguration when conditions change.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10713248B2Query engine selection
Publication Date: 2020.07.14 ATSCALE INC
  • US10713248B2 patent drawing
  • US10713248B2 patent drawing
  • US10713248B2 patent drawing

AI summary

Techniques are presented for rule-based selection of query engines for performing data operations on a variety of datasets stored in heterogeneous data storage environments. Data statements for a subject dataset are mapped to a logical data structure representation of the subject dataset to formulate a logical plan for the data statements. The data statements are analyzed to derive a set of statement attributes associated with the data statements. Query engine attributes describing the query engines available to query various instances of the subject dataset are accessed. A set of query engine selection rules are evaluated subject to the statement attributes and/or the query engine attributes to dynamically select a target query engine for the data statements. A physical plan structured for the target query engine is generated from the logical plan. The physical plan is executed on the target query engine to perform data operations on the subject dataset.