IP Library Granted Patent US 11,449,557
Granted Patent B2
US 11,449,557 · App. 16/988,143 · Granted Sep 20, 2022

Computer data distribution architecture for efficient distribution and synchronization of plotting processing and data

Inventors: Ryan Caudy (New York, NY); David R. Kent, IV (Colorado Springs, CO); Charles Wright (Cortlandt Manor, NY); Devon Patrick Allison (Colorado Springs, CO); Raffi Basralian (New York, NY)
Assignee: Deephaven Data Labs LLC
G06F16/90335G06F3/0481G06F16/128G06F16/21G06F16/221G06F16/23G06F16/235G06F16/2358G06F16/2365G06F16/2372G06F16/27G06F16/289G06F16/532G06F16/901G06F16/904G06F16/9024G06F16/9038G06T11/206G06F12/0253G06F16/489
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,449,557
App. No.
16/988,143
Granted
Sep 20, 2022
Kind
B2
Abstract

Described are methods, systems and computer readable media for computer data distribution architecture for efficient distribution and synchronization of plotting processing and data.

Claims (73)

1. A computer database system comprising:

one or more processors;

computer readable storage coupled to the one or more processors, the computer readable storage having stored thereon 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 plot command to generate a plot at a client computer, the plot command referencing a first object, the first object being updatable by propagating updates through an update propagation graph associated with the first object;

generating, at the remote query processor, a plotting data structure comprising an export object handle referencing at least a portion of the first object;

transmitting, at the remote query processor, one or more messages to the client computer, the one or more messages comprising the plotting data structure and an initial snapshot of the first object;

receiving, at the client computer, the one or more messages comprising the plotting data structure and the initial snapshot from the remote query processor;

creating, at the client computer, a local object to represent a replica of the portion of the first object referenced by the export object handle;

storing, at the client computer, the initial snapshot as the replica of the portion of the first object referenced by the export object handle;

assigning, at the client computer, the replica as an input to a figure to be displayed in a graphical user interface;

generating, at the client computer, a graphical figure comprising the plot based on the plotting data structure and the replica of the portion of the first object referenced by the export object handle;

adding at the remote query processor a first listener to the update propagation graph as a dependent of the first object;

receiving, at the first listener, an update notification indicating an update to the first object;

sending, by the remote query processor, a notification to the client computer including an indication of the change to the first object and a copy of any changed data;

responsive to receiving the notification at the client computer, updating the replica of the portion of the first object referenced by the export object handle; and

updating, at the client computer, the graphical figure comprising the plot based on the plotting data structure and the updated replica of the portion of the first object referenced by the export object handle.

2. The system of claim 1 , wherein the plotting data structure comprises the initial snapshot.

3. The system of claim 1 , the operations further including:

receiving, at the client computer, a request for the graphical figure from a remote computer; and

transmitting, at the client computer, the graphical figure in an image format to the remote computer.

4. The system of claim 3 , wherein the image format is selected from a group consisting of JPEG, GIF, PNG, SVG, and PDF.

5. The system of claim 1 , wherein the updating the graphical figure is performed after at least a portion of the graphical figure is visible in the graphical user interface.

6. The system of claim 1 , wherein the updating the graphical figure is throttled such that the updating is performed as part of a batch update.

7. The system of claim 1 , wherein the plotting data structure comprises a second export object handle referencing a second object to define an attribute of the plot.

8. The system of claim 1 , wherein the first object is a table and the reference is an export table handle.

9. The system of claim 1 , wherein the operations further include:

determining that the graphical figure is not being displayed by the client computer; and

responsive to the determining that the graphical figure is not being displayed, setting a mode of the plot to a sleep mode.

10. The system of claim 9 , wherein the sleep mode ignores or prevents redraw events for the plot.

11. A method comprising:

generating, at a remote query processor, a plotting data structure comprising a reference to a first object associated with a plot, the first object being updatable by propagating updates through an update propagation graph associated with the first object;

transmitting, at the remote query processor, one or more messages to a client computer, the one or more messages comprising the plotting data structure and an initial snapshot of the first object;

receiving, at the client computer, the one or more messages comprising the plotting data structure and the initial snapshot from the remote query processor;

storing, at the client computer, the initial snapshot as a local version of the first object associated with the plot;

generating, at the client computer, a graphical figure comprising the plot based on the plotting data structure and the local version of the first object associated with the plot;

receiving, at the client computer, a notification including an indication of a change to the first object and a copy of changed data;

responsive to receiving the notification at the client computer, updating, at the client computer, the local version of the first object associated with the plot; and

updating, at the client computer, the graphical figure comprising the plot based on the plotting data structure and the updated local version of the first object.

12. The method of claim 11 , wherein the plotting data structure comprises the initial snapshot.

13. The method of claim 11 , the operations further including:

receiving, at the client computer, a request for the graphical figure from a remote computer; and

transmitting, at the client computer, the graphical figure in an image format to the remote computer in response to the request from the remote computer.

14. The method of claim 13 , wherein the image format is selected from a group consisting of JPEG, GIF, PNG, SVG, and PDF.

15. The method of claim 11 , wherein the updating the graphical figure is performed after at least a portion of the graphical figure is visible in a graphical user interface.

16. The method of claim 11 , wherein the updating the graphical figure is throttled such that the updating is performed as part of a batch update.

17. The method of claim 11 , wherein the plotting data structure comprises a second reference to a second object to define an attribute of the plot.

18. The method of claim 11 , the operations further comprising automatically subscribing, at the remote query processor, the client computer to receive consistent updates to the first object.

19. The method of claim 11 , wherein the first object is a table and the reference is an export table handle.

20. The method of claim 11 , further comprising:

determining that the graphical figure is not being displayed by the client computer; and

responsive to the determining that the graphical figure is not being displayed, setting a mode of the plot to a sleep mode.

21. The method of claim 20 , wherein the sleep mode stops updates to the first object from being received.

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

generating, at a remote query processor, a plotting data structure comprising a reference to a first object associated with a plot, the first object being updatable by propagating updates through an update propagation graph associated with the first object;

transmitting, at the remote query processor, one or more messages to a client computer, the one or more messages comprising the plotting data structure and an initial snapshot of the first object;

receiving, at the client computer, the one or more messages comprising the plotting data structure and the initial snapshot from the remote query processor;

storing, at the client computer, the initial snapshot as a local copy of the first object associated with the plot;

generating, at the client computer, a graphical figure comprising the plot based on the plotting data structure and the local copy of the first object associated with the plot;

receiving, at the client computer, a notification including an indication of a change to the first object;

responsive to receiving the notification at the client computer, updating, at the client computer, the local copy of the first object associated with the plot; and

updating, at the client computer, the graphical figure comprising the plot based on the plotting data structure and the updated local copy of the first object.

23. The nontransitory computer readable medium of claim 22 , wherein the plotting data structure comprises the initial snapshot.

24. The nontransitory computer readable medium of claim 22 , the operations further including:

receiving, at the client computer, a request for the graphical figure from a remote computer; and

transmitting, at the client computer, the graphical figure in an image format to the remote computer in response to the request from the remote computer.

25. The nontransitory computer readable medium of claim 22 , wherein the updating the graphical figure is performed only when at least a portion of the graphical figure is visible in a graphical user interface.

26. The nontransitory computer readable medium of claim 22 , wherein the updating the graphical figure is throttled such that the updating is performed as part of a batch update.

27. The nontransitory computer readable medium of claim 22 , wherein the plotting data structure comprises a second reference to a second object to define an attribute of the plot.

28. The nontransitory computer readable medium of claim 22 , the operations further comprising automatically subscribing, at the remote query processor, the client computer to receive consistent updates to the first object.

29. The nontransitory computer readable medium of claim 22 , wherein the first object is a table and the reference is an export table handle.

30. The nontransitory computer readable medium of claim 22 , the operations further comprising:

determining that the graphical figure is not being displayed by the client computer; and

responsive to the determining that the graphical figure is not being displayed, setting a mode of the plot to a sleep mode.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2020
From: CAUDY, RYAN; KENT, DAVID R., IV; WRIGHT, CHARLES; ALLISON, DEVON PATRICK; BASRALIAN, RAFFI
To: DEEPHAVEN DATA LABS LLC
Reel/Frame 053523/0105 →
Continuity (3)
Continuation 16114028 · Aug 27, 2018
Provisional Application 62549908 · Aug 24, 2017
Related Publication 20200372078A1 · Nov 26, 2020
Cited By (1)
US 12,688,239