IP Library Granted Patent US 9,489,225
Granted Patent B2
US 9,489,225 · App. 14/156,149 · Granted Nov 8, 2016

Allocating resources for multi-phase, distributed computing jobs

Inventors: Senhua Huang (Fremont, CA); Debojyoti Dutta (Santa Clara, CA); Madhav Marathe (Cupertino, CA); Raghunath Nambiar (San Ramon, CA)
Assignee: Cisco Technology, Inc.
G06F9/45533G06F9/44505G06F9/5005
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 9,489,225
App. No.
14/156,149
Granted
Nov 8, 2016
Kind
B2
Abstract

In one embodiment, data indicative of the size of an intermediate data set generated by a first resource device is received at a computing device. The intermediate data set is associated with a virtual machine to process the intermediate data set. A virtual machine configuration is determined based on the size of the intermediate data set. A second resource device is selected to execute the virtual machine based on the virtual machine configuration and on an available bandwidth between the first and second resource devices. The virtual machine is then assigned to the second resource device to process the intermediate data set.

Claims (47)

1. A method comprising:

receiving, at a computing device, data indicative of the size of an intermediate data set generated by a first resource device;

associating the intermediate data set with a virtual machine to process the intermediate data set;

determining a virtual machine configuration based on the size of the intermediate data set;

selecting a second resource device to execute the virtual machine based on the virtual machine configuration and on an available bandwidth between the first and second resource devices; and

assigning the virtual machine to the second resource device to process the intermediate data set, wherein the intermediate data set is generated by a mapper task executed within a virtual machine on the first resource device and the virtual machine assigned to the second resource device executes a reducer task to process the intermediate data set.

2. The method of claim 1 , wherein determining the virtual machine configuration comprises:

determining, for each of a plurality of virtual machines, a virtual machine configuration such that the maximum computation time taken by any of the virtual machines in the plurality to process an intermediate data set is minimized.

3. The method of claim 2 , wherein a maximum number of virtual machines in the plurality is limited by a preset parameter.

4. The method of claim 1 , wherein the intermediate data set comprises one or more key/value pairs.

5. The method of claim 1 , wherein the virtual machine configuration comprises at least one of a memory size or a processor speed.

6. The method of claim 1 , further comprising:

receiving, at the device, an input data set; and

allocating a portion of the input data set to the first resource device to generate the intermediate data set.

7. The method of claim 1 , wherein selecting the second resource device to execute the virtual machine comprises:

heuristically searching a set of resource devices eligible to process one or more intermediate data sets for a resource device having enough available resources to support the virtual machine configuration; and

identifying the second resource device as having enough available resources to support the virtual machine configuration.

8. The method of claim 1 , wherein selecting the second resource device to execute the virtual machine comprises:

identifying the intermediate data set as the largest intermediate data set generated by one of a plurality of resource devices;

searching a set of resource devices eligible to process one or more intermediate data sets for a resource device having the highest bandwidth; and

identifying the second resource device as the resource device having the highest bandwidth among the set of resource devices eligible to process one or more intermediate data sets.

9. An apparatus comprising:

one or more network interfaces configured to communicate in a computer network;

a processor configured to execute one or more processes; and

a memory configured to store a process executable by the processor, the process when executed operable to:

receive data indicative of the size of an intermediate data set generated by a first resource device;

associate the intermediate data set with a virtual machine to process the intermediate data set;

determine a virtual machine configuration for processing a next computational phase of the intermediate data set based on the size of the intermediate data set;

select a second resource device to execute the virtual machine based on the virtual machine configuration and on an available bandwidth between the first and second resource devices; and

assign the virtual machine to the second resource device to process the intermediate data set, wherein the intermediate data set is generated by a mapper task executed within a virtual machine on the first resource device and the virtual machine assigned to the second resource device executes a reducer task to process the intermediate data set.

10. The apparatus of claim 9 , wherein the process, when executed, is further operable to:

determine, for each of a plurality of virtual machines, a virtual machine configuration such that the maximum computation time taken by any of the virtual machines in the plurality to process an intermediate data set is minimized.

11. The apparatus of claim 10 , wherein a maximum number of virtual machines in the plurality is limited by a preset parameter.

12. The apparatus of claim 9 , wherein the intermediate data set comprises a key/value pair.

13. The apparatus of claim 9 , wherein the virtual machine configuration comprises at least one of a memory size or a processor speed.

14. The apparatus of claim 9 , wherein the process, when executed, is further operable to:

heuristically search a set of resource devices eligible to process one or more intermediate data sets for a resource device having enough available resources to support the virtual machine configuration; and

identify the second resource device as having enough available resources to support the virtual machine configuration.

15. The apparatus of claim 9 , wherein the process, when executed, is further operable to: identify the intermediate data set as the largest intermediate data set generated by one of a plurality of resource devices;

search a set of resource devices eligible to process one or more intermediate data sets for a resource device having the highest bandwidth; and

identify the second resource device as the resource device having the highest bandwidth among the set of resource devices eligible to process one or more intermediate data sets.

16. A tangible, non-transitory, computer-readable media medium having software encoded thereon, the software, when executed by a processor, operable to:

receive data indicative of the size of an intermediate data set generated by a first resource device;

associate the intermediate data set with a virtual machine to process the intermediate data set;

determine a virtual machine configuration for processing a next computational phase of the intermediate data set based on the size of the intermediate data set;

select a second resource device to execute the virtual machine based on the virtual machine configuration and on an available bandwidth between the first and second resource devices; and

assign the virtual machine to the second resource device to process the intermediate data set wherein the intermediate data set is generated by a mapper task executed within a virtual machine on the first resource device and the virtual machine assigned to the second resource device executes a reducer task to process the intermediate data set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2014
From: HUANG, SENHUA; DUTTA, DEBOJYOTI; MARATHE, MADHAV; NAMBIAR, RAGHUNATH
To: CISCO TECHNOLOGY, INC.
Reel/Frame 032227/0529 →
Continuity (1)
Related Publication 20150199208A1 · Jul 16, 2015