Dynamic updating of query result displays
Described are methods, systems and computer readable media for dynamic updating of query result displays.
1. A method for updating a client's viewport of a data object at a server, the method comprising:
determining a viewport change;
sending an updated visible data object area to a server, wherein the updated visible area is based on the viewport change;
receiving, from the server, a snapshot of data from the data object corresponding to the updated visible area, the snapshot comprising one or more update notifications generated by the server processing updates through an update propagation graph (UPG) of nodes, the nodes representing data object dependencies, the nodes including a handle as a child of the data object in the UPG of nodes, the handle linking the data object at the server to the client, the server processing updates through the UPG including transmitting received change notifications to any nodes corresponding to data objects affected by the received change notifications, wherein one or more of the nodes, in turn, send change notifications to one or more downstream data sources, the one or more downstream data sources including the handle linking the data object at the server to the client such that the one or more nodes sending change notifications includes sending, from the server, one or more of the change notifications to the client to update the viewport specific to the client;
updating, at the client, an in-memory data object based on the received snapshot; and
causing an updated view to be displayed based on the updated in-memory data object.
2. The method of claim 1 , wherein the viewport change is caused by one or more of scrolling a view of the in-memory data object, showing or hiding a data object, and programmatically accessing the in-memory data object.
3. The method of claim 1 , wherein the snapshot includes data corresponding to a given set of rows and columns of a tabular data object stored in memory of the server.
4. The method of claim 1 , wherein the server includes a remote query processor.
5. The method of claim 1 , further comprising providing, for non-displayed data objects, all rows and one or more columns of the data object to be considered as a visible region to facilitate further processing.
6. A system for updating a client's viewport of a data object at a server, the system comprising:
one or more 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:
determining a viewport change;
sending an updated visible data object area to a server, wherein the updated visible area is based on the viewport change;
receiving, from the server, a snapshot of data from the data object corresponding to the updated visible area, the snapshot being generated by the server processing updates through an update propagation graph (UPG) of nodes, the nodes representing data object dependencies, the nodes including a handle as a child of the data object in the UPG of nodes, the handle linking the data object at the server to the client, the server processing updates through the UPG including transmitting received change notifications to any nodes corresponding to data objects affected by the received change notifications, wherein one or more of the nodes, in turn, send change notifications to one or more downstream data sources, the one or more downstream data sources including the handle linking the data object at the server to the client such that the one or more nodes sending change notifications includes sending, from the server, one or more of the change notifications to the client;
updating, at the client, an in-memory data object based on the received snapshot; and
causing an updated view to be displayed based on the updated in-memory data object.
7. The system of claim 6 , wherein the viewport change is caused by one or more of scrolling a view of the In-memory data object, showing or hiding a data object, and programmatically accessing the In-memory data object.
8. The system of claim 6 , wherein the snapshot includes data corresponding to a given set of rows and columns of a tabular data object stored in memory of the server.
9. The system of claim 6 , wherein the server includes a remote query processor.
10. The system of claim 6 , wherein the operations further include providing, for non-displayed data objects, all rows and one or more columns of the data object to be considered as a visible region to facilitate further processing.
11. 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:
determining a viewport change;
sending an updated visible data object area to a server, wherein the updated visible area is based on the viewport change;
receiving, from the server, a snapshot of data from the data object corresponding to the updated visible area;
updating an in-memory data object based on the received snapshot; and
causing an updated view to be displayed based on the updated in-memory data object.
12. The nontransitory computer readable medium of claim 11 , wherein the viewport change is caused by one or more of scrolling a view of the in-memory data object, showing or hiding a data object, and programmatically accessing the in-memory data object.
13. The nontransitory computer readable medium of claim 11 , wherein the snapshot includes data corresponding to a given set of rows and columns of a tabular data object stored in memory of the server.
14. The nontransitory computer readable medium of claim 11 , wherein the server includes a remote query processor.
15. The nontransitory computer readable medium of claim 11 , wherein the operations further include providing, for non-displayed data objects, all rows and one or more columns of the data object to be considered as a visible region to facilitate further processing.