25
Coflo w A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Embed Size (px)

Citation preview

Page 1: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

CoflowA Networking Abstraction For Cluster Applications

UC Berkeley

Mosharaf Chowdhury Ion Stoica

Page 2: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Cluster Applications

Multi-Stage Data Flows»Computation interleaved

with communication

Computation»Distributed»Runs on many machines

Communication»Structured»Between machine groups

2

Driver

Page 3: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

A Flow»Sequence of packets» Independent»Often the unit for network

scheduling, traffic engineering, load balancing etc.

Multiple Parallel Flows» Independent»Yet, semantically bound»Shared objective

3

Driver

Communication Abstraction

Minimize Completion Time

Page 4: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Coflow

A collection of flows between two groups of machines that are bound together by application-specific

semantics

A collection of flows between two groups of machines that are bound together by application-specific

semantics

Captures

1.Structure

2.Shared Objective

3.Semantics

4

Page 5: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

We Want To…

Better schedule the network» Intra-coflow» Inter-coflow

Write the communication layer of a new application

»Without reinventing the wheel

Add unsupported coflows to an application, orReplace an existing coflow implementation

» Independent of applications

5

Page 6: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

6

Coflow

APIThe Network

(Physically or Logically Centralized Controller)

ClusterApplications

Page 7: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

7

Coflow

APIGoals1.Separate intent from mechanisms

2.Convey application-specific semantics to the network

Goals1.Separate intent from mechanisms

2.Convey application-specific semantics to the network

Page 8: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

8

Coflow

APIShuffl

e finish

es

MapReduce

Job finishe

s

create(SHUFFLE) handle

put(handle, id, content)

get(handle, id) content

terminate(handle)

Driver

Page 9: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Choice of algorithms

»Default»WSS1

Choice of mechanism

»App vs. Network layer

»Pull vs. Push

Choice of algorithms

»Default»WSS1

Choice of mechanism

»App vs. Network layer

»Pull vs. Push

9

mappers

reducers

shuffl

e

1. Orchestra, SIGCOMM’2011

CoflowFlexibility

Page 10: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

10

mappers

reducers

shuffl

e

driver (JobTracker)

bro

adca

st

@driverb create(BCAST)…

put(b, id, content)

…terminate(b)

@mapperget(b, id)…

CoflowFlexibility

Page 11: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

11

mappers

reducers

shuffl

e

driver (JobTracker)

bro

adc

ast

@driverb create(BCAST)s create(SHUFFLE, ord=[b ~> s])

put(b, id, content)

…terminate(b)terminate(s)

@mapperget(b, id)put(s, ids1)…

CoflowFlexibility

Page 12: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Throughput-Sensitive Applications

12

Minimize Completion Time

After 2 seconds

Page 13: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Throughput-Sensitive Applications

13

After 2 seconds

After 7 secondsAfter 4 seconds

Minimize Completion Time

Page 14: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Throughput-Sensitive Applications

14

After 2 seconds

After 7 seconds

Minimize Completion Time

Free up resources

without hurting application-perceived

communication time

Free up resources

without hurting application-perceived

communication time

Page 15: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

HotNets 2012

Latency-Sensitive Applications

15

Top-level Aggregat

or

Mid-level Aggregat

ors

Workers

Page 16: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Top-level Aggregat

or

Mid-level Aggregat

ors

Workers

Latency-Sensitive Applications

16

HotNets 2012

Meet Deadlin

e1,2

Meet Deadlin

e1,2

1. D3, SIGCOMM’20112. PDQ, SIGCOMM’2012

HotNets-XI: Home Pageconferences.sigcomm.org/hotnets/2012/The Eleventh ACM Workshop on Hot Topics in Networks (HotNets-XI) will bring together people with interest in computer networks to engage in a lively debate ...

HotNets Workshop | acm sigcommwww.sigcomm.org/events/hotnets-workshopThe Workshop on Hot Topics in Networks (HotNets) was created in 2002 to discuss early-stage, creative ... HotNets-XI, Seattle, WA area, October 29-30, 2012.

HotNets-XI: Call for Papersconferences.sigcomm.org/hotnets/2012/cfp.shtmlThe Eleventh ACM Workshop on Hot Topics in Networks (HotNets-XI) will bring together researchers in computer networks and systems to engage in a lively ...

Coflow accepted at HotNets'2012www.mosharaf.com/blog/2012/09/.../coflow-accepted-at-hotnets201...Sep 13, 2012 – Update: Coflow camera-ready is available online! Tell us what you think! Our position paper to address the lack of a networking abstraction for ...

Limit impact to as few requests

as possible

Limit impact to as few requests

as possible

Page 17: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

One More Thing…

1. Critical Path Scheduling

2. OpenTCP

3. Structured Streams

4. …

17

Page 18: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Coflow

UC Berkeley

Mosharaf Chowdhury http://www.mosharaf.com/

A semantically-bound collection of flowsConveys application intent to the network

»Allows better management of network resources

»Provides greater flexibility in designing applications

Page 19: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Communication of a cluster application is represented by a partially-ordered set of coflows

Network allocation takes place among these partially-ordered sets of coflows

Critical Path Scheduling

19

S

B

S

A

S

S

A

S

Page 20: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

20

Operation Caller

create(PATTERN, [opt]) handle

Driver

put(handle, id, content, [opt]) result

Sender

get(handle, id, [opt]) content

Receiver

terminate(handle, [opt]) result

Driver

Coflow

API

Page 21: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

Throughput-Sensitive Applications

21

Local shuffle finishesLocal shuffle finishes

Shuffle finishes

Data Flow

Minimize Completio

n Time1

MapReduce

Framework

Job finishes

Map Stage

Reduce Stage

1. Orchestra, SIGCOMM’2011

Page 22: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

22

CoflowResourceAllocation1. Weights[Across Apps]

mappers

reducers

shuffl

e1

mappers

reducers

shuffl

e2

Job 1 Job 2

Weighted sharing between coflows@driver

shuffle1 create(SHUFFLE, weight=1)shuffle2 create(SHUFFLE, weight=2)…

Weighted sharing between coflows@driver

shuffle1 create(SHUFFLE, weight=1)shuffle2 create(SHUFFLE, weight=2)…

Page 23: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

23

Strict priorities@driver

shuffle1 create(SHUFFLE, pri=3)shuffle2 create(SHUFFLE, pri=5)…

Strict priorities@driver

shuffle1 create(SHUFFLE, pri=3)shuffle2 create(SHUFFLE, pri=5)…

CoflowResourceAllocation2. Priorities[Across Apps]

mappers

reducers

shuffl

e1

mappers

reducers

shuffl

e2

Job 1 Job 2

Page 24: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

24

CoflowResourceAllocation3. Dependencies[Within Apps]

mappers

reducers

shuffl

e2

driver

bro

adca

st

(b)

mappers

reducers

shuffl

e1

Job 1 Job 2

aggre

gati

on(

agg)

finishes_before (~>)@driver

b create(BCAST)shuffle2 create(SHUFFLE, ord=[b ~> shuffle2])agg create(AGGR, ord=[shuffle2 ~> agg])

finishes_before (~>)@driver

b create(BCAST)shuffle2 create(SHUFFLE, ord=[b ~> shuffle2])agg create(AGGR, ord=[shuffle2 ~> agg])

Page 25: Coflow A Networking Abstraction For Cluster Applications UC Berkeley Mosharaf Chowdhury Ion Stoica

25

CoflowResourceAllocation

Communication of a cluster application

is represented by a partially-ordered set of coflows

Network allocation takes place among these partially-ordered sets

of coflows

Communication of a cluster application

is represented by a partially-ordered set of coflows

Network allocation takes place among these partially-ordered sets

of coflows

S

B

S

A

S

S

A

S