September 27, 20051 Instabilities and Oscillations in Networks of Queues Matthew Andrews Bell Labs...

Post on 11-Jan-2016

215 views 3 download

Transcript of September 27, 20051 Instabilities and Oscillations in Networks of Queues Matthew Andrews Bell Labs...

September 27, 2005 1

Instabilities and Oscillations in Networks of Queues

Matthew AndrewsBell Labs

Joint work with Alex Slivkins (Cornell)

2

Network of routers and sessions

session: sender fixed flow path receiver router: intersection inside the network

S1 router A

S2

t2

router B

S3

t3

t1

3

Queueing Model

Model router as simple queue

Each queue has a capacity = service rate

if total arrival rate capacitythen all traffic is routedwithout congestion or queuing

else, congestion occurs:queue builds up, traffic is delayed

S1 S2 S3

t1 t2 t3

4

S1 router A

S2

t2

router B

S3

t3

t1 modeled as

S1S2

t2

S3

t3 t1

Network of Queues

5

FIFO Queue

FIFO queue serves packets in order received

We consider idealized model in which packet size 0

Study rate at which data arrives at/departs from queue

S1 S2 S3

t1 t2 t3

6

Fluid-based FIFO queue

session = continuous flow, not a discrete stream of packets what is a fluid-based FIFO queue? [Bramson]

h(t) = height of the queue at time t = [total amount of fluid] / [capacity C]

given arrival rates in1(t), in2(t), in3(t)what is h(t) and what are exit rates outi(t)?

S1 S2 S3

t1 t2 t3

h

C

if h(t) = 0 and j inj(t) C thenall flow just comes through: outi(t) = ini(t)

else, capacity is divided proportionally,and the excessive fluid is queued up

outi(t+h(t)) = ini(t) C / j inj(t)

7

Part 1: Traffic generated by external arrival process Study “queueing theoretic stability” Can we keep the queue sizes bounded? Result: FIFO can be unstable at arbitrarily small network loads

Part 2: Traffic controlled by end-to-end congestion control (e.g. TCP) Study “control theoretic stability” Does the system oscillate? Result: end-to-end congestion control can cause oscillations

Talk Outline

8

Network of FIFO queues, external traffic arrivals

Definitions Stable: queuesizes remain bounded

Unstable: queuesizes are unbounded

We would like queues to be stable as long as no queue is overloaded

Part 1: FIFO stability

Tota

l queuesi

zeTota

l queuesi

ze

Time

Time

Stable

Unstable

??

9

Each session i has rate i

Injection rate into session i equals i at all times Sum of session rates passing through capacity C queue rC r = network load parameter Interesting case is r 1

Permanent sessions: Constant arrivals

S1S2

t2

S3

t3 t1

0.450.45

0.45

r = 0.9

Thm: (Bramson ‘96)FIFO stable for all r 1

Thm: (Bramson ‘96)FIFO stable for all r 1

10

Each session i has rate i

Injection rate into session i at most i at all times Sum of session rates passing through capacity C queue rC Standard model in networking literature, e.g.

Fair Queueing literature (e.g. Parekh-Gallager), Network calculus (e.g. Cruz, Le Boudec-Thiran book)

Permanent sessions: Bounded arrivals

S1S2

t2

S3

t3 t1

0.450.45

0.45

r = 0.9

11

Permanent sessions: Bounded arrivals

S1S2

t2

S3

t3 t1

0.20.45

0.1

r = 0.9

Each session i has rate i

Injection rate into session i at most i at all times Sum of session rates passing through capacity C queue rC Standard model in networking literature, e.g.

Fair Queueing literature (e.g. Parekh-Gallager), Network calculus (e.g. Cruz, Le Boudec-Thiran book)

12

Permanent sessions: Bounded arrivals

S1S2

t2

S3

t3 t1

0.450.3

0.45

r = 0.9

Thm: (‘00)FIFO can be unstable for r > 0.999999997

Thm: (‘00)FIFO can be unstable for r > 0.999999997

Each session i has rate i

Injection rate into session i at most i at all times Sum of session rates passing through capacity C queue rC Standard model in networking literature, e.g.

Fair Queueing literature (e.g. Parekh-Gallager), Network calculus (e.g. Cruz, Le Boudec-Thiran book)

13

Main Result

What happens at small network loads?

Is there some network load below which FIFO is stable? No!!!!

Thm: For all > 0, there exists network and injection pattern s.t.

Network load is r < The network is unstable

14

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

Existing fluidof height 1

15

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

Total arrival rate 1 +

Departure rate / 1 + Departure rate

/ 1 +

Arrival rate / 1 +

Departure rate 1

16

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

Total arrival rate 1 +

Departure rate / 1 + Departure rate

/ 1 +

Arrival rate / 1 +

Departure rate 1

17

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

Total arrival rate 1 +

Departure rate / 1 + Departure rate

/ 1 +

Arrival rate / 1 +

Departure rate 1

18

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

19

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

20

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

21

Transfer Process

How can we move fluid from one FIFO queue to another?

Injection rate

22

Can repeat transfer process indefinitely

Repeated Transfer Process

23

Can repeat transfer process indefinitely

Repeated Transfer Process

24

Can repeat transfer process indefinitely

Repeated Transfer Process

25

Repeated Transfer Process

Can repeat transfer process indefinitely Two problems:

Want amount of fluid to grow! Sessions are of finite length: some fluid eventually departs

26

Transfer Process Revisited

Replace departing fluid

Injection rate Injection rate

Departure rate <

27

Injection rate

Replace departing fluid

Transfer Process Revisited

Injection rate

Departure rate <

28

Injection rate

Replace departing fluid

Transfer Process Revisited

Injection rate

Departure rate <

29

Injection rate

Replace departing fluid

Transfer Process Revisited

Injection rate

Departure rate <

Works but network load r >> 1

Works but network load r >> 1

30

Parallel Transfers

Injection rate

Departure rate ~

Arrival rate ~

1 2 3 4

Transfer process between queues 1 & 3 Transfer process between queues 2 & 4 Newly injected traffic passes through queues 1&2 Queues 1&2 are decreasing: hence rate amplification!!!

31

Parallel Transfers

Injection rate

Departure rate ~

Arrival rate ~

1 2 3 4

For a sufficiently large number of parallel transfers Can make arriving traffic have higher rate than departing traffic Instability!!!

32

Part 1 of talk: External arrival process Injection patterns could be independent of queueing

behavior Part 2 of talk:

Injection patterns governed by congestion control (e.g. TCP)

Does TCP converge? Can it oscillate?

S router A router B t

Part 2: Stability of congestion control

33

sender does not know in advance how much bandwidth will be available at a given time, needs to adjust dynamically

goal: use available bandwidth, but avoid congestion if all routers on session path have some bandwidth

available,source should increase the sending rate

if one of the routers on session path is congested,source should decrease the sending rate

S router A router B t

End-to-end congestion control

rate ? rate ?

rate ? rate ?

34

End-to-end congestion control

design principle: routers do not give feedback to senders sender does not know what goes on inside the Internet

however, sender can get limited feedback from the receiver

can determine whether congestion occurred on the path TCP protocol: additive increase, multiplicative decrease

no congestion increase sending rate by 1 congestion decrease sending rate by half

S router A router B t

rate ? rate ?

rate ? rate ?

35

Network as dynamical system

system = {network of routers and fixed set of sessions} state = {sending rates of sessions, composition of queues} dynamics: TCP-like congestion control, FIFO queues

choose initial state and let the system run we’d like the system to converge, preferably to some nice

state

S1 router

S2

t2

router

S3

t3

t1

36

Convergence vs oscillations Prior work: for a version of TCP,

system converges to a social optimumstarting from any initial state

[Kelly, Maulloo, Tan ’98],[Low et al.]and a large body of follow-up work

S1 router

S2

t2

router

S3

t3

t1

However, this work uses an approximation of FIFO dynamics: congestion of a queue Q = F(sending rates of sessions that use Q)

in reality it is a function of arrival rates, which may be different

we model congestion as a function of arrival rates

37

Kelly, Maulloo, Tan

Example prior work

: ( )

( )

2

( ) ( ) ( )

( ) ( )

( ) ( 1 ) /

i i i QQ i S Q

Q Q ii S Q

Q

x t w x t t

t p x t

p y y

xi (t) = injection rate into flow i at time t pQ = “shadow price” for congestion at router Q

38

Convergence vs oscillations Prior work: for a version of TCP,

system converges to a social optimumstarting from any initial state

[Kelly, Maulloo, Tan ’98] + follow-ups approximation of FIFO dynamics

S1 router

S2

t2

router

S3

t3

t1

Our contribution: for any TCP-like congestion control mechanism,there exists a network of routers and a set of sessions such thatstarting from a certain initial state, system oscillates

at all times, for each router, the total sending rate of all sessions that use this router is less than its capacity

at all times, for each router, the total sending rate of all sessions that use this router is less than its capacity

39

Fluid-based FIFO queue

session = continuous flow, not a discrete stream of packets

h(t) = height of the queue at time t = [total amount of fluid] / [capacity C]

given arrival rates in1(t), in2(t), in3(t)what is h(t) and what are exit rates?FIFO

queue

S1 S2 S3

t1 t2 t3

h

C

if h(t) = 0 and j inj(t) C thenall flow just comes through

else, capacity is divided proportionally,and the excessive fluid is queued up

40

Sending rates vs arrival rates

due to queues that are upstream,in general arrival rates in1(t), in2(t), in3(t)are different from sending rates

all convergence results from prior workuse sending rates instead of arrival rates

we use the true arrival rates

FIFOqueue

S1 S3

t1 t2 t3

h

C

S2

ini(t)

41

??

Parameterized congestion control

sender detects congestion using feedback from receiver yes decrease sending rate; no increase sending rate

S t

no congestion: all queues are empty

S t

congestion: at least one queue is non-empty

42

Parameterized congestion control

discrete-time TCP: additive increase, multiplicative decrease yes decrease rate by half; no increase rate by 1

we use a continuous-time approximation yes congestion sending rate f(t) = f(0) et

no congestion sending rate g(t) = g(0) + t is the damping parameter that controls the rate of

change generalization: (almost) any flow increase function g(t),

any f(t) that satisfies some axioms, e.g. f(t) = f(0) t

sender detects congestion using feedback from receiver yes decrease sending rate; no increase sending rate

43

Main result

Theorem For any given congestion control {f(t), g(t)} there exists: damping parameter (same for all sessions) a network of routers, a set of sessions, and an initial state such that system oscillates and for each router, the total sendingrate of all sessions that use this router is always less than its

capacityNote routers are almost FIFO: each session is in one of the two priority classes FIFO scheduling for sessions within the same class

we are extending our construction to the all-FIFO case

we are extending our construction to the all-FIFO case

44

The basic gadget: high-level idea

Q1 Q4Q2 Q3S t

Q1 Q4Q2 Q3S tfinish1

1capacity 1<1 <1

Q1 Q4Q2 Q3S t1

start

45

The basic gadget: animation

Q1 Q4Q2 Q3S t

1capacity 1<1 <1

S’

t’

init rate 0

init rate 0

init rate

init rate

1

46

Q1 Q4Q2 Q3S t

1capacity 1<1 <1

The basic gadget: animation

S’

t’

rate = 0rate = 0

init rate

init rate

47

Q1 Q4Q2 Q3S t

1capacity 1<1 <1

The basic gadget: animation

S’

t’

rate = 0rate = 0

rate rate

48

Q1 Q4Q2 Q3S t

1capacity 1<1 <1

The basic gadget: animation

S’

t’

rate = 0rate = 0

rate = 0

rate = 0

1

49

Q1 Q4Q2 Q3S t

1capacity 1<1 <1

The basic gadget: animation

S’

t’

rate = 0rate = 0

rate rate

50

Connect two gadgets

identify Q4 from one gadget with Q1 from another

1 42 3

1 42 3

before

after 1 2 3 1 42 3

51

Row of gadgets

1 2 3 1 2 3 1 2 3 1 2 3S1 t1

fluid eventually reaches its destination, and the process stopsnot too exciting!

fluid eventually reaches its destination, and the process stopsnot too exciting!

52

Row of gadgets

1 2 3 1 2 3 1 2 3 1 2 3S1 t1

a better processa better process

53

Row of gadgets

1 2 3 1 2 3 1 2 3 1 2 3S1 t1

refill

a better processa better process

and now a refill happensand now a refill happens

54

Row of gadgets

1 2 3 1 2 3 1 2 3 1 2 3S1 t1

refill

a better processa better process

... and so on... and so on

55

Rows of gadgets

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

each row is running the same process, shifted in timeeach row is running the same process, shifted in time

56

Rows of gadgets

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

refill

refill

refill

each row is running the same process, shifted in timeeach row is running the same process, shifted in time

now a refill happensnow a refill happens

57

Rows of gadgets

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

refill

... and so on... and so on

Wait a sec... how do the refills happen ???Wait a sec... how do the refills happen ???

58

Refills and vertical sessions

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

1 2 3 1 2 3 1 2 3 1 2 3S4 t4

rate >0

rate >0

59

Refills and vertical sessions

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

1 2 3 1 2 3 1 2 3 1 2 3S4 t4

rate >0

rate >0

60

Refills and vertical sessions

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

1 2 3 1 2 3 1 2 3 1 2 3S4 t4

rate >0

rate >0

61

Refills and vertical sessions

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

1 2 3 1 2 3 1 2 3 1 2 3S4 t4

rate rate

62

Refills and vertical sessions

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

1 2 3 1 2 3 1 2 3 1 2 3

S1

S2

S3

t1

t2

t3

1 2 3 1 2 3 1 2 3 1 2 3S4 t4

rate = 0rate = 0

refilled !!!refilled !!!

63

Conclusions and open questionsEnd-to-end congestion control can cause oscillations prior work proved convergence but queueing dynamics not fully

captured with true queueing dynamics convergence is desirable but impossible

Our example is paranoid, but we need to replicate initial state exactly our result suggests that in practice convergence can be hard, too possible solution: integrate congestion control into routers,

e.g. Greedy Primal-Dual algorithm of Sasha Stolyar

Open questions: extension to the all-FIFO case non-FIFO schedulers, e.g. Generalized Processor Sharing