IP Library › Granted Patent US 9,389,995
Granted Patent B2
US 9,389,995 · App. 14/161,972 · Granted Jul 12, 2016

Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning

Inventors: Zhenhua Hu (Toronto, CA); Hao Hai Ma (Markham, CA); Wentao Tang (Beijing, CN); Qiang Xu (ShannXi, CN)
Assignee: International Business Machines Corporation
G06F12/00G06F9/544
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,389,995
App. No.
14/161,972
Granted
Jul 12, 2016
Kind
B2
Abstract

A shuffler receives information associated with partition segments of map task outputs and a pipeline policy for a job running on a computing device. The shuffler transmits to an operating system of the computing device a request to lock partition segments of the map task outputs and transmits an advisement to keep or load partition segments of map task outputs in the memory of the computing device. The shuffler creates a pipeline based on the pipeline policy, wherein the pipeline includes partition segments locked in the memory and partition segments advised to keep or load in the memory, of the computing device for the job, and the shuffler selects the partition segments locked in the memory, followed by partition segments advised to keep or load in the memory, as a preferential order of partition segments to shuffle.

Claims (25)

1. A method for optimizing a MapReduce shuffle, the method comprising:

receiving information associated with partition segments of map task outputs and a pipeline policy for a job running on a computing device;

transmitting to an operating system of the computing device a request to lock partition segments of the map task outputs in a memory of the computing device;

transmitting to the operating system of the computing device an advisement to keep or load partition segments of map task outputs in the memory of the computing device, based on a capacity of the memory of the computing device, wherein partition segments of the map task outputs requested to be locked in the memory of the computing device are different from the partition segments of map task outputs advised to keep or load in the memory of the computing device;

creating a pipeline based on the pipeline policy, wherein the pipeline includes partition segments of map task outputs locked in the memory of the computing device and partition segments of map task outputs advised to keep or load in the memory; of the computing device for the job; and

selecting the partition segments locked in the memory, followed by the partition segments advised to keep or load in the memory, as a preferential order of partition segments to shuffle.

2. The method of claim 1 , further comprising shuffling the partition segments, which are selected, wherein the shuffling further comprises:

receiving a request from a reducer to fetch partition segments of the map task outputs for a current round of fetch requests;

shuffling the partition segments, which are selected, to the reducer in response to receiving the request for the current round of the fetch requests; and

building the pipeline for a next round of the fetch requests, prior to receiving from the reducer a request for the next round of the fetch requests, wherein the pipeline for the next round of the fetch requests includes partition segments selected in the preferential order.

3. The method of claim 2 , further comprising:

receiving, by a shuffler of a first computing device, information associated with which of the partition segments have been shuffled to a current reduce task, from a reducer of the job, which is operating on a second computing device; and

synchronizing, by the shuffler of the first computing device, the partition segments which are shuffled and awaiting to be shuffled for the current reduce task, with the reducer of the second computing device, wherein each of the partition segments is to be shuffled to the current reduce task on the second computing device to which the partition segments correspond, and each of the partition segments is shuffled once.

4. The method of claim 3 , wherein the information associated with which partition segments have been shuffled includes an ID of the job, an ID of a current reduce task, an ID of a current reducer process, an ID of a previous shuffle process of the shuffler on the first computing device, and a number of the partition segments shuffled for the current reduce task, from a reducer of the job, which is operating on a second computing device.

5. The method of claim 1 , further comprising:

receiving information including a schedule of a first computing device on which a reduce task is planned to run and has not started to run;

performing a shuffle-ahead prior to the reduce task starting to run, wherein the shuffle-ahead includes a shuffler of the first computing device contacting a shuffler of a second computing device on which partition segments are stored in a pipeline in the shuffler of the second computing device for the job; and

fetching, by the shuffler of the first computing device, the partition segments in the pipeline of the shuffler of the second computing device, which are associated with the reduce task scheduled to run on the first computing device, to the shuffler of the first computing device.

6. The method of claim 1 , further comprising:

receiving by a shuffler of a second computing device, a plan to schedule a reduce task to run on a first computing device, prior to the reduce task starting to run; and

performing, by the shuffler of the second computing device, a shuffle-ahead prior to the reduce task starting to run, wherein the shuffler of the second computing device writes partition segments directly to the memory of the shuffler of the first computing device, prior to receiving a fetch request from the first computing device.

7. The method of claim 1 , wherein a shuffle-ahead is performed by a mapper of a second computing device writing the partition segments directly to a shuffler of a first computing device, prior to receiving a fetch request from the first computing device.

8. The method of claim 1 , wherein the pipeline policy includes an affinity of map task and reduce task schedule planning, wherein reduce tasks of the job are scheduled to run on resources on or in a vicinity of the resources on which map tasks corresponding to the reduce tasks of the job have been scheduled.

9. The method of claim 1 , wherein the pipeline policy includes a shuffler requesting the operating system to lock the partition segments most recently generated into the memory.

10. The method of claim 1 , wherein the pipeline policy includes a shuffler advising the operating system to keep or load partition segments most recently generated into the memory, based on the capacity of the memory.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF ASSIGNOR HAO HAI MA'S NAME PREVIOUSLY RECORDED ON REEL 032028 FRAME 0038. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 13, 2020
From: HU, ZHENHUA; MA, HAO HAI; TANG, WENTAO; XU, QIANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 052163/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2014
From: HU, ZHENHUA; MA, HOA H.; TANG, WENTAO; XU, QIANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032028/0038 →
Continuity (2)
Continuation 14090282 · Nov 26, 2013
Related Publication 20150150018A1 · May 28, 2015