IP Library Granted Patent US 11,886,433
Granted Patent B2
US 11,886,433 · App. 17/572,076 · Granted Jan 30, 2024

Dynamic data batching for graph-based structures

Inventors: Manyanda Chitimbo (Créteil, FR); Wojciech Julian Trocki (Waterford, IE)
Assignee: Red Hat, Inc.
G06F16/2455G06F16/284
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,886,433
App. No.
17/572,076
Granted
Jan 30, 2024
Kind
B2
Abstract

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.

Claims (46)

1. A method comprising:

receiving a data query to retrieve first data associated with a first data node managed by a first executable service and to retrieve second data associated with a second data node managed by a second executable service, wherein the first executable service comprises first computer instructions to execute to retrieve the first data of the first data node in response to at least a portion of the data query, wherein the data query comprises a subquery that is directed to the second executable service for access to the second data node, wherein the second executable service comprises second computer instructions to execute to retrieve the second data of the second data node in response to the subquery, and wherein the subquery comprises a data request for the second data from the second executable service to be performed for each resulting first data from the first executable service;

determining from the data query a selection set of the data query, the selection set comprising the first data node and the second data node; and

aggregating query parameters of the data query to generate, by a processing device and in view of the selection set, a batch access request to the second executable service that retrieves data for the subquery from the second data node in a single access request.

2. The method of claim 1 , further comprising determining from the data query an argument set of the data query, the argument set comprising a plurality of criteria for the data retrieved from the second data node, and

wherein the aggregating the query parameters of the data query to generate the batch access request to the second executable service is further in view of the argument set.

3. The method of claim 1 , wherein the aggregating the query parameters of the data query to generate the batch access request to the second executable service comprises adjusting the selection set based on contents of a data cache associated with the second data node, and

wherein the method further comprises adding to the data cache at least a portion of the data retrieved from the second executable service to the batch access request.

4. The method of claim 1 , further comprising generating metadata in view of a first schema associated with the first executable service and a second schema associated with the second executable service,

wherein the first and second data nodes are respectively associated with a first data store and a second data store, the metadata comprising a mapping between the first data node and the first data store and between the second data node and the second data store, and

wherein the determining of the selection set of the data query is in view of at least the metadata.

5. The method of claim 1 , wherein the first data node is associated with a first data store having a first type, and

wherein the second data node is associated with a second data store having a second type that is different from the first type.

6. The method of claim 5 , wherein the first data store is a relational database and the second data store is a non-relational database.

7. The method of claim 1 , wherein the data query is a graph-based query.

8. An apparatus comprising:

a memory; and

a processing device, operatively coupled to the memory, to:

receive a data query to retrieve first data associated with a first data node managed by a first executable service and to retrieve second data associated with a second data node managed by a second executable service, wherein the first executable service comprises first computer instructions to execute to retrieve the first data of the first data node in response to at least a portion of the data query, wherein the data query comprises a subquery that is directed to the second executable service for access to the second data node, wherein the second executable service comprises second computer instructions to execute to retrieve the second data of the second data node in response to the subquery, and wherein the subquery comprises a data request for the second data from the second executable service to be performed for each resulting first data from the first executable service;

determine from the data query a selection set of the data query, the selection set comprising the first data node and the second data node; and

aggregate query parameters of the data query to generate, in view of the selection set, a batch access request to the second executable service that retrieves data for the subquery from the second data node in a single access request.

9. The apparatus of claim 8 , wherein the processing device is further to determine from the data query an argument set of the data query, the argument set comprising a plurality of criteria for the data retrieved from the second data node, and

wherein the processing device is to aggregate the query parameters of the data query to generate the batch access request to the second executable service further in view of the argument set.

10. The apparatus of claim 8 , wherein to aggregate the query parameters of the data query to generate the batch access request to the second executable service the processing device is further to adjust the selection set based on contents of a data cache associated with the second data node, and

wherein the processing device is further to add to the data cache at least a portion of the data retrieved from the second executable service to the batch access request.

11. The apparatus of claim 8 , wherein the processing device is further to generate metadata in view of a first schema associated with the first executable service and a second schema associated with the second executable service,

wherein the first and second data nodes are respectively associated with a first data store and a second data store, the metadata comprising a mapping between the first data node and the first data store and between the second data node and the second data store, and

wherein the processing device is to determine the selection set of the data query in view of at least the metadata.

12. The apparatus of claim 8 , wherein the first data node is associated with a first data store having a first type, and

wherein the second data node is associated with a second data store having a second type that is different from the first type.

13. The apparatus of claim 12 , wherein the first data store is a relational database and the second data store is a non-relational database.

14. The apparatus of claim 8 , wherein the data query is a graph-based query.

15. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

receive a data query to retrieve first data associated with a first data node managed by a first executable service and to retrieve second data associated with a second data node managed by a second executable service, wherein the first executable service comprises first computer instructions to execute to retrieve the first data of the first data node in response to at least a portion of the data query, wherein the data query comprises a subquery that is directed to the second executable service for access to the second data node, wherein the second executable service comprises second computer instructions to execute to retrieve the second data of the second data node in response to the subquery, and wherein the subquery comprises a data request for the second data from the second executable service to be performed for each resulting first data from the first executable service;

determine from the data query a selection set of the data query, the selection set comprising the first data node and the second data node; and

aggregate query parameters of the data query to generate, by the processing device and in view of the selection set, a batch access request to the second executable service that retrieves data for the subquery from the second data node in a single access request.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the processing device is further to determine from the data query an argument set of the data query, the argument set comprising a plurality of criteria for the data retrieved from the second data node, and

wherein the processing device is to aggregate the query parameters of the data query to generate the batch access request to the second executable service further in view of the argument set.

17. The non-transitory computer-readable storage medium of claim 15 , wherein to aggregate the query parameters of the data query to generate the batch access request to the second executable service the processing device is further to adjust the selection set based on contents of a data cache associated with the second data node, and

wherein the processing device is further to add to the data cache at least a portion of the data retrieved from the second executable service to the batch access request.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the processing device is further to generate metadata in view of a first schema associated with the first executable service and a second schema associated with the second executable service,

wherein the first and second data nodes are respectively associated with a first data store and a second data store, the metadata comprising a mapping between the first data node and the first data store and between the second data node and the second data store, and

wherein the processing device is to determine the selection set of the data query in view of at least the metadata.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the first data node is associated with a first data store having a first type, and

wherein the second data node is associated with a second data store having a second type that is different from the first type.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the data query is a graph-based query.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2022
From: CHITIMBO, MANYANDA; TROCKI, WOJCIECH JULIAN
To: RED HAT, INC.
Reel/Frame 058606/0980 →
Continuity (1)
Related Publication 20230222125A1 · Jul 13, 2023