IP Library › Granted Patent US 11,880,381
Granted Patent B1
US 11,880,381 · App. 18/351,661 · Granted Jan 23, 2024

Notebooks with predictable behavior

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 11,880,381
App. No.
18/351,661
Granted
Jan 23, 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 (65)

1. A computer-implemented method comprising:

receiving, by at least one processor, from a notebook User Interface (UI) application, a run cells message, the run cells message specifying a subset of cells of a set of cells of a notebook to run; and

for each cell in the subset of cells, performing operations comprising:

running, by the at least one processor, each cell to generate a set of results, the running comprising:

determining a dependency of each cell on a previous result of a preceding cell:

determining an availability of the previous result of the preceding cell;

in response to determining the previous result of the preceding cell is available, retrieving the result of the preceding cell; and

in response to determining the previous result of the preceding cell is not available, running the preceding cell to generate the previous result;

generating, by the at least one processor, a cell execution stream using the set of results;

storing, by the at least one processor, the cell execution stream; and

transmitting, by at least one processor, the cell execution stream to the notebook UI application, wherein the notebook UI application generates a display presented to a user using the cell execution stream.

2. The computer-implemented method of claim 1 , wherein the subset of cells comprises proper subset.

3. The computer-implemented method of claim 1 , wherein the set of cells comprises an ordered set.

4. The computer-implemented method of claim 3 , wherein the subset of cells is an ordered set and the subset of cells are run in a sequence in accordance with a cell order of the subset of cells.

5. The computer-implemented method of claim 1 , wherein the run cells message comprises a cell update semantics field that specifies whether the subset of cells is an update of the notebook.

6. The computer-implemented method of claim 1 , wherein the cell execution stream is stored separately from the notebook.

7. The computer-implemented method of claim 1 , further comprising:

loading the notebook; and

soft-starting the notebook by retrieving the cell execution stream.

8. The computer-implemented method of claim 1 , wherein the cell execution stream comprises a message path specifying a cell of the notebook UI display for display of the set of results.

9. The computer-implemented method of claim 1 , wherein access privileges to the notebook and the cell execution stream are different.

10. A data platform comprising:

at least one processor; and

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

receiving from a notebook UI application, a run cells message, the run cells message specifying a subset of cells of a set of cells of a notebook to run; and

for each cell in the subset of cells, performing operations comprising:

running each cell to generate a set of results, the running comprising:

determining a dependency of each cell on a previous result of a preceding cell:

determining an availability of the previous result of the preceding cell:

in response to determining the previous result of the preceding cell is available, retrieving the result of the preceding cell; and

in response to determining the previous result of the preceding cell is not available, running the preceding cell to generate the previous result;

generating a cell execution stream using the set of results;

storing the cell execution stream; and

transmitting the cell execution stream to the notebook UI application, wherein the notebook UI application generates a display presented to a user using the cell execution stream.

11. The data platform of claim 10 , wherein the subset of cells comprises a proper subset.

12. The data platform of claim 10 , wherein the set of cells comprises an ordered set.

13. The data platform of claim 12 , wherein the subset of cells is an ordered set and the subset of cells are run in a sequence in accordance with a cell order of the subset of cells.

14. The data platform of claim 10 , wherein the run cells message comprises a cell update semantics field that specifies whether the subset of cells is an update of the notebook.

15. The data platform of claim 10 , wherein the cell execution stream is stored separately from the notebook.

16. The data platform of claim 10 , wherein the operations further comprise:

loading the notebook; and

soft-starting the notebook by retrieving the cell execution stream.

17. The data platform of claim 10 , wherein the cell execution stream comprises a message path specifying a cell of the notebook UI display for display of the set of results.

18. The data platform of claim 10 , wherein access privileges to the notebook and the cell execution stream are different.

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

receiving from a notebook UI application, a run cells message, the run cells message specifying a subset of cells of a set of cells of a notebook to run; and

for each cell in the subset of cells, performing operations comprising:

running each cell to generate a set of results, the running comprising:

determining a dependency of each cell on a previous result of a preceding cell:

determining an availability of the previous result of the preceding cell;

in response to determining the previous result of the preceding cell is available, retrieving the result of the preceding cell; and

in response to determining the previous result of the preceding cell is not available, running the preceding cell to generate the previous result;

generating a cell execution stream using the set of results;

storing the cell execution stream; and

transmitting the cell execution stream to the notebook UI application, wherein the notebook UI application generates a display presented to a user using the cell execution stream.

20. The machine-storage medium of claim 19 , wherein the subset of cells comprises a proper subset.

21. The machine-storage medium of claim 19 , wherein the set of cells comprises an ordered set.

22. The machine-storage medium of claim 21 , wherein the subset of cells is an ordered set and the subset of cells are run in a sequence in accordance with a cell order of the subset of cells.

23. The machine-storage medium of claim 19 , wherein the run cells message comprises a cell update semantics field that specifies whether the subset of cells is an update of the notebook.

24. The machine-storage medium of claim 19 , wherein the cell execution stream is stored separately from the notebook.

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

loading the notebook; and

soft-starting the notebook by retrieving the cell execution stream.

26. The machine-storage medium of claim 19 , wherein the cell execution stream comprises a message path specifying a cell of the notebook UI display for display of the set of results.

27. The machine-storage medium of claim 19 , wherein access privileges to the notebook and the cell execution stream are different.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 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 065132/0798 →
Cited By (1)
US 12,423,220