IP Library Granted Patent US 12,399,901
Granted Patent B2
US 12,399,901 · App. 18/614,380 · Granted Aug 26, 2025

Fetching query results through cloud object stores

Inventors: Bogdan Ionut Ghit (Amsterdam, NL); Juliusz Sompolski (Amsterdam, NL); Shi Xin (San Francisco, CA); Bart Samwel (Oegstgeest, NL)
Assignee: Databricks, Inc.
G06F16/2471G06F11/3419G06F16/244G06F16/256
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,399,901
App. No.
18/614,380
Granted
Aug 26, 2025
Kind
B2
Abstract

The system is configured to: 1) receive a client request; 2) determine executor(s) to generate a response to the user request; 3) provide each of the executor(s) with an indication; 4) receive for each indication a response including an output of either a cloud output or an in-line output to generate a group of in-line outputs and a group of cloud outputs; 5) determine whether the group of in-line outputs comprises all outputs; and 6) in response to the group of in-line outputs not comprising all the outputs for the client request: a) convert the group of in-line outputs to a converted group of cloud outputs; b) generate metadata for the converted group of cloud outputs and the group of cloud outputs; and c) provide response to the client request including the metadata for the converted group of cloud outputs and the group of cloud outputs.

Claims (65)

1. A method comprising:

receiving a request to read a set of query results stored in a cloud based data storage;

transmitting, to a client device, a first batch of the set of query results in response to the request, the first batch of the set of query results being a subset of the set of query results;

monitoring a time of transmission of the first batch of the set of query results;

comparing the time of transmission of the first batch of the set of query results to be received by the client device with transgresses a fast transfer threshold value;

responsive to the comparison indicating that the time of transmission of the first batch is less than the fast transfer threshold value, selecting a second batch of the set of query results, wherein a size of the second batch of the set of query results is greater than the size of the first batch;

transmitting the second batch of the set of query results to the client device;

monitoring the time of transmission of a third batch of the set of query results;

comparing the time of transmission of the third batch of the set of query results to be received by the client device with a slow transfer threshold value;

responsive to the comparison indicating that the time of transmission of the third batch is greater than the slow transfer threshold value, selecting a fourth batch of the set of query results, wherein a size of the fourth batch of the set of query results is less than the size of the third batch; and

transmitting the fourth batch of the set of query results to the client device.

2. The method of claim 1 , further comprising:

receiving, from the client device, a confirmation message indicating that the first batch of the set of query results has been received by the client device; and

determining the time of transmission of the first batch of the set of query results to be received by the client device based on the confirmation message.

3. The method of claim 1 , further comprising:

receiving a client request to generate a query;

generating, with a set of executors, the set of query results based on the query;

storing the set of query results in the cloud based data storage; and

returning metadata indicating a location of the set of query results in response to the client request.

4. The method of claim 3 , wherein the request to read the set of query results stored in a cloud based data storage includes the metadata indicating the location of the set of query results.

5. The method of claim 1 , wherein monitoring a time of transmission uses a timer to track the time elapsed between a generation and an attempt to access and download batches of files from a cloud storage system.

6. A cloud computation system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the cloud computation system to:

receive a request to read a set of query results stored in a cloud based data storage;

transmit, to a client device, a first batch of the set of query results in response to the request, the first batch of the set of query results being a subset of the set of query results;

monitor a time of transmission of the first batch of the set of query results;

compare the time of transmission the first batch of the set of query results to be received by the client device with a fast transfer threshold value;

responsive to the comparison indicating that the time of transmission of the first batch is less than the fast transfer threshold value, select a second batch of the set of query results, wherein a size of the second batch of the set of query results is greater than the size of the first batch;

transmit the second batch of the set of query results to the client device;

monitor the time of transmission of a third batch of the set of query results;

compare the time of transmission of the third batch of the set of query results to be received by the client device with a slow transfer threshold value;

responsive to the comparison indicating that the time of transmission of the third batch is greater than the slow transfer threshold value, select a fourth batch of the set of query results, wherein a size of the fourth batch of the set of query results is less than the size of the third batch; and

transmit the fourth batch of the set of query results to the client device.

7. The cloud computation system of claim 6 , wherein the instructions further cause the cloud computation system to:

receive, from the client device, a confirmation message indicating that the first batch of the set of query results has been received by the client device; and

determine the time of transmission of the first batch of the set of query results to be received by the client device based on the confirmation message.

8. The cloud computation system of claim 6 , wherein the instructions further cause the cloud computation system to:

receive a client request to generate a query;

generate, with a set of executors, the set of query results based on the query;

store the set of query results in the cloud based data storage; and

return metadata indicating a location of the set of query results in response to the client request.

9. The cloud computation system of claim 8 , wherein the request to read the set of query results stored in a cloud based data storage includes the metadata indicating the location of the set of query results.

10. The cloud computation system of claim 8 , wherein monitoring a time of transmission uses a timer to track the time elapsed between a generation and an attempt to access and download batches of files from a cloud storage system.

11. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a cloud computation system, cause the cloud computation system to perform operations comprising:

receive a request to read a set of query results stored in a cloud based data storage;

transmit, to a client device, a first batch of the set of query results in response to the request, the first batch of the set of query results being a subset of the set of query results;

monitor a time of transmission of the first batch of the set of query results;

compare the time of transmission of the first batch of the set of query results to be received by the client device with transgresses a fast transfer threshold value;

responsive to the comparison indicating that the time of transmission of the first batch is less than the fast transfer threshold value, select a second batch of the set of query results, wherein a size of the second batch of the set of query results is greater than the size of the first batch;

transmit the second batch of the set of query results to the client device;

monitor the time of transmission of a third batch of the set of query results;

compare the time of transmission of the third batch of the set of query results to be received by the client device with a slow transfer threshold value;

responsive to the comparison indicating that the time of transmission of the third batch is greater than the slow transfer threshold value, select a fourth batch of the set of query results, wherein a size of the fourth batch of the set of query results is less than the size of the third batch; and

transmit the fourth batch of the set of query results to the client device.

12. The non-transitory computer-readable medium of claim 11 , wherein the instructions further cause the cloud computation system to:

receive, from the client device, a confirmation message indicating that the first batch of the set of query results has been received by the client device; and

determine the time of transmission of the first batch of the set of query results to be received by the client device based on the confirmation message.

13. The non-transitory computer-readable medium of claim 11 , wherein the instructions further cause the cloud computation system to:

receive a client request to generate a query;

generate, with a set of executors, the set of query results based on the query;

store the set of query results in the cloud based data storage; and

return metadata indicating a location of the set of query results in response to the client request, wherein the request to read the set of query results stored in a cloud based data storage includes the metadata indicating the location of the set of query results.

14. The non-transitory computer-readable medium of claim 13 , wherein the request to read the set of query results stored in a cloud based data storage includes the metadata indicating the location of the set of query results.

15. The non-transitory computer-readable medium of claim 11 , wherein monitoring a time of transmission uses a timer to track the time elapsed between a generation and an attempt to access and download batches of files from a cloud storage system.

Assignments (2)
SECURITY INTEREST Recorded Jan 6, 2025
From: DATABRICKS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069825/0419 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2024
From: GHIT, BOGDAN IONUT; SOMPOLSKI, JULIUSZ; XIN, SHI; SAMWEL, BART
To: DATABRICKS, INC.
Reel/Frame 066879/0682 →
Continuity (2)
Continuation 17841946 · Jun 16, 2022
Related Publication 20240394271A1 · Nov 28, 2024
References Cited (16)
US 11567735B1 · Kulkarni et al. · 2023 [cited by applicant]
US 20170220612A1 · Crossley · 2017 [cited by examiner]
US 20180349499A1 · Pawar · 2018 [cited by examiner]
US 20190364097A1 · Cheng et al. · 2019 [cited by applicant]
US 20200145499A1 · Kaplan et al. · 2020 [cited by applicant]
US 20200364211A1 · Li · 2020 [cited by examiner]
US 20220101438A1 · Gao · 2022 [cited by examiner]
US 20220222256A1 · Tu · 2022 [cited by examiner]
US 20220300459A1 · Boshev et al. · 2022 [cited by applicant]
US 20220345463A1 · Wu et al. · 2022 [cited by applicant]
US 20230055241A1 · Zionpour et al. · 2023 [cited by applicant]
Baker, J. et al. “Megastore: Providing scalable, highly available storage for interactive services,” CIDR, vol. 11, Jan. 9, 2011, 12 pages. [cited by applicant]
Calder, B. et al. “Windows azure storage: a highly available cloud storage service with strong consistency,” 23rd ACM Symposium on Operating Systems Principles, Oct. 23, 2011, 15 pages. [cited by applicant]
Hu, W. et al. “The good, the bad and the ugly of consumer cloud storage,” ACM SIGOPS Operating Systems Review, vol. 44, No. 3, Aug. 17, 2010, 6 pages. [cited by applicant]
Varia, J. “Cloud architectures” White Paper of Amazon, Amazon Web Services, Jun. 2008, 14 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/841,946, filed Jun. 2, 2023, 15 pages. [cited by applicant]