IP Library Granted Patent US 11,755,351
Granted Patent B2
US 11,755,351 · App. 17/834,256 · Granted Sep 12, 2023

Parallel processing of data

Inventors: Craig D. Chambers (Seattle, WA); Ashish Raniwala (Bellevue, WA); Frances J. Perry (Seattle, WA); Stephen R. Adams (Seattle, WA); Robert R. Henry (Seattle, WA); Robert Bradshaw (Seattle, WA); Nathan Weizenbaum (Seattle, WA)
Assignee: Google LLC
G06F9/45504G06F8/314G06F8/34G06F8/433G06F9/38G06F9/3851G06F9/3885G06F9/44G06F9/445G06F9/45533G06F9/4843G06F21/577G06F21/62G06F21/6218G06F9/30G06F9/4494G06F16/24532G06F16/24547G06F2221/034
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 11,755,351
App. No.
17/834,256
Granted
Sep 12, 2023
Kind
B2
Abstract

A data parallel pipeline may specify multiple parallel data objects that contain multiple elements and multiple parallel operations that operate on the parallel data objects. Based on the data parallel pipeline, a dataflow graph of deferred parallel data objects and deferred parallel operations corresponding to the data parallel pipeline may be generated and one or more graph transformations may be applied to the dataflow graph to generate a revised dataflow graph that includes one or more of the deferred parallel data objects and deferred, combined parallel data operations. The deferred, combined parallel operations may be executed to produce materialized parallel data objects corresponding to the deferred parallel data objects.

Claims (26)

1. A computer implemented method comprising:

receiving a plurality of parallel data objects;

receiving a plurality of parallel data operations associated with the plurality of parallel data objects;

generating a single mapreduce operation that includes a single map function to implement a plurality of multiple, parallel map operations and a single reduce function to implement a plurality of multiple, parallel reduce operations; and

executing the single mapreduce operation to produce as output a set of materialized parallel data objects associated with the received parallel data objects.

2. The computer implemented method of claim 1 , wherein generating the single mapreduce operation comprises generating the single mapreduce operation from a generalized mapreduce operation that includes multiple, parallel map operations and multiple, parallel reduce operations.

3. The computer implemented method of claim 1 , wherein the single map function comprises reading a collection of key, value pairs associated with the plurality of parallel data objects from an input source.

4. The computer implemented method of claim 3 , wherein the single map function comprises shuffling the collection of key, value pairs.

5. The computer implemented method of claim 4 , further comprising grouping together the key, value pairs with a first key to form a key-grouped data.

6. The computer implemented method of claim 5 , wherein the single reduce function comprises aggregating values associated with a given key.

7. The computer implemented method of claim 1 , wherein executing the single mapreduce operation comprises causing the single mapreduce operation to be copied and executed on multiple processing modules in one or more datacenters.

8. The computer implemented method of claim 1 , wherein executing the single mapreduce operation comprises causing the single mapreduce operation to be executed by multiple worker processes on multiple processing modules in a datacenter.

9. A system comprising:

one or more computing devices;

a memory storing instructions that when executed by the one or more computing devices caused the one or more computing devices to:

receive a plurality of parallel data objects;

receive a plurality of parallel data operations associated with the received plurality of parallel data objects;

generate a single mapreduce operation that includes a single map function to implement a plurality of multiple, parallel map operations and a single reduce function to implement a plurality of multiple, parallel reduce operations; and

execute the single mapreduce operation to produce as output a set of materialized parallel data objects associated with the received parallel data objects.

10. The system of claim 9 , wherein the instructions to generate the single mapreduce operation comprises generate the single mapreduce operation from a generalized mapreduce operation that includes multiple, parallel map operations and multiple, parallel reduce operations.

11. The system of claim 9 , wherein the single map function comprises a function to read a collection of key, value pairs associated with the plurality of parallel data objects from an input source.

12. The system of claim 11 , wherein the single map function comprises a function to shuffle the collection of key, value pairs.

13. The system of claim 12 , further wherein the instructions comprise instructions to group together the key, value pairs with a first key to form a key-grouped data.

14. The system of claim 13 , wherein the single reduce function comprises a function to aggregate values associated with a given key.

15. The system of claim 9 , wherein the instructions to execute the single mapreduce operation comprise instructions that cause the single mapreduce operation to be copied and executed on multiple processing modules in one or more datacenters.

16. The system of claim 9 , wherein the instructions to execute the single mapreduce operation comprise instructions that cause the single mapreduce operation to be executed by multiple worker processes on multiple processing modules in a datacenter.

Assignments (2)
CHANGE OF NAME Recorded Jun 14, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 060364/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2022
From: CHAMBERS, CRAIG D.; RANIWALA, ASHISH; PERRY, FRANCES J.; ADAMS, STEPHEN R.; HENRY, ROBERT R.; BRADSHAW, ROBERT; WEIZENBAUM, NATHAN
To: GOOGLE INC.
Reel/Frame 060135/0990 →
Continuity (9)
Continuation 17009420 · Sep 1, 2020
Continuation 16449987 · Jun 24, 2019
Continuation 16175925 · Oct 31, 2018
Continuation 15483044 · Apr 10, 2017
Continuation 14622556 · Feb 13, 2015
Continuation 14033145 · Sep 20, 2013
Division 12794348 · Jun 4, 2010
Provisional Application 61331148 · May 4, 2010
Related Publication 20220300310A1 · Sep 22, 2022