IP Library › Granted Patent US 12,147,445
Granted Patent B1
US 12,147,445 · App. 18/521,027 · Granted Nov 19, 2024

Notebooks with cached results

Inventors: Annissa Al-Alusi (Orinda, CA); Istvan Cseri (Seattle, WA); Yifung Lin (Los Altos, CA); Jue Liu (San Mateo, CA); Michael Joseph Papale (Seattle, WA); William A. Pugh (Seattle, WA); Jeffrey Shaw (San Francisco, CA); Wei Song (Bellevue, WA); Thiago Teixeira (San Francisco, CA)
Assignee: Snowflake Inc.
G06F16/248G06F16/24542G06F16/24568
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 12,147,445
App. No.
18/521,027
Granted
Nov 19, 2024
Kind
B1
Abstract

A data platform for running a subset of cells in a notebook is provided. The data platform receives a run cells message from a notebook user interface (UI) application specifying the subset of cells to run. For each cell in the subset, the data platform runs the cell to generate a set of results, generates a cell execution stream using the results, stores the stream, and transmits the stream to the notebook UI application. The notebook UI application generates a display for the user using the cell execution stream. The data platform provides an efficient way to run specific cells in a notebook and display the results to the user.

Claims (80)

1. A machine-implemented method comprising:

maintaining document state data for a notebook comprising cell code and metadata;

maintaining execution state data for the notebook comprising previous run results;

receiving a cell run request for the notebook;

generating an execution stream by running a cell of the notebook;

updating the execution state data with the execution stream;

generating a content hash for the document state data;

generating an execution hash for the updated execution state data the execution hash comprising information identifying content and run of a preceding cell of the notebook that the cell depends on; and

using the content hash and execution hash to determine staleness of results of a notebook UI application.

2. The machine-implemented method of claim 1 , wherein the content hash comprises hashes of contents of a current cell hashes of contents of preceding cells of the notebook.

3. The machine-implemented method of claim 1 , wherein the execution hash comprises a unique identifier created for the run of the cell of the notebook.

4. The machine-implemented method of claim 1 , wherein using the content hash and execution hash to determine staleness comprises:

comparing the content hash to a hash in the execution state data; and

in response to the content hash not matching the hash in the execution state data, determining the results are stale.

5. The machine-implemented method of claim 1 , wherein using the content hash and execution hash comprises:

determining an age of the results; and

determining the results are stale in response to the age exceeding a threshold.

6. The machine-implemented method of claim 1 , further comprising:

transmitting the content hash and execution hash to the notebook UI application in a cell information message.

7. The machine-implemented method of claim 6 , wherein the notebook UI application displays an indicator of stale results based on the content hash and execution hash.

8. The machine-implemented method of claim 1 , wherein the notebook UI application:

processes the document state data to populate a notebook user interface with the cell code; and

processes the execution state data to populate the notebook user interface with previous results of the cell code.

9. The machine-implemented method of claim 1 , further comprising:

determining to retrieve the execution stream from a cache based on the staleness of the results; and

generating the execution stream by retrieving the execution stream from the cache.

10. A machine comprising:

at least one processor; and

at least one memory storing instructions that, when executed by the at least one processor, cause the machine to perform operations comprising:

maintaining document state data for a notebook comprising cell code and metadata;

maintaining execution state data for the notebook comprising previous run results;

receiving a cell run request for the notebook;

generating an execution stream by running a cell of the notebook;

updating the execution state data with the execution stream;

generating a content hash for the document state data;

generating an execution hash for the updated execution state data the execution hash comprising information identifying content and run of a preceding cell of the notebook that the cell depends on; and

using the content hash and execution hash to determine staleness of results of a notebook UI application.

11. The machine of claim 10 , wherein the content hash comprises hashes of contents of a current cell hashes of contents of preceding cells of the notebook.

12. The machine of claim 10 , wherein the execution hash comprises a unique identifier created for the run of the cell of the notebook.

13. The machine of claim 10 , wherein using the content hash and execution hash to determine staleness comprises:

comparing the content hash to a hash in the execution state data; and

in response to the content hash not matching the hash in the execution state data, determining the results are stale.

14. The machine of claim 10 , wherein using the content hash and execution hash comprises:

determining an age of the results; and

determining the results are stale in response to the age exceeding a threshold.

15. The machine of claim 10 , wherein the operations further comprise:

transmitting the content hash and execution hash to the notebook UI application in a cell information message.

16. The machine of claim 15 , wherein the notebook UI application displays an indicator of stale results based on the content hash and execution hash.

17. The machine of claim 10 , wherein the notebook UI application:

processes the document state data to populate a notebook user interface with the cell code; and

processes the execution state data to populate the notebook user interface with previous results of the cell code.

18. The machine of claim 10 , wherein the operations further comprise:

determining to retrieve the execution stream from a cache based on the staleness of the results; and

generating the execution stream by retrieving the execution stream from the cache.

19. A machine-storage medium storing instructions that, when executed by a machine, cause the machine to perform operations comprising:

maintaining document state data for a notebook comprising cell code and metadata;

maintaining execution state data for the notebook comprising previous run results;

receiving a cell run request for the notebook;

generating an execution stream by running a cell of the notebook;

updating the execution state data with the execution stream;

generating a content hash for the document state data;

generating an execution hash for the updated execution state data the execution hash comprising information identifying content and run of a preceding cell of the notebook that the cell depends on; and

using the content hash and execution hash to determine staleness of results of a notebook UI application.

20. The machine-storage medium of claim 19 , wherein the content hash comprises hashes of contents of a current cell hashes of contents of preceding cells of the notebook.

21. The machine-storage medium of claim 19 , wherein the execution hash comprises a unique identifier created for the run of the cell of the notebook.

22. The machine-storage medium of claim 19 , wherein using the content hash and execution hash to determine staleness comprises:

comparing the content hash to a hash in the execution state data; and

in response to the content hash not matching the hash in the execution state data, determining the results are stale.

23. The machine-storage medium of claim 19 , wherein using the content hash and execution hash comprises:

determining an age of the results; and

determining the results are stale in response to the age exceeding a threshold.

24. The machine-storage medium of claim 19 , wherein the operations further comprise:

transmitting the content hash and execution hash to the notebook UI application in a cell information message.

25. The machine-storage medium of claim 24 , wherein the notebook UI application displays an indicator of stale results based on the content hash and execution hash.

26. The machine-storage medium of claim 19 , wherein the notebook UI application:

processes the document state data to populate a notebook user interface with the cell code; and

processes the execution state data to populate the notebook user interface with previous results of the cell code.

27. The machine-storage medium of claim 19 , wherein the operations further comprise:

determining to retrieve the execution stream from a cache based on the staleness of the results; and

generating the execution stream by retrieving the execution stream from the cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2023
From: AL-ALUSI, ANNISSA; CSERI, ISTVAN; LIN, YIFUNG; LIU, JUE; PAPALE, MICHAEL JOSEPH; PUGH, WILLIAM A.; SHAW, JEFFREY; SONG, WEI; TEIXEIRA, THIAGO
To: SNOWFLAKE INC.
Reel/Frame 065682/0850 →
Continuity (1)
Continuation 18351661 · Jul 13, 2023
Cited By (1)
US 12,423,220