IP Library Granted Patent US 10,810,051
Granted Patent B1
US 10,810,051 · App. 16/188,989 · Granted Oct 20, 2020

Autoscaling using file access or cache usage for cluster machines

Inventors: Srinath Shankar (Belmont, CA); Eric Keng-Hao Liang (Berkeley, CA)
Assignee: Databricks Inc.
G06F9/5077G06F9/3891G06F9/4856G06F9/5027G06F9/5088H04L67/2852
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 10,810,051
App. No.
16/188,989
Granted
Oct 20, 2020
Kind
B1
Abstract

The allocation system comprises an interface and a processor. The interface is configured to receive an indication to deactivate idle cluster machines of a set of cluster machines. The processor is configured to determine a set of tasks executing or pending on the set of cluster machines; determine a set of idle cluster machines of the set of cluster machines that are neither running one or more tasks of the set of tasks nor storing one or more intermediate data files of a set of intermediate data files, where the set of intermediate data files is associated with a set of tasks executing or pending on the cluster machines; and deactivate each cluster machine of the set of idle cluster machines.

Claims (42)

1. An allocation system, comprising:

an interface configured to receive an indication to deactivate idle cluster machines of a set of cluster machines; and

a processor configured to:

determine a set of tasks executing or pending on the set of cluster machines;

determine a set of idle cluster machines of the set of cluster machines, wherein the set of idle cluster machines comprises all cluster machines of the set of cluster machines that are neither running one or more tasks of the set of tasks nor storing one or more intermediate data files of a set of intermediate data files, wherein the set of intermediate data files is associated with set of tasks executing or pending on the set of cluster machines; and

deactivate each cluster machine of the set of idle cluster machines.

2. The allocation system of claim 1 , wherein the cluster machines comprise virtual cluster machines.

3. The allocation system of claim 1 , wherein the cluster machines comprise physical cluster machines.

4. The allocation system of claim 1 , wherein the processor is further configured to cause a task transfer of a portion of the set of tasks from a first cluster machine to a second cluster machine in order to increase a number of idle cluster machines.

5. The allocation system of claim 1 , wherein the processor is further configured to cause a file transfer of a group of intermediate data files from a first cluster machine to a second cluster machine in order to increase a number of idle cluster machines.

6. The allocation system of claim 1 , wherein the processor is further configured to:

receive an indication from a cluster machine that an intermediate data file was created; and

add the cluster machine to a list of cluster machines storing intermediate data files in the event that the cluster machine is not already on the list.

7. The allocation system of claim 6 , wherein determining a set of cluster machines that are not storing the one or more intermediate data files of the set of intermediate data files uses the list of cluster machines storing intermediate data files.

8. The allocation system of claim 6 , wherein the processor is further configured to:

receive an indication from the cluster machine that the intermediate data file was removed;

remove the cluster machine from the list of cluster machines storing intermediate data files in the event that the cluster machine no longer stores intermediate data files; and

in response to a determination that a cluster machine comprises an idle cluster machine in response to the removal of the intermediate data file:

deactivate the idle cluster machine.

9. The allocation system of claim 1 , further comprising the set of cluster machines.

10. The allocation system of claim 1 , wherein a first cluster machine of the set of cluster machines comprises a master cluster machine.

11. The allocation system of claim 10 , wherein the allocation system comprises a second cluster machine of the set of cluster machines.

12. The allocation system of claim 1 , wherein the allocation system comprises a system not local to a cluster user system.

13. The allocation system of claim 1 , wherein the allocation system comprises a system local to a cluster user system.

14. The allocation system of claim 1 , wherein the allocation system is part of a cloud-based system.

15. The allocation system of claim 1 , wherein the processor is further configured to determine the set of tasks running on the set of cluster machines, comprising:

providing a query to a master cluster machine for the set of tasks executing or pending on the set of cluster machines; and

receiving the set of tasks executing or pending on the set of cluster machines from the master cluster machine.

16. The allocation system of claim 1 , wherein the processor is further configured to determine a list of cluster machines storing the one or more intermediate data files of the set of intermediate data files, comprising:

querying data storage associated with each cluster machine of the set of cluster machines; and

creating a list of cluster machines storing intermediate data files associated with tasks of the set of tasks.

17. The allocation system of claim 1 , wherein the list of cluster machines is filtered for intermediate data files that are need for later processing.

18. A method for allocation, comprising:

receiving an indication to deactivate idle cluster machines of a set of cluster machines; and

determining, using a processor, a set of tasks executing or pending on the set of cluster machines;

determining a set of idle cluster machines of the set of cluster machines, wherein the set of idle cluster machines comprises all cluster machines of the set of cluster machines that are neither running one or more tasks of the set of tasks nor storing one or more intermediate data files of a set of intermediate data files, wherein the set of intermediate data files are associated with the set of tasks executing or pending on the set of cluster machines; and

deactivating each cluster machine of the set of idle cluster machines.

19. A computer program product for allocation, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an indication to deactivate idle cluster machines of a set of cluster machines; and

determining a set of tasks executing or pending on the set of cluster machines;

determining a set of idle cluster machines of the set of cluster machines, wherein the set of idle cluster machines comprises all cluster machines of the set of cluster machines that are neither running one or more tasks of the set of tasks nor storing one or more intermediate data files of a set of intermediate data files, wherein the set of intermediate data files are associated with the set of tasks executing or pending on the set of cluster machines; and

deactivating each cluster machine of the set of idle cluster machines.

Assignments (3)
SECURITY INTEREST Recorded Jan 6, 2025
From: DATABRICKS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069825/0419 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 048156 FRAME: 0037. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 14, 2023
From: SHANKAR, SRINATH; LIANG, ERIC KENG-HAO
To: DATABRICKS, INC.
Reel/Frame 064275/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2019
From: SHANKAR, SRINATH; LIANG, ERIC KENG-HAO
To: DATABRICKS INC.
Reel/Frame 048156/0037 →
Cited By (3)
US 12,292,870 US 12,524,688 US 12,608,366