Computer data system data source refreshing using an update propagation graph having a merged join listener
First Claim
Patent Images
1. A system for updating a data object using update propagation graphs and merged join listeners to determine consistent join update processing, the system comprising:
- one or more hardware processors coupled to a nontransitory computer readable medium having stored thereon software instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including;
receiving a request to perform a join operation on a plurality of objects;
creating an update propagation graph (UPG) for propagating updates to a result of the join operation;
adding a merged join listener to the UPG as a child of the plurality of objects;
adding a join result structure to the UPG as a child of the merged join listener;
propagating updates through the UPG, including the merged join listener combining update notifications from the plurality of objects for a given update clock cycle into a merged notification and delivering the merged notification to the join result structure'"'"'s node of the UPG during that clock cycle to provide a consistent representation of updates to all sides of the join operation to the join result structure node, the merged join listener combining comprising;
for each current notification received at the merged join listener during the given update clock cycle;
determining whether a priority queue includes an existing notification from the merged notification listener for the given clock cycle, the priority queue comprising a plurality of elements, each of the elements having an associated node of the UPG and an associated priority such that a first element with a first priority is served before a second element with a second priority lower than the first priority, the priority of each of the elements of the priority queue being determined based on an arrangement of nodes within the UPG,when the priority queue includes an existing notification from the merged notification listener for the given clock cycle, updating, responsive to the determining, the existing notification to include an additional notification based on the current notification, andwhen the priority queue does not include an existing notification from the merged notification listener for the given clock cycle, adding a new notification to the priority queue based on the current notification; and
receiving the merged notification at the join result structure node and applying changes to update the result of the join operation in a consistent manner without having to re-execute the full join operation.
3 Assignments
0 Petitions
Accused Products
Abstract
Described are methods, systems and computer readable media for data source refreshing using an update propagation graph having a merged join listener.
-
Citations
30 Claims
-
1. A system for updating a data object using update propagation graphs and merged join listeners to determine consistent join update processing, the system comprising:
one or more hardware processors coupled to a nontransitory computer readable medium having stored thereon software instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including; receiving a request to perform a join operation on a plurality of objects; creating an update propagation graph (UPG) for propagating updates to a result of the join operation; adding a merged join listener to the UPG as a child of the plurality of objects; adding a join result structure to the UPG as a child of the merged join listener; propagating updates through the UPG, including the merged join listener combining update notifications from the plurality of objects for a given update clock cycle into a merged notification and delivering the merged notification to the join result structure'"'"'s node of the UPG during that clock cycle to provide a consistent representation of updates to all sides of the join operation to the join result structure node, the merged join listener combining comprising; for each current notification received at the merged join listener during the given update clock cycle; determining whether a priority queue includes an existing notification from the merged notification listener for the given clock cycle, the priority queue comprising a plurality of elements, each of the elements having an associated node of the UPG and an associated priority such that a first element with a first priority is served before a second element with a second priority lower than the first priority, the priority of each of the elements of the priority queue being determined based on an arrangement of nodes within the UPG, when the priority queue includes an existing notification from the merged notification listener for the given clock cycle, updating, responsive to the determining, the existing notification to include an additional notification based on the current notification, and when the priority queue does not include an existing notification from the merged notification listener for the given clock cycle, adding a new notification to the priority queue based on the current notification; and receiving the merged notification at the join result structure node and applying changes to update the result of the join operation in a consistent manner without having to re-execute the full join operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method comprising:
-
receiving, at a query processor, a request to perform a join operation on a plurality of objects; creating, at the query processor, an update propagation graph (UPG) for propagating updates to a result of the join operation; adding a merged join listener to the UPG as a child of the plurality of objects; adding a join result to the UPG as a child of the merged join listener; propagating updates through the UPG, including the merged join listener combining update notifications from the plurality of objects for a given update clock cycle into a merged notification and delivering the merged notification to the join result'"'"'s node of the UPG during that clock cycle to provide a consistent representation of updates to all sides of the join operation to the join result node, the propagating comprising processing notifications using a priority queue, the priority queue comprising a plurality of elements, each of the elements having an associated node of the UPG and an associated priority such that a first element with a first priority is served before a second element with a second priority lower than the first priority, the priority of each of the elements of the priority queue being determined based on an arrangement of nodes within the UPG; and receiving the merged notification at the join result node and applying changes to update the result of the join operation in a consistent manner without having to re-execute the full join operation. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A nontransitory computer readable medium having stored thereon software instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:
-
receiving a request to perform a join operation on a plurality of objects; creating an update propagation graph (UPG) for propagating updates to a result of the join operation; adding a merged join listener to the UPG as a child of the plurality of objects; adding a join result structure to the UPG as a child of the merged join listener; propagating updates through the UPG, including the merged join listener combining update notifications from the plurality of objects for a given update clock cycle into a merged notification and delivering the merged notification to the join result structure'"'"'s node of the UPG during that clock cycle to provide a consistent representation of updates to all sides of the join operation to the join result structure node, the propagating comprising processing notifications using a priority queue, the priority queue comprising a plurality of elements, each of the elements having an associated node of the UPG and an associated priority such that a first element with a first priority is served before a second element with a second priority lower than the first priority, the priority of each of the elements of the priority queue being determined based on an arrangement of nodes within the UPG; and receiving the merged notification at the join result structure node and applying changes to update the result of the join operation in a consistent manner without having to re-execute the full join operation. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
-
29. A system comprising:
-
one or more hardware processors coupled to a nontransitory computer readable medium having stored thereon software instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including; receiving a request to perform a join operation on a plurality of data sources; creating an update propagation graph (UPG) for propagating updates to a result of the join operation; adding a merged join listener to the UPG as a child of the plurality of objects; adding a join result structure to the UPG as a child of the merged join listener; propagating updates through the UPG, including the merged join listener combining update notifications from the plurality of objects for a given update clock cycle into a merged notification and delivering the merged notification to the join result structure'"'"'s node of the UPG during that clock cycle to provide a consistent representation of updates to all sides of the join operation to the join result structure node, the propagating comprising processing notifications using a priority queue, the priority queue comprising a plurality of elements, each of the elements having an associated node of the UPG and an associated priority such that a first element with a first priority is served before a second element with a second priority lower than the first priority, the priority of each of the elements of the priority queue being determined based on an arrangement of nodes within the UPG; and receiving the merged notification at the join result structure node and applying changes to update the result of the join operation in a consistent manner without having to re-execute the full join operation. - View Dependent Claims (30)
-
Specification