Server-Side GraphQL Query Translation for Multi-Database Aggregation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods require constructing multiple database queries for different types of databases, such as GraphQL and Druid, which are cumbersome and not scalable, as they necessitate client-side data manipulation and resource-intensive aggregation of results for building reports and dashboards.

Innovation Solution

A method that translates a single input GraphQL query into separate database queries for multiple databases, using a GraphQL schema to generate and execute queries on respective databases, then aggregates the responses, shifting the processing load from the client to the server.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple database queries are constructed for different database types (GraphQL, Druid, etc.), then data can be retrieved from multiple databases, but the process becomes cumbersome and not scalable

Engineering Contradiction:
Improvedata retrieval capabilityVSAvoidquery construction complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a server-side query translation layer that acts as an intermediary between the client and multiple databases. The server receives a single GraphQL query from the client, translates it into appropriate queries for each database type (GraphQL, Druid, etc.), executes them, aggregates results, and returns the consolidated response. This mediator eliminates the need for clients to construct multiple database-specific queries manually.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The server implements a universal query interface that accepts GraphQL queries and automatically adapts them to work with multiple database types. Through the query translation mechanism, a single GraphQL query can retrieve data from different database systems (graph databases, time-series databases, SQL databases, etc.), making the system multi-functional and database-agnostic from the client's perspective.

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

2Productivity

If client-side data manipulation and aggregation are performed, then data can be retrieved from multiple databases, but resource consumption increases

Engineering Contradiction:
Improvedata aggregation efficiencyVSAvoidclient resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

Instead of having the client construct and aggregate multiple database queries (the conventional approach), the patent inverts the responsibility: the server performs the query translation, execution, and aggregation operations. The client simply sends a single GraphQL query and receives the aggregated result, reversing the traditional client-side processing model to reduce client resource consumption.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The server acts as an intermediary that handles the resource-intensive tasks of query translation and data aggregation. By offloading these operations to the server, the client avoids the computational burden of manipulating and aggregating data from multiple databases locally, thereby reducing client energy consumption and resource usage.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If multiple database queries are executed, then comprehensive data can be retrieved, but processing time increases

Engineering Contradiction:
Improvedata completenessVSAvoidquery execution time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The server performs preliminary translation of the GraphQL query into multiple database-specific queries before execution. It also pre-establishes the aggregation strategy and result mapping. By preparing the query structure and translation logic in advance, the actual data retrieval and aggregation process is optimized, reducing overall processing time while maintaining comprehensive data retrieval.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The server-side query translation and aggregation layer acts as an intermediary that manages the timing and coordination of multiple database queries. It batches the queries efficiently, coordinates their execution, and aggregates results in a centralized manner, reducing the total time required compared to client-side manual coordination of multiple queries.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If client-side aggregation is implemented, then data from multiple databases can be combined, but scalability is limited

Engineering Contradiction:
Improvemulti-database supportVSAvoidsystem scalability
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The server implements a centralized aggregation mechanism that handles data from multiple databases. As the system grows and more databases are added, the server's translation and aggregation infrastructure can accommodate the increased complexity without requiring changes to the client architecture. This server-centric approach enables better scalability compared to client-side aggregation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The server's universal query translation layer is designed to handle multiple database types and schemas uniformly. This universal interface allows the system to scale by adding new database types without requiring client-side modifications, as the server can translate GraphQL queries into the appropriate native query languages for each database type.

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

Data Source

PatentUS11609924B2Database query execution on multiple databases
Publication Date: 2023.03.21 CITRIX SYSTEMS INC
  • US11609924B2 patent drawing
  • US11609924B2 patent drawing
  • US11609924B2 patent drawing

AI summary

A method is provided for converting a single database query into multiple database queries for multiple databases and aggregating the results of each of the queries. The method includes receiving, from a calling device, an input database query including a selection set defining an aggregation key, at least one first field to be queried in a first database, and at least one second field to be queried in a second database, generating a first database query representing a first request to retrieve the at least one first field from the first database, generating a second database query representing a second request to retrieve the at least one second field from the second database, aggregating the first response and a second response to the second database query from the first database to produce an aggregated response, and providing the aggregated response to the calling device.