IP Library › Granted Patent US 12,019,632
Granted Patent B2
US 12,019,632 · App. 17/930,165 · Granted Jun 25, 2024

Checkpoints in batch file processing

Inventors: Thierry Cruanes (San Mateo, CA); Igor Demura (San Mateo, CA); Varun Ganesh (San Bruno, CA); Prasanna Rajaperumal (Bangalore, IN); Libo Wang (Foster City, CA); Jiaqi Yan (Menlo Park, CA)
Assignee: Snowflake Inc.
G06F16/24542G06F9/485G06F16/122G06F16/148G06F16/162G06F16/24539
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,019,632
App. No.
17/930,165
Granted
Jun 25, 2024
Kind
B2
Abstract

Embodiments of the present disclosure may provide a dynamic query execution model with fault tolerance and failure recovery techniques. Embodiments of the present disclosure may utilize checkpoints to map processed output files to their corresponding input files. Therefore, if an error occurs in processing one or more files, the system may only need to reschedule processing of selected file(s).

Claims (62)

1. A method comprising:

receiving, by one or more shared computing resources of a data system, an assignment of a batch from a query coordinator of the data system, the batch including a set of files;

performing, by the one or more shared computing resources, a first operator on the batch;

based on performing the first operator, generating a checkpoint signal;

determining a state condition of a second operator as being stateless;

based on the stateless condition of the second operator, performing, by the one or more shared computing resources, the second operator and passing the checkpoint signal to a third operator without implementing barriers between batches;

determining a state condition of the third operator as being non-stateless;

based on the non-stateless condition of the third operator, clearing, by the one or more shared computing resources, data associated with the third operator, implementing barriers between batches, and performing the third operator; and

generating an output file associated with the batch;

generating a materialized result file as the output file associated with the batch;

uploading the materialized result file to a storage area from where the materialized result file is accessible to be scanned by a query coordinator.

2. The method of claim 1 , further comprising:

uploading a listing of the materialized result to an output shared file queue.

3. The method of claim 1 , further comprising:

transmitting the output file associated with the batch;

generating a file registration request; and

deleting a unique batch ID and information related to the batch.

4. The method of claim 1 , wherein the first operator includes a table scan operator.

5. The method of claim 1 , wherein the third operator includes an insert operator.

6. The method of claim 1 , wherein the output file includes data corresponding only to the batch and no other batch.

7. A system comprising:

one or more processors of a machine; and

a memory storing instructions that, when executed by the one or more processors, cause the machine to perform operations comprising:

receiving, by one or more shared computing resources of a data system, an assignment of a batch from a query coordinator of the data system, the batch including a set of files;

performing, by the one or more shared computing resources, a first operator on the batch;

based on performing the first operator, generating a checkpoint signal;

determining a state condition of a second operator as being stateless;

based on the stateless condition of the second operator, performing, by the one or more shared computing resources, the second operator and passing the checkpoint signal to a third operator without implementing barriers between batches;

determining a state condition of the third operator as being non-stateless;

based on the non-stateless condition of the third operator, clearing, by the one or more shared computing resources, data associated with the third operator, implementing barriers between batches, and performing the third operator; and

generating an output file associated with the batch;

generating a materialized result file as the output file associated with the batch;

uploading the materialized result file to a storage area from where the materialized result file is accessible to be scanned by a query coordinator.

8. The system of claim 7 , further comprising:

uploading a listing of the materialized result to an output shared file queue.

9. The system of claim 7 , further comprising:

transmitting the output file associated with the batch;

generating a file registration request; and

deleting a unique batch ID and information related to the batch.

10. The system of claim 7 , wherein the first operator includes a table scan operator.

11. The system of claim 7 , wherein the third operator includes an insert operator.

12. The system of claim 7 , wherein the output file includes data corresponding only to the batch and no other batch.

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

receiving, by one or more shared computing resources of a data system, an assignment of a batch from a query coordinator of the data system, the batch including a set of files;

performing, by the one or more shared computing resources, a first operator on the batch;

based on performing the first operator, generating a checkpoint signal;

determining a state condition of a second operator as being stateless;

based on the stateless condition of the second operator, performing, by the one or more shared computing resources, the second operator and passing the checkpoint signal to a third operator without implementing barriers between batches;

determining a state condition of the third operator as being non-stateless;

based on the non-stateless condition of the third operator, clearing, by the one or more shared computing resources, data associated with the third operator, implementing barriers between batches, and performing the third operator; and

generating an output file associated with the batch;

generating a materialized result file as the output file associated with the batch;

uploading the materialized result file to a storage area from where the materialized result file is accessible to be scanned by a query coordinator.

14. The machine-storage medium of claim 13 , further comprising:

uploading a listing of the materialized result to an output shared file queue.

15. The machine-storage medium of claim 13 , further comprising:

transmitting the output file associated with the batch;

generating a file registration request; and

deleting a unique batch ID and information related to the batch.

16. The machine-storage medium of claim 13 , wherein the first operator includes a table scan operator.

17. The machine-storage medium of claim 13 , wherein the third operator includes an insert operator.

18. The machine-storage medium of claim 13 , wherein the output file includes data corresponding only to the batch and no other batch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2022
From: CRUANES, THIERRY; DEMURA, IGOR; GANESH, VARUN; RAJAPERUMAL, PRASANNA; WANG, LIBO; YAN, JIAQI
To: SNOWFLAKE INC.
Reel/Frame 061012/0789 →
Continuity (3)
Continuation 17333358 · May 28, 2021
Continuation 16889042 · Jun 1, 2020
Related Publication 20230028008A1 · Jan 26, 2023
Cited By (1)
US 12,216,656