IP Library Granted Patent US 10,002,154
Granted Patent B1
US 10,002,154 · App. 15/813,142 · Granted Jun 19, 2018

Computer data system data source having an update propagation graph with feedback cyclicality

Inventors: David R. Kent, IV (Colorado Springs, CO); Ryan Caudy (New York, NY); Charles Wright (Cortlandt Manor, NY); Radu Teodorescu (New York, NY)
Assignee: Illumon LLC
G06F17/30368G06F17/30365G06F17/30958G06F17/30044
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 10,002,154
App. No.
15/813,142
Granted
Jun 19, 2018
Kind
B1
Abstract

Described are methods, systems and computer readable media for data source refreshing using an update propagation graph with feedback cyclicality.

Claims (66)

1. A system for updating a data object using an update propagation graph having a cyclicality feedback provider, 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:

constructing a cyclicality feedback provider including a cyclicality feedback provider object including one or more feedback data fields;

obtaining a reference to the cyclicality feedback provider object;

constructing a computer data system update propagation graph having one or more update propagation graph data fields that correspond to the one or more feedback data fields; and

adding a feedback provider listener to the computer data system update propagation graph, wherein the feedback provider listener provides feedback updates to the one or more feedback data fields of the cyclicality feedback provider object when changes to the one or more update propagation graph data fields corresponding to the one or more feedback data fields are detected, and wherein the feedback updates are provided to the one or more feedback data fields of the cyclicality feedback provider object based on a state of a logical clock and on completion of update processing for a given logical clock cycle.

2. The system of claim 1 , wherein the cyclicality feedback provider object includes a computer data system table object.

3. The system of claim 1 , wherein the update propagation graph includes a hybrid directed acyclic graph having a clock-state controlled cyclicality feedback provided by the cyclicality feedback provider and a state of a logical clock.

4. The system of claim 3 , wherein the operations further include:

determining that a logical clock has transitioned to an update state;

processing events and updates to data sources of the update propagation graph for a current logical clock cycle, wherein processing the events and updates are performed on the hybrid directed acyclic graph as if the cyclicality feedback is not present; and

after the processing events and updates has completed, providing events and updates from the cyclicality feedback provider object to one or more data objects within the update propagation graph, wherein the events and updates from the cyclicality feedback provider object will be processed through the update propagation graph in a next logical clock cycle.

5. The system of claim 4 , wherein processing events and updates to the data sources 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.

6. The system of claim 5 , wherein the operations further include:

performing a backtesting operation by providing predetermined input data to the update propagation graph as one or more events and updates to one or more data sources; and

receiving output results from the update propagation graph for each logical clock cycle.

7. The system of claim 6 , wherein the operations further include:

comparing the output results received from the update propagation graph with one or more reference values; and

generating an output signal based on the comparing.

8. A computer-implemented method for updating a data object using an update propagation graph having a cyclicality feedback provider, the method comprising:

constructing a cyclicality feedback provider including a cyclicality feedback provider object including one or more feedback data fields;

obtaining a reference to the cyclicality feedback provider object;

constructing a computer data system update propagation graph having one or more update propagation graph data fields that correspond to the one or more feedback data fields; and

adding a feedback provider listener to the computer data system update propagation graph, wherein the feedback provider listener provides feedback updates to the one or more feedback data fields of the cyclicality feedback provider object when changes to the one or more update propagation graph data fields corresponding to the one or more feedback data fields are detected, and wherein the feedback updates are provided to the one or more feedback data fields of the cyclicality feedback provider object based on a state of a logical clock and on completion of update processing for a given logical clock cycle.

9. The computer-implemented method of claim 8 , wherein the cyclicality feedback provider object includes a computer data system table object.

10. The computer-implemented method of claim 8 , wherein the update propagation graph includes a hybrid directed acyclic graph having a clock-state controlled cyclicality feedback provided by the cyclicality feedback provider and a state of a logical clock.

11. The computer-implemented method of claim 10 , further comprising:

determining that a logical clock has transitioned to an update state;

processing events and updates to data sources of the update propagation graph for a current logical clock cycle, wherein processing the events and updates are performed on the hybrid directed acyclic graph as if the cyclicality feedback is not present; and

after the processing events and updates has completed, providing events and updates from the cyclicality feedback provider object to one or more data objects within the update propagation graph, wherein the events and updates from the cyclicality feedback provider object will be processed through the update propagation graph in a next logical clock cycle.

12. The computer-implemented method of claim 11 , wherein processing events and updates to the data sources 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.

13. The computer-implemented method of claim 12 , further comprising:

performing a backtesting operation by providing predetermined input data to the update propagation graph as one or more events and updates to one or more data sources; and

receiving output results from the update propagation graph for each logical clock cycle.

14. The computer-implemented method of claim 13 , further comprising:

comparing the output results received from the update propagation graph with one or more reference values; and

generating an output signal based on the comparing.

15. 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:

constructing a cyclicality feedback provider including a cyclicality feedback provider object including one or more feedback data fields;

obtaining a reference to the cyclicality feedback provider object;

constructing a computer data system update propagation graph having one or more update propagation graph data fields that correspond to the one or more feedback data fields; and

adding a feedback provider listener to the computer data system update propagation graph, wherein the feedback provider listener provides feedback updates to the one or more feedback data fields of the cyclicality feedback provider object when changes to the one or more update propagation graph data fields corresponding to the one or more feedback data fields are detected, and wherein the feedback updates are provided to the one or more feedback data fields of the cyclicality feedback provider object based on a state of a logical clock and on completion of update processing for a given logical clock cycle.

16. The nontransitory computer readable medium of claim 15 , wherein the cyclicality feedback provider object includes a computer data system table object.

17. The nontransitory computer readable medium of claim 15 , wherein the update propagation graph includes a hybrid directed acyclic graph having a clock-state controlled cyclicality feedback provided by the cyclicality feedback provider and a state of a logical clock.

18. The nontransitory computer readable medium of claim 17 , wherein the operations further include:

determining that a logical clock has transitioned to an update state;

processing events and updates to data sources of the update propagation graph for a current logical clock cycle, wherein processing the events and updates are performed on the hybrid directed acyclic graph as if the cyclicality feedback is not present; and

after the processing events and updates has completed, providing events and updates from the cyclicality feedback provider object to one or more data objects within the update propagation graph, wherein the events and updates from the cyclicality feedback provider object will be processed through the update propagation graph in a next logical clock cycle.

19. The nontransitory computer readable medium of claim 18 , wherein processing events and updates to the data sources 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.

20. The nontransitory computer readable medium of claim 19 , wherein the operations further include:

performing a backtesting operation by providing predetermined input data to the update propagation graph as one or more events and updates to one or more data sources;

receiving output results from the update propagation graph for each logical clock cycle;

comparing the output results received from the update propagation graph with one or more reference values; and

generating an output signal based on the comparing.

Assignments (3)
CHANGE OF NAME Recorded Sep 5, 2018
From: ILLUMON LLC
To: DEEPHAVEN DATA LABS LLC
Reel/Frame 047017/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2018
From: BASRALIAN, RAFFI
To: ILLUMON LLC
Reel/Frame 046212/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2018
From: WRIGHT, CHARLES; CAUDY, RYAN; KENT, DAVID R., IV; ZELDIS, MARK; RIES, BRIAN; BARANEC, ANDREW; TEODORESCU, RADU
To: ILLUMON LLC
Reel/Frame 045848/0467 →
Continuity (1)
Provisional Application 62549908 · Aug 24, 2017
Cited By (2)
US 12,321,352 US 12,688,239