IP Library Granted Patent US 12,340,256
Granted Patent B1
US 12,340,256 · App. 18/162,546 · Granted Jun 24, 2025

Reducing cluster start up time

Inventors: Yandong Mao (Villibrae, CA); Aaron Daniel Davidson (Berkeley, CA)
Assignee: Databricks, Inc.
G06F9/5077G06F21/45G06F2209/5011G06F2209/505
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,340,256
App. No.
18/162,546
Granted
Jun 24, 2025
Kind
B1
Abstract

The present application discloses a method, system, and computer system for starting up and maintaining a cluster in a warmed up state, and/or allocating clusters from a warmed up state. The method includes instantiating a set of virtual machines, wherein instantiating the set of virtual machines includes setting a temporary security credential for each virtual machine of the set of virtual machines, receiving a virtual machine allocation request associated with a workspace, a customer, or a tenant, in response to the virtual machine allocation request: allocating a virtual machine, wherein allocating the virtual machine comprises replacing the temporary security credential with a security credential associated with the workspace, the customer, or the tenant.

Claims (65)

1. A method comprising:

maintaining a plurality of warm cluster pools, each warm cluster pool of the plurality of warm cluster pools includes a virtual machine and corresponds to a particular class from among a plurality of classes, each class of the plurality of classes being configured for a particular environment having particular memory and processing requirements, wherein the virtual machine of each of the plurality of warm cluster pools is not specific to any tenant of a multi-tenant computing environment;

determining that a tenant of the multi-tenant computing environment is finished using a virtual machine within a cluster of virtual machines allocated to the tenant, the virtual machine corresponding to a first class of the plurality of classes; and

repurposing the virtual machine for use by other tenants of the multi-tenant computing environment, wherein repurposing the virtual machine comprises:

reconfiguring security settings of the virtual machine to replace a tenant-specific security credential assigned to the virtual machine with a temporary security credential that is not specific to any tenants of the multi-tenant computing environment;

performing a security check to determine whether any virtual machine within the cluster deployed to the tenant has global permissions that enable access to information outside the tenant; and

allocating the virtual machine to one of the plurality of warm cluster pools maintained by the multi-tenant computing environment, the one of the plurality of warm cluster pools corresponding to the first class of the plurality of classes.

2. The method of claim 1 , further comprising:

in response to determining that the tenant of the multi-tenant computing environment is finished using the virtual machine, determining whether to repurpose the virtual machine or terminate the virtual machine.

3. The method of claim 2 , wherein determining whether to repurpose the virtual machine or terminate the virtual machine comprises:

determining a predicted usage of the tenants of the multi-tenant computing environment; and

determining whether a number of virtual machines in the one of the plurality of warm cluster pools exceeds the predicted usage.

4. The method of claim 1 , wherein repurposing the virtual machine further comprises:

resetting a network communication setting of the virtual machine to disconnect the virtual machine from the cluster of virtual machines allocated to the tenant.

5. The method of claim 1 , wherein repurposing the virtual machine further comprises:

removing a subset of components loaded to the virtual machine, the subset of components having been loaded to the virtual machine when the virtual machine was allocated to the cluster of virtual machines allocated to the tenant.

6. The method of claim 1 , further comprising:

receiving a virtual machine allocation request associated with a different tenant of the multi-tenant computing environment; and

in response to the virtual machine allocation request, allocating the virtual machine from the one of the plurality of warm cluster pools to a cluster of virtual machines allocated to the different tenant, wherein allocating the virtual machine comprises reconfiguring security settings of the virtual machine to replace the temporary security credential with a tenant-specific security credential assigned to the different tenant.

7. The method of claim 6 , further comprising:

determining that the different tenant of the multi-tenant computing environment is finished using the virtual machine; and

terminating the virtual machine.

8. A multi-tenant computing environment 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 multi-tenant computing environment to:

maintain a plurality of warm cluster pools, each warm cluster pool of the plurality of warm cluster pools includes a virtual machine and corresponds to a particular class from among a plurality of classes, each class of the plurality of classes being configured for a particular environment having particular memory and processing requirements, wherein the virtual machine of each of the plurality of warm cluster pools is not specific to any tenant of the multi-tenant computing environment;

determine that a tenant of the multi-tenant computing environment is finished using a virtual machine within a cluster of virtual machines allocated to the tenant, the virtual machine corresponding to a first class of the plurality of classes; and

repurpose the virtual machine for use by other tenants of the multi-tenant computing environment, wherein the instructions to repurpose the virtual machine further cause the one or more computer processors to:

reconfigure security settings of the virtual machine to replace a tenant-specific security credential assigned to the virtual machine with a temporary security credential that is not specific to any tenants of the multi-tenant computing environment;

perform a security check to determine whether any virtual machine within the cluster deployed to the tenant has global permissions that enable access to information outside the tenant; and

allocate the virtual machine to one of the plurality of warm cluster pools maintained by the multi-tenant computing environment, the one of the plurality of warm cluster pools corresponding to the first class of the plurality of classes.

9. The multi-tenant computing environment of claim 8 , wherein the instructions further cause the one or more computer processors to:

in response to determining that the tenant of the multi-tenant computing environment is finished using the virtual machine, determining whether to repurpose the virtual machine or terminate the virtual machine.

10. The multi-tenant computing environment of claim 9 , wherein the instructions to determine whether to repurpose the virtual machine or terminate the virtual machine further cause the one or more computer processors to:

determine a predicted usage of the tenants of the multi-tenant computing environment; and

determine whether a number of virtual machines in the one of the plurality of warm cluster pools exceeds the predicted usage.

11. The multi-tenant computing environment of claim 8 , wherein the instructions to repurpose the virtual machine further cause the one or more computer processors to:

reset a network communication setting of the virtual machine to disconnect the virtual machine from the cluster of virtual machines allocated to the tenant.

12. The multi-tenant computing environment of claim 8 , wherein the instructions to repurpose the virtual machine further cause the one or more computer processors to:

remove a subset of components loaded to the virtual machine, the subset of components having been loaded to the virtual machine when the virtual machine was allocated to the cluster of virtual machines allocated to the tenant.

13. The multi-tenant computing environment of claim 8 , wherein the instructions further cause the one or more computer processors to:

receive a virtual machine allocation request associated with a different tenant of the multi-tenant computing environment; and

in response to the virtual machine allocation request, allocate the virtual machine from the one of the plurality of warm cluster pools to a cluster of virtual machines allocated to the different tenant, wherein allocating the virtual machine comprises reconfiguring security settings of the virtual machine to replace the temporary security credential with a tenant-specific security credential assigned to the different tenant.

14. The multi-tenant computing environment of claim 13 , wherein the instructions further cause the one or more computer processors to:

determine that the different tenant of the multi-tenant computing environment is finished using the virtual machine; and

terminate the virtual machine.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a multi-tenant computing environment, cause the multi-tenant computing environment to:

maintain a plurality of warm cluster pools, each warm cluster pool of the plurality of warm cluster pools includes a virtual machine and corresponds to a particular class from among a plurality of classes, each class of the plurality of classes being configured for a particular environment having particular memory and processing requirements, wherein the virtual machine of each of the plurality of warm cluster pools is not specific to any tenant of the multi-tenant computing environment;

determine that a tenant of the multi-tenant computing environment is finished using a virtual machine within a cluster of virtual machines allocated to the tenant, the virtual machine corresponding to a first class of the plurality of classes; and

repurpose the virtual machine for use by other tenants of the multi-tenant computing environment, wherein the instructions to repurpose the virtual machine further cause the one or more computer processors to:

reconfigure security settings of the virtual machine to replace a tenant-specific security credential assigned to the virtual machine with a temporary security credential that is not specific to any tenants of the multi-tenant computing environment;

perform a security check to determine whether any virtual machine within the cluster deployed to the tenant has global permissions that enable access to information outside the tenant; and

allocate the virtual machine to one of the plurality of warm cluster pools maintained by the multi-tenant computing environment, the one of the plurality of warm cluster pools corresponding to the first class of the plurality of classes.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions further cause the one or more computer processors to:

in response to determining that the tenant of the multi-tenant computing environment is finished using the virtual machine, determining whether to repurpose the virtual machine or terminate the virtual machine.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions to determine whether to repurpose the virtual machine or terminate the virtual machine further cause the one or more computer processors to:

determine a predicted usage of the tenants of the multi-tenant computing environment; and

determine whether a number of virtual machines in the one of the plurality of warm cluster pools exceeds the predicted usage.

18. The non-transitory computer-readable medium of claim 15 , wherein instructions to repurpose the virtual machine further cause the one or more computer processors to:

reset a network communication setting of the virtual machine to disconnect the virtual machine from the cluster of virtual machines allocated to the tenant.

19. The non-transitory computer-readable medium of claim 15 , wherein instructions to repurpose the virtual machine further cause the one or more computer processors to:

remove a subset of components loaded to the virtual machine, the subset of components having been loaded to the virtual machine when the virtual machine was allocated to the cluster of virtual machines allocated to the tenant.

20. The non-transitory computer-readable medium of claim 15 , wherein the instructions further cause the one or more computer processors to:

receive a virtual machine allocation request associated with a different tenant of the multi-tenant computing environment; and

in response to the virtual machine allocation request, allocate the virtual machine from the one of the plurality of warm cluster pools to a cluster of virtual machines allocated to the different tenant, wherein allocating the virtual machine comprises reconfiguring security settings of the virtual machine to replace the temporary security credential with a tenant-specific security credential assigned to the different tenant.

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 Oct 11, 2024
From: MAO, YANDONG; DAVIDSON, AARON DANIEL
To: DATABRICKS, INC.
Reel/Frame 068871/0925 →
Continuity (2)
Continuation 17514988 · Oct 29, 2021
Provisional Application 63191662 · May 21, 2021
References Cited (33)
US 9251033B2 · Kirchhofer · 2016 [cited by examiner]
US 9489510B1 · Scott et al. · 2016 [cited by applicant]
US 9531715B1 · Rodgers et al. · 2016 [cited by applicant]
US 9847983B1 · Roth et al. · 2017 [cited by applicant]
US 9971621B1 · Berg · 2018 [cited by examiner]
US 10067801B1 · Wagner · 2018 [cited by examiner]
US 10362092B1 · Parthasarathy · 2019 [cited by examiner]
US 10534651B2 · Devereaux · 2020 [cited by examiner]
US 10599453B1 · Rathnavelu · 2020 [cited by examiner]
US 10698709B2 · Korbar · 2020 [cited by examiner]
US 11720412B2 · Avagyan · 2023 [cited by examiner]
US 20050262181A1 · Schmidt · 2005 [cited by examiner]
US 20090204960A1 · Ben-Yehuda et al. · 2009 [cited by applicant]
US 20120110651A1 · Van Biljon · 2012 [cited by examiner]
US 20130227710A1 · Barak · 2013 [cited by examiner]
US 20140189685A1 · Kripalani · 2014 [cited by examiner]
US 20150120928A1 · Gummaraju · 2015 [cited by examiner]
US 20150261557A1 · Ashok · 2015 [cited by examiner]
US 20150261561A1 · Ashok · 2015 [cited by examiner]
US 20160077919A1 · Duggan et al. · 2016 [cited by applicant]
US 20160224785A1 · Wagner · 2016 [cited by examiner]
US 20160277508A1 · Byskal · 2016 [cited by examiner]
US 20170185438A1 · Thomas · 2017 [cited by examiner]
US 20180004575A1 · Marriner · 2018 [cited by examiner]
US 20190278620A1 · Korbar et al. · 2019 [cited by applicant]
US 20190297112A1 · Yu et al. · 2019 [cited by applicant]
US 20200034245A1 · Kohler · 2020 [cited by examiner]
US 20210141657A1 · Pearson · 2021 [cited by examiner]
US 20210216352A1 · Kripalani · 2021 [cited by examiner]
US 20210286891A1 · Sislow et al. · 2021 [cited by applicant]
US 20220150322A1 · Ikeda · 2022 [cited by examiner]
US 20220283964A1 · Burstein · 2022 [cited by examiner]
United States Office Action, U.S. Appl. No. 17/514,988, Jun. 5, 2024, 26 pages. [cited by applicant]