Dynamic Data Batching for Graph-Based Microservice Queries
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In microservice architectures, graph-oriented APIs like GraphQL lead to inefficiencies due to multiple accesses of the same data elements, degrading performance as data sets grow and queries become more complex, with conventional solutions being inflexible and requiring manual mapping that reduces the benefits of separating data storage structure from data.
Innovation Solution
The dynamic request generation component analyzes the graph structure and incoming queries to reformulate them using a batching method, reducing multiple node requests into a single function or request, dynamically adjusting to changes in the data structure without additional user input.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If graph-oriented APIs like GraphQL are used to provide access to microservice architectures, then data access flexibility and separation of storage structure from data are improved, but performance degrades due to multiple accesses of the same data elements
Solution Approach 1:
The system performs preliminary analysis of the incoming query against the graph schema to identify all data elements that will be accessed before the query is executed. This advance planning enables the system to prepare batching strategies that consolidate redundant accesses, thereby maintaining query flexibility while preventing performance degradation from repeated data element accesses.
Solution Approach 2:
The patent merges multiple individual data element accesses into consolidated batch operations. By identifying redundant accesses during query analysis and combining them into single retrieval operations, the system maintains the flexible data access patterns of GraphQL while eliminating the performance penalty of repeated accesses to the same data elements.
2Productivity
If conventional solutions with manual mapping are used to address performance issues, then performance can be improved, but the system becomes inflexible and requires manual mapping that reduces the benefits of separating data storage structure from data
Solution Approach 1:
The system performs self-service by automatically analyzing incoming queries against the graph schema and generating optimized batching plans without requiring manual mapping configurations. This automated approach maintains system flexibility and adaptability while achieving performance improvements, as the system adapts to each query's specific requirements rather than relying on pre-defined manual mappings.
Solution Approach 2:
The patent implements dynamic query optimization that adapts to each incoming query's characteristics. Rather than using static manual mappings, the system dynamically analyzes the query structure, identifies access patterns, and generates appropriate batching strategies in real-time. This dynamic approach preserves system flexibility while delivering performance improvements tailored to each query's specific needs.
3Measurement precision
If multiple individual node requests are made in graph-based queries, then data access precision is improved, but resource usage increases and performance degrades as data sets grow
Solution Approach 1:
The system merges multiple individual node requests into consolidated batch operations while preserving precise data access. By identifying redundant accesses during query analysis and combining them into single batch retrieval operations, the system maintains the precision needed to access specific data elements while dramatically reducing the total number of requests and associated resource consumption.
Solution Approach 2:
The patent changes the parameter of request granularity from individual node requests to batched operations. This parameter change allows the system to maintain precise control over which data elements are accessed while reducing the frequency of access operations. The batching strategy dynamically adjusts request parameters to optimize the balance between access precision and resource efficiency.
Data Source
AI summary
A data query for data is received that is associated with a first data node managed by a first executable service and a second data node managed by a second executable service. The data query comprises a subquery that is directed to the second executable service for access to the second data node. From the data query, a selection set is determined. The selection set includes the first data node and the second data node. In view of the selection set, a batch access request is generated to the second executable service that retrieves data for the subquery from the second data node in a single access request.


