IP Library › Granted Patent US 12,124,462
Granted Patent B2
US 12,124,462 · App. 18/178,758 · Granted Oct 22, 2024

Configuring query result information based on multi-stage query execution

Inventors: Harsha S. Kapre (San Mateo, CA); Mark T. Keller (San Mateo, CA); Srinath Shankar (Belmont, CA); Kushan A. Zaveri (North York, CA)
Assignee: Snowflake Inc.
G06F16/2471G06F16/24532G06F16/24561G06F16/256G06F16/258
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,124,462
App. No.
18/178,758
Granted
Oct 22, 2024
Kind
B2
Abstract

Techniques for configuring query result information include decoding a query received from a client device of a network-based database system. A multi-stage execution of the query is configured to obtain a plurality of query result subsets. A combined query result is generated using the plurality of query result subsets. The combined query result further includes storage location information for each of the plurality of query result subsets. The combined query result is encoded for transmission to the client device in response to the query.

Claims (85)

1. A system comprising:

at least one hardware processor; and

at least one memory storing instructions that cause the at least one hardware processor to perform operations comprising:

decoding a query received from a client device of a network-based database system;

configuring a multi-stage execution of the query to obtain a plurality of query result subsets;

generating a combined query result using the plurality of query result subsets, the combined query result further comprising storage location information identifying one or more storage locations that store each of the plurality of query result subsets; and

encoding the combined query result for transmission to the client device in response to the query.

2. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

configuring each query result subset of the plurality of query result subsets according to a schema of a corresponding plurality of schemas; and

modifying the combined query result to further include schema information of the corresponding plurality of schemas.

3. The system of claim 2 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

modifying the combined query result to further include authentication information, the authentication information associated with access to at least one of the query result subsets at a storage location of the one or more storage locations corresponding to the storage location information.

4. The system of claim 3 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

granting the client device, access to the at least one of the query result subsets based on the authentication information.

5. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

decoding a plurality of result batches received from the client device, the plurality of result batches based on the combined query result, each result batch of the plurality of result batches comprising a result data retrieval function for a corresponding query result subset of the plurality of query result subsets.

6. The system of claim 5 , wherein for each result batch of the plurality of result batches, the instructions further cause the at least one hardware processor to perform operations comprising:

obtaining authentication information using the result data retrieval function; and

accessing a storage location of the one or more storage locations based on the authentication information, the storage location corresponding to the storage location information, and the storage location storing the corresponding query result subset of the plurality of query result subsets.

7. The system of claim 6 , wherein for each result batch of the plurality of result batches, the instructions further cause the at least one hardware processor to perform operations comprising:

retrieving the corresponding query result subset of the plurality of query result subsets from the storage location; and

encoding the corresponding query result subset for transmission to at least the client device for data processing.

8. The system of claim 6 , wherein the location information is a uniform resource locator (URL) associated with the storage location.

9. The system of claim 5 , wherein the result data retrieval function further includes schema information and additional metadata for the corresponding query result subset of the plurality of query result subsets, and wherein the instructions further cause the at least one hardware processor to perform operations comprising:

retrieving the corresponding query result subset; and

perform additional processing of the corresponding query result subset based on the schema information and the additional metadata.

10. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

decoding a plurality of result batches received from multiple client devices, the plurality of result batches based on the combined query result, and each result batch of the plurality of result batches comprising a result data retrieval function for a corresponding query result subset of the plurality of query result subsets;

retrieving each query result subset of the plurality of query result subsets based on the result data retrieval function; and

encoding the plurality of query result subsets for parallel communication to the multiple client devices.

11. A method comprising:

decoding, by at least one hardware processor, a query received from a client device of a network-based database system;

configuring a multi-stage execution of the query to obtain a plurality of query result subsets;

generating a combined query result using the plurality of query result subsets, the combined query result further comprising storage location information identifying one or more storage locations that store each of the plurality of query result subsets; and

encoding the combined query result for transmission to the client device in response to the query.

12. The method of claim 11 , further comprising:

configuring each query result subset of the plurality of query result subsets according to a schema of a corresponding plurality of schemas; and

modifying the combined query result to further include schema information of the corresponding plurality of schemas.

13. The method of claim 12 , further comprising:

modifying the combined query result to further include authentication information, the authentication information associated with access to at least one of the query result subsets at a storage location of the one or more storage locations corresponding to the storage location information.

14. The method of claim 13 , further comprising:

granting the client device, access to the at least one of the query result subsets based on the authentication information.

15. The method of claim 11 , further comprising:

decoding a plurality of result batches received from the client device, the plurality of result batches based on the combined query result, each result batch of the plurality of result batches comprising a result data retrieval function for a corresponding query result subset of the plurality of query result subsets.

16. The method of claim 15 , wherein for each result batch of the plurality of result batches, the method further comprises:

obtaining authentication information using the result data retrieval function; and

accessing a storage location of the one or more storage locations based on the authentication information, the storage location corresponding to the storage location information, and the storage location storing the corresponding query result subset of the plurality of query result subsets.

17. The method of claim 16 , wherein for each result batch of the plurality of result batches, the method further comprises:

retrieving the corresponding query result subset of the plurality of query result subsets from the storage location; and

encoding the corresponding query result subset for transmission to at least the client device for data processing.

18. The method of claim 16 , wherein the location information is a uniform resource locator (URL) associated with the storage location.

19. The method of claim 15 , wherein the result data retrieval function further includes schema information and additional metadata for the corresponding query result subset of the plurality of query result subsets, and wherein the method further comprises:

retrieving the corresponding query result subset; and

perform additional processing of the corresponding query result subset based on the schema information and the additional metadata.

20. The method of claim 11 , further comprising:

decoding a plurality of result batches received from multiple client devices, the plurality of result batches based on the combined query result, and each result batch of the plurality of result batches comprising a result data retrieval function for a corresponding query result subset of the plurality of query result subsets;

retrieving each query result subset of the plurality of query result subsets based on the result data retrieval function; and

encoding the plurality of query result subsets for parallel communication to the multiple client devices.

21. A computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

decoding a query received from a client device of a network-based database system;

configuring a multi-stage execution of the query to obtain a plurality of query result subsets;

generating a combined query result using the plurality of query result subsets, the combined query result further comprising storage location information identifying one or more storage locations that store each of the plurality of query result subsets; and

encoding the combined query result for transmission to the client device in response to the query.

22. The computer-storage medium of claim 21 , the operations further comprising:

configuring each query result subset of the plurality of query result subsets according to a schema of a corresponding plurality of schemas; and

modifying the combined query result to further include schema information of the corresponding plurality of schemas.

23. The computer-storage medium of claim 22 , the operations further comprising:

modifying the combined query result to further include authentication information, the authentication information associated with access to at least one of the query result subsets at a storage location of the one or more storage locations corresponding to the storage location information.

24. The computer-storage medium of claim 23 , the operations further comprising: granting the client device, access to the at least one of the query result subsets based on the authentication information.

25. The computer-storage medium of claim 21 , the operations further comprising:

decoding a plurality of result batches received from the client device, the plurality of result batches based on the combined query result, each result batch of the plurality of result batches comprising a result data retrieval function for a corresponding query result subset of the plurality of query result subsets.

26. The computer-storage medium of claim 25 , wherein for each result batch of the plurality of result batches, the operations further comprising:

obtaining authentication information using the result data retrieval function; and

accessing a storage location of the one or more storage locations based on the authentication information, the storage location corresponding to the storage location information, and the storage location storing the corresponding query result subset of the plurality of query result subsets.

27. The computer-storage medium of claim 26 , wherein for each result batch of the plurality of result batches, the operations further comprising:

retrieving the corresponding query result subset of the plurality of query result subsets from the storage location; and

encoding the corresponding query result subset for transmission to at least the client device for data processing.

28. The computer-storage medium of claim 26 , wherein the location information is a uniform resource locator (URL) associated with the storage location.

29. The computer-storage medium of claim 25 , wherein the result data retrieval function further includes schema information and additional metadata for the corresponding query result subset of the plurality of query result subsets, and the operations further comprising:

retrieving the corresponding query result subset; and

perform additional processing of the corresponding query result subset based on the schema information and the additional metadata.

30. The computer-storage medium of claim 21 , the operations further comprising:

decoding a plurality of result batches received from multiple client devices, the plurality of result batches based on the combined query result, and each result batch of the plurality of result batches comprising a result data retrieval function for a corresponding query result subset of the plurality of query result subsets;

retrieving each query result subset of the plurality of query result subsets based on the result data retrieval function; and

encoding the plurality of query result subsets for parallel communication to the multiple client devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2023
From: KAPRE, HARSHA S.; KELLER, MARK T.; SHANKAR, SRINATH; ZAVERI, KUSHAN A.
To: SNOWFLAKE INC.
Reel/Frame 062891/0043 →
Continuity (4)
Continuation 17813539 · Jul 19, 2022
Continuation 17453756 · Nov 5, 2021
Continuation 17501992 · Oct 14, 2021
Related Publication 20230205777A1 · Jun 29, 2023
Cited By (1)
US 12,248,485