FAB: Towards Flow-aware Bu fg er Sharing in Programmable Switches - - PowerPoint PPT Presentation

fab towards flow aware bu fg er sharing in programmable
SMART_READER_LITE
LIVE PREVIEW

FAB: Towards Flow-aware Bu fg er Sharing in Programmable Switches - - PowerPoint PPT Presentation

FAB: Towards Flow-aware Bu fg er Sharing in Programmable Switches Maria Apostolaki Joint work with Laurent Vanbever & Manya Ghobadi An old story An old story Fan-in causing queue built-up Switch Senders Receivers An


slide-1
SLIDE 1

FAB: Towards Flow-aware Bufger Sharing in Programmable Switches

Joint work with Laurent Vanbever & Manya Ghobadi

Maria Apostolaki

slide-2
SLIDE 2

An old story…

slide-3
SLIDE 3

Fan-in causing queue built-up An old story…

… …

Switch Senders Receivers

slide-4
SLIDE 4

Fan-in causing drops An old story…

… …

Switch Drops Senders Receivers

slide-5
SLIDE 5

High tail FCT SLA violations Drops

… …

Switch Drops Drops increase Flow Completion Times An old story…

slide-6
SLIDE 6

An old story…

Active Queue Management Scheduling TCP Version

Multiple approaches to address this issue

… …

Switch Drops

slide-7
SLIDE 7

An old story…

Active Queue Management Scheduling TCP Version

Multiple approaches to address this issue

… …

Switch Drops

slide-8
SLIDE 8

An old story…

Active Queue Management Scheduling TCP Version

Multiple approaches to address this issue

… …

Switch Drops

slide-9
SLIDE 9

An old story…

Active Queue Management Scheduling TCP Version

Multiple approaches to address this issue

… …

Switch Drops

slide-10
SLIDE 10

Bufger management: the algorithm according to which ports/queues of a device share a common bufger

slide-11
SLIDE 11

Bufger management: the algorithm according to which ports/queues of a device share a common bufger

Most of today’s devices have a shared bufger to absorb bursts

slide-12
SLIDE 12

… …

Switch How many packets can each port store in the common bufger?

slide-13
SLIDE 13

… …

Switch

remaining excessive packets will be dropped

How many packets can each port store in the common bufger?

slide-14
SLIDE 14

… …

Switch How many packets can each port store in the common bufger?

Let’s give… …half of the bufger to each port! …small fraction to each port!

remaining excessive packets will be dropped

slide-15
SLIDE 15

FAB: Towards Flow-aware Bufger Sharing in Programmable Switches

Joint work with Laurent Vanbever & Manya Ghobadi

slide-16
SLIDE 16

Practicality Outline Background FAB Initial Results

slide-17
SLIDE 17

Practicality Outline Background FAB Initial Results

slide-18
SLIDE 18

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-19
SLIDE 19

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-20
SLIDE 20

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-21
SLIDE 21

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-22
SLIDE 22

Simulation Results

… …

Senders Receivers Switch Back to our story…

slide-23
SLIDE 23

Simulation Results Shared bufger can host up to 180 packets Senders Receivers

180 packets … …

Switch

slide-24
SLIDE 24

Simulation Results Long flows will consume as much bufger as there is available

… …

Senders Long Flows Receivers Switch

45 90 135 180 0.4 0.8 1.2 # pkts bufgered Time (sec)

port 1

slide-25
SLIDE 25

Simulation Results Senders Long Flows Short Flows Short flows will attempt to instantaneously store at most 75 packets in the shared bufger Receivers

20 40 60 80 0.4 0.8 1.2 45 90 135 180 0.4 0.8 1.2

… …

Switch

# pkts bufgered Time (sec) # pkts bufgered Time (sec)

port 1 port 2

slide-26
SLIDE 26

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-27
SLIDE 27

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns) 20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

0.2 0.6 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

Complete Partitioning: static bufger space per port = 10 packets

slide-28
SLIDE 28

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns) 20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Receiver of long flows bufgers up to 10 packets

0.2 0.6 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-29
SLIDE 29

Receiver of long flows bufgers up to 10 packets

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-30
SLIDE 30

Receiver of long flows bufgers up to 10 packets

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

95%

5%

used by port 1

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

Unused

slide-31
SLIDE 31

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Receiver of short flows bufgers up to 10 packets

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-32
SLIDE 32

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Receiver of short flows bufgers up to 10 packets

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-33
SLIDE 33

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns) 20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

90%

5% 5%

used by port 2 Unused

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

Bufger is 90% empty

slide-34
SLIDE 34

Bufger is 90% empty, yet the burst is not absorbed

20 40 60 80 100 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Burst Size

90%

5% 5%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-35
SLIDE 35

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-36
SLIDE 36

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-37
SLIDE 37

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Complete Sharing: unrestricted bufger space per port

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-38
SLIDE 38

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Long flows use all bufger

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-39
SLIDE 39

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Long flows use all bufger

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-40
SLIDE 40

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Long flows use all bufger

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

100%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-41
SLIDE 41

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Upon arrival, the burst finds the bufger fully occupied

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-42
SLIDE 42

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns) 20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

10%

90%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

The bufger is fully utilized

slide-43
SLIDE 43

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

The bufger is fully utilized, but the burst is not absorbed

20 40 60 80 100 120 140 160 180 200 2x108 4x108 6x108 8x108 1x109 1.2x109 # Pkts in Buer Time (ns)

Burst Size

10%

90%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-44
SLIDE 44

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits continuous bufger use

adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-45
SLIDE 45

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-46
SLIDE 46

Dynamic Sharing: fraction (α) of remaining bufger per port Limit per port = α αn + 1 N

n: Number of congested ports N: Bufger Size (packets/Bytes) α: per port/queue parameter

slide-47
SLIDE 47

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

Dynamic Sharing: a fraction (α) of remaining shared bufger per port

slide-48
SLIDE 48

One port uses bufger. Limit =

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 1 1 + 1 180 = 90 =

slide-49
SLIDE 49

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

One port uses bufger. Limit = α αn + 1 N 1 1 + 1 180 = 90 =

slide-50
SLIDE 50

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

One port uses bufger. Limit = α αn + 1 N 1 1 + 1 180 = 90 =

50% 50%

slide-51
SLIDE 51

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

Two port uses bufger. Limit = α αn + 1 N 1 2 + 1 180 = 60 =

slide-52
SLIDE 52

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

Two port uses bufger. Limit = α αn + 1 N 1 2 + 1 180 = 60 =

slide-53
SLIDE 53

33% of the bufger is empty,

33% 33% 33%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-54
SLIDE 54

33% of the bufger is empty, yet the burst is not fully absorbed Burst Size

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-55
SLIDE 55

Three common bufger management techniques with pros & cons

Complete Partitioning: statically allocated bufger space per port Complete Sharing: unrestricted bufger space per port Dynamic Sharing: fraction (α) of remaining bufger per port

benefits long flows adapts fairly to load ignores queue content works for unbalanced traffjc wastes bufger otherwise works for balanced traffjc

slide-56
SLIDE 56

Why should we care about queue content?

slide-57
SLIDE 57

Short flows would benefit more from bufger

Why should we care about queue content?

slide-58
SLIDE 58

Practicality Outline Background FAB Initial Results

slide-59
SLIDE 59

deciding packet’s priority directly in the data plane

e.g. prioritizing packets based on flow size

mapping packets to an α according to priority

α is proportionate to the per-flow expected benefit from bufgering

FABULOUS Sharing (FAB) improves dynamic sharing by

slide-60
SLIDE 60

deciding packet’s priority directly in the data plane

e.g. prioritizing packets based on flow size

mapping packets to an α according to priority

α is proportionate to the per-flow expected benefit from bufgering

Flow-aware Bufger Sharing (FAB) improves dynamic sharing by

slide-61
SLIDE 61

Flow-aware Bufger Sharing (FAB) improves dynamic sharing by

deciding packet’s priority directly in the data plane

e.g. prioritizing packets based on flow size

using multiple α per queue/port

Two packets of same ingress and egress port which arrived together, might see difgerent limits

mapping packets to an α according to priority

α is proportionate to the per-flow expected benefit from bufgering

slide-62
SLIDE 62

deciding packet’s priority directly in the data plane

e.g. prioritizing packets based on flow size

using multiple α per queue/port

Two packets of same ingress and egress port which arrived together, might see difgerent limits

mapping packets to an α according to priority

α is proportionate to the per-flow expected benefit from bufgering

Flow-aware Bufger Sharing (FAB) improves dynamic sharing by

slide-63
SLIDE 63

deciding packet’s priority directly in the data plane

e.g. prioritizing packets based on flow size

using multiple α per queue/port

Two packets of same ingress and egress port which arrived together, might see difgerent limits

mapping packets to an α according to their priority in bufgering

α is proportionate to the per-flow expected benefit from bufgering

Flow-aware Bufger Sharing (FAB) improves dynamic sharing by

slide-64
SLIDE 64

Flow-aware Bufger Sharing (FAB) α=0.1 for long flows α= 10 for short flows

slide-65
SLIDE 65

Flow-aware Bufger Sharing (FAB)

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-66
SLIDE 66

FAB maps long flows to α=0.1

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-67
SLIDE 67

Limit for long flows =

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 0.1 0.1 + 1 180 = 16 =

slide-68
SLIDE 68

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 0.1 0.1 + 1 180 = 16 = Limit for long flows =

slide-69
SLIDE 69

90%

10%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 0.1 0.1 + 1 180 = 16 = Limit for long flows =

slide-70
SLIDE 70

FAB maps short flows to α=10

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

slide-71
SLIDE 71

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 10 10*2 + 1 180 = 85 = Limit for short flows =

slide-72
SLIDE 72

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 10 10*2 + 1 180 = 85 = Limit for short flows =

slide-73
SLIDE 73

48% 42%

10%

0.2 1 0.4 0.6 0.8 Time (s) # Pkts in Buffer

α αn + 1 N 10 10*2 + 1 180 = 85 = Limit for short flows =

slide-74
SLIDE 74

Practicality Outline Background FAB Initial Results

slide-75
SLIDE 75

Short-Flows Workload Simulation Results Mixed Workload

slide-76
SLIDE 76

Simulation Results Short-Flows Workload

Senders Short Flows Receiver

slide-77
SLIDE 77

Dynamic Sharing does not allow burst to be fully bufger, resulting in increased tail FCT

slide-78
SLIDE 78

Dynamic Sharing does not allow burst to be fully bufger, resulting in increased tail FCT

slide-79
SLIDE 79

Simulation Results Mixed Workload

… …

Senders Short Flows Long Flows

slide-80
SLIDE 80

FAB limits long flows and allows the burst to use the bufger

slide-81
SLIDE 81

FAB limits long flows and allows the burst to use the bufger

# pkts bufgered

slide-82
SLIDE 82

Practicality Outline Background FAB Initial Results

slide-83
SLIDE 83

Is FAB practical?

configures complete sharing

Disallow traffjc manager to drop any packet as long as there is space the bufger

approximates flow size with flow arrival time

Use bloom filter to store flows that started in discrete time windows

enables dropping at the ingress based on FAB

Dropping decisions at ingress based on bufger occupancy and flow information

slide-84
SLIDE 84

Practicality Outline Background FAB Initial Results

slide-85
SLIDE 85

Questions ?

?

FAB: Flow-aware bufger sharing

Splits the bufger space according to the expected benefit from using it for each flow. Significantly decreases flow completion time

48% 42% 10%

Allocates more bufger to short flows, which are distinguished in the data plane