Back to results
US 9,805,084 B2Granted
Computer data system data source refreshing using an update propagation graph
OwnerCharles Wright, Ryan Caudy +3inventors
InventorsCharles Wright, Ryan Caudy, David R. Kent, IV, Herve Bronnimann, Radu Teodorescu
Life of this patent
Estimating the term…
Abstract
Described are methods, systems and computer readable media for data source refreshing.
Claims19
A system for updating a data object using an update propagation graph, 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, at a remote query processor, a first query from a client, the first query referencing a plurality of data objects including one or more data sources;
- determining dependencies between the data objects in the first query;
- generating an update propagation graph (UPG) in a context of the remote query processor based on the first query, the UPG having a plurality of nodes each corresponding to one of the data objects, the UPG having a structure representing the dependencies between the data objects in the first query;
- determining a logical clock has transitioned to an updating state;
- processing one or more changes to one or more corresponding data sources, wherein the changes are processed according to an order determined by the UPG, wherein change processing for each data source includes:
- invoking a data source refresh method for a data source for which changes are being processed;
- determining whether a priority queue for the data source is empty;
- when the priority queue is not empty, retrieving a next change notification message from the priority queue and delivering the change notification to a corresponding data source and repeating determining whether the priority is queue is empty;
- and
- when the priority queue is empty, setting the logical clock to an idle state;
- updating the structure of the UPG in response to a second query being executed by the remote query processor;
- and
- after the updating, processing another one or more changes according to a different order determined by the updated UPG.
11 more elements
A method for updating a data object using an update propagation graph, the method comprising:
- receiving, at a remote query processor, a first query from a client, the first query referencing a plurality of data objects including one or more data sources;
- determining dependencies between the data objects in the first query;
- generating an update propagation graph (UPG) in a context of the remote query processor based on the first query, the UPG having a plurality of nodes each corresponding to one of the data objects, the UPG having a structure representing the dependencies between the data objects in the first query;
- determining a logical clock has transitioned to an updating state;
- processing one or more changes to one or more corresponding data sources, wherein the changes are processed according to an order determined by the UPG, wherein change processing for each data source includes:
- invoking a data source refresh method for a data source for which changes are being processed;
- determining whether a priority queue for the data source is empty;
- when the priority queue is not empty, retrieving a next change notification message from the priority queue and delivering the change notification to a corresponding data source and repeating determining whether the priority is queue is empty;
- and
- when the priority queue is empty, setting the logical clock to an idle state;
- updating the structure of the UPG in response to a second query being executed by the remote query processor;
- and
- after the updating, processing another one or more changes according to a different order determined by the updated UPG.
10 more elements
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, at a remote query processor, a first query from a client, the first query referencing a plurality of data objects including one or more data sources;
- determining dependencies between the data objects in the first query;
- generating an update propagation graph (UPG) in a context of the remote query processor based on the first query, the UPG having a plurality of nodes each corresponding to one of the data objects, the UPG having a structure representing the dependencies between the data objects in the first query;
- determining a logical clock has transitioned to an updating state;
- processing one or more changes to one or more corresponding data sources, wherein the changes are processed according to an order determined by the UPG, wherein change processing for each data source includes:
- invoking a data source refresh method for a data source for which changes are being processed;
- determining whether a priority queue for the data source is empty;
- when the priority queue is not empty, retrieving a next change notification message from the priority queue and delivering the change notification to a corresponding data source and repeating determining whether the priority is queue is empty;
- and
- when the priority queue is empty, setting the logical clock to an idle state;
- updating the structure of the UPG in response to a second query being executed by the remote query processor;
- and
- after the updating, processing another one or more changes according to a different order determined by the updated UPG.
10 more elements
Dependencies are inferred from the claim text.