Slurpie A Cooperative Bulk Data Transfer Protocol Rob Sherwood - - PowerPoint PPT Presentation

slurpie
SMART_READER_LITE
LIVE PREVIEW

Slurpie A Cooperative Bulk Data Transfer Protocol Rob Sherwood - - PowerPoint PPT Presentation

Slurpie A Cooperative Bulk Data Transfer Protocol Rob Sherwood Ryan Braud Bobby Bhattacharjee University of Maryland Slurpie p.1 Problem Motivation Slurpie p.2 Problem Motivation High bandwidth client and server Slurpie p.2


slide-1
SLIDE 1

Slurpie

A Cooperative Bulk Data Transfer Protocol

Rob Sherwood Ryan Braud Bobby Bhattacharjee University of Maryland

Slurpie – p.1

slide-2
SLIDE 2

Problem

Motivation

Slurpie – p.2

slide-3
SLIDE 3

Problem

Motivation High bandwidth client and server

Slurpie – p.2

slide-4
SLIDE 4

Problem

Motivation High bandwidth client and server Internet core bandwidth under-utilized

Slurpie – p.2

slide-5
SLIDE 5

Problem

Motivation High bandwidth client and server Internet core bandwidth under-utilized ... but downloading popular files is still slow

Slurpie – p.2

slide-6
SLIDE 6

Problem

Motivation High bandwidth client and server Internet core bandwidth under-utilized ... but downloading popular files is still slow Mitigating Factors Usage patterns difficult to predict slashdot effect, popularity spikes, etc.. Competing TCP Streams result in suboptimal performance

Slurpie – p.2

slide-7
SLIDE 7

Goals

Decrease download times for large, popular files

Slurpie – p.3

slide-8
SLIDE 8

Goals

Decrease download times for large, popular files Reduce load at the server

Slurpie – p.3

slide-9
SLIDE 9

Goals

Decrease download times for large, popular files Reduce load at the server Should not require server-side modification

Slurpie – p.3

slide-10
SLIDE 10

Goals

Decrease download times for large, popular files Reduce load at the server Should not require server-side modification Compatible with existing protocols; e.g. http/ftp/etc..

Slurpie – p.3

slide-11
SLIDE 11

Goals

Decrease download times for large, popular files Reduce load at the server Should not require server-side modification Compatible with existing protocols; e.g. http/ftp/etc.. Scalable into 104-106 nodes

Slurpie – p.3

slide-12
SLIDE 12

Assumptions

Source server is the bottleneck

Slurpie – p.4

slide-13
SLIDE 13

Assumptions

Source server is the bottleneck A small number of popular files represents a disproportionate amount of traffic

Slurpie – p.4

slide-14
SLIDE 14

Assumptions

Source server is the bottleneck A small number of popular files represents a disproportionate amount of traffic Peers are able and willing to share content

Slurpie – p.4

slide-15
SLIDE 15

Assumptions

Source server is the bottleneck A small number of popular files represents a disproportionate amount of traffic Peers are able and willing to share content

If it is to their benefit

Slurpie – p.4

slide-16
SLIDE 16

Assumptions

Source server is the bottleneck A small number of popular files represents a disproportionate amount of traffic Peers are able and willing to share content

If it is to their benefit If the cost is negligible

Slurpie – p.4

slide-17
SLIDE 17

Assumptions

Source server is the bottleneck A small number of popular files represents a disproportionate amount of traffic Peers are able and willing to share content

If it is to their benefit If the cost is negligible

Peers do not want to persist in the network indefinitely

Slurpie – p.4

slide-18
SLIDE 18

Assumptions

Source server is the bottleneck A small number of popular files represents a disproportionate amount of traffic Peers are able and willing to share content

If it is to their benefit If the cost is negligible

Peers do not want to persist in the network indefinitely End-to-End data integrity check available, e.g. md5sum

Slurpie – p.4

slide-19
SLIDE 19

Partial Solution

Slurpie – p.5

slide-20
SLIDE 20

Partial Solution

Peers download small, random subsections, chunks, for the source server

Slurpie – p.5

slide-21
SLIDE 21

Partial Solution

Peers download small, random subsections, chunks, for the source server All peers downloading a specific file form a random mesh

Slurpie – p.5

slide-22
SLIDE 22

Partial Solution

Peers download small, random subsections, chunks, for the source server All peers downloading a specific file form a random mesh Peers propagate which chunks they have, e.g. updates, through the mesh

Slurpie – p.5

slide-23
SLIDE 23

Partial Solution

Peers download small, random subsections, chunks, for the source server All peers downloading a specific file form a random mesh Peers propagate which chunks they have, e.g. updates, through the mesh Peers exchange chunks, i.e. p2p

Slurpie – p.5

slide-24
SLIDE 24

Partial Solution

Peers download small, random subsections, chunks, for the source server All peers downloading a specific file form a random mesh Peers propagate which chunks they have, e.g. updates, through the mesh Peers exchange chunks, i.e. p2p Peers leave the mesh/system as soon as they complete the file

Slurpie – p.5

slide-25
SLIDE 25

Partial Solution

C C C C C C C

. . .

Slurpie – p.6

slide-26
SLIDE 26

Partial Solution

C C C C C C C C C

Slurpie – p.6

slide-27
SLIDE 27

Full Solution: Outline

Slurpie – p.7

slide-28
SLIDE 28

Full Solution: Outline

Use topology server to coordinate peers

Slurpie – p.7

slide-29
SLIDE 29

Full Solution: Outline

Use topology server to coordinate peers Random graph model for mesh

Slurpie – p.7

slide-30
SLIDE 30

Full Solution: Outline

Use topology server to coordinate peers Random graph model for mesh Bandwidth estimation to optimize update propagation overhead

Slurpie – p.7

slide-31
SLIDE 31

Full Solution: Outline

Use topology server to coordinate peers Random graph model for mesh Bandwidth estimation to optimize update propagation overhead Update tree data structure for fast queries

Slurpie – p.7

slide-32
SLIDE 32

Full Solution: Outline

Use topology server to coordinate peers Random graph model for mesh Bandwidth estimation to optimize update propagation overhead Update tree data structure for fast queries Random back off model

Slurpie – p.7

slide-33
SLIDE 33

Full Solution: Outline

Use topology server to coordinate peers Random graph model for mesh Bandwidth estimation to optimize update propagation overhead Update tree data structure for fast queries Random back off model Group size estimation for large groups

Slurpie – p.7

slide-34
SLIDE 34

Full Solution: Outline

Use topology server to coordinate peers Random graph model for mesh Bandwidth estimation to optimize update propagation overhead Update tree data structure for fast queries Random back off model Group size estimation for large groups WAN and LAN experimental results Related work and conclusions

Slurpie – p.7

slide-35
SLIDE 35

Topology Server

One global, well known topology server

Slurpie – p.8

slide-36
SLIDE 36

Topology Server

One global, well known topology server

  • 1. Each peer registers with the topology

server

Slurpie – p.8

slide-37
SLIDE 37

Topology Server

One global, well known topology server

  • 1. Each peer registers with the topology

server Alice: Register Port 12345

http://www.foo.com/bar.iso

Slurpie – p.8

slide-38
SLIDE 38

Topology Server

One global, well known topology server

  • 1. Each peer registers with the topology

server Alice: Register Port 12345

http://www.foo.com/bar.iso

  • 2. Topology Server returns last ψ peers to

register

Slurpie – p.8

slide-39
SLIDE 39

Topology Server

One global, well known topology server

  • 1. Each peer registers with the topology

server Alice: Register Port 12345

http://www.foo.com/bar.iso

  • 2. Topology Server returns last ψ peers to

register Server: return: {Bob:1111, Cathy:2222,

Doug:3333}, ψ = 3

Slurpie – p.8

slide-40
SLIDE 40

Topology Server

One global, well known topology server

  • 1. Each peer registers with the topology

server Alice: Register Port 12345

http://www.foo.com/bar.iso

  • 2. Topology Server returns last ψ peers to

register Server: return: {Bob:1111, Cathy:2222,

Doug:3333}, ψ = 3

Intuition: last ψ peers are most likely to persist in the system

Slurpie – p.8

slide-41
SLIDE 41

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes

Slurpie – p.9

slide-42
SLIDE 42

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes Connect to η random peers: called neighbors

Slurpie – p.9

slide-43
SLIDE 43

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes Connect to η random peers: called neighbors Cache node ID/updates for U neighbors

Slurpie – p.9

slide-44
SLIDE 44

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes Connect to η random peers: called neighbors Cache node ID/updates for U neighbors Incentive: More state ⇒ Better Information

Slurpie – p.9

slide-45
SLIDE 45

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes Connect to η random peers: called neighbors Cache node ID/updates for U neighbors Incentive: More state ⇒ Better Information Flood update information through the mesh

Slurpie – p.9

slide-46
SLIDE 46

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes Connect to η random peers: called neighbors Cache node ID/updates for U neighbors Incentive: More state ⇒ Better Information Flood update information through the mesh Periodically disconnect, and reconnect

Slurpie – p.9

slide-47
SLIDE 47

Mesh and Random Graph Model

A peer uses seed nodes from topology server to discover other nodes Connect to η random peers: called neighbors Cache node ID/updates for U neighbors Incentive: More state ⇒ Better Information Flood update information through the mesh Periodically disconnect, and reconnect Forms random r-regular graph, where r = η

Slurpie – p.9

slide-48
SLIDE 48

Bandwidth Estimation

Simple three state estimation based on passive observation

Slurpie – p.10

slide-49
SLIDE 49

Bandwidth Estimation

Simple three state estimation based on passive observation under-utilized,throttle-back,at-capacity

Slurpie – p.10

slide-50
SLIDE 50

Bandwidth Estimation

Simple three state estimation based on passive observation under-utilized,throttle-back,at-capacity

If under-utilized, then add more peer

connections

Slurpie – p.10

slide-51
SLIDE 51

Bandwidth Estimation

Simple three state estimation based on passive observation under-utilized,throttle-back,at-capacity

If under-utilized, then add more peer

connections

If no peer connections to add, then increase

update rate and number of neighbors

Slurpie – p.10

slide-52
SLIDE 52

Bandwidth Estimation

Simple three state estimation based on passive observation under-utilized,throttle-back,at-capacity

If under-utilized, then add more peer

connections

If no peer connections to add, then increase

update rate and number of neighbors

If throttle-back first reduce update rate and

number of neighbors, then remove peer connections

Slurpie – p.10

slide-53
SLIDE 53

Bandwidth Estimation

Simple three state estimation based on passive observation under-utilized,throttle-back,at-capacity

If under-utilized, then add more peer

connections

If no peer connections to add, then increase

update rate and number of neighbors

If throttle-back first reduce update rate and

number of neighbors, then remove peer connections Update/second changes are AIMD

Slurpie – p.10

slide-54
SLIDE 54

Update Tree

Possible queries:

Slurpie – p.11

slide-55
SLIDE 55

Update Tree

Possible queries: Which blocks are not in the system?

Slurpie – p.11

slide-56
SLIDE 56

Update Tree

Possible queries: Which blocks are not in the system? Who has block i ?

Slurpie – p.11

slide-57
SLIDE 57

Update Tree

Possible queries: Which blocks are not in the system? Who has block i ?

... 1 1 ... 1 ... 1 ... 1 ... 1 1 1 ... 1 1 ... 1 1 1 0 1 1 1 Node 0 Node 1 Node 2 Node 3 logical OR

  • f child

vectors

In implementation, updates are bit vectors.

Slurpie – p.11

slide-58
SLIDE 58

Random Back off Model

Last block problem

Slurpie – p.12

slide-59
SLIDE 59

Random Back off Model

Last block problem Solution: go to the source server with P( 1

n)

Slurpie – p.12

slide-60
SLIDE 60

Random Back off Model

Last block problem Solution: go to the source server with P( 1

n)

Discrete values: in practice P( 3

n) works better

Slurpie – p.12

slide-61
SLIDE 61

Random Back off Model

Last block problem Solution: go to the source server with P( 1

n)

Discrete values: in practice P( 3

n) works better

Approximately σ for large n

Slurpie – p.12

slide-62
SLIDE 62

Random Back off Model

Last block problem Solution: go to the source server with P( 1

n)

Discrete values: in practice P( 3

n) works better

Approximately σ for large n Requires estimation of n, i.e. number of peers in system

Slurpie – p.12

slide-63
SLIDE 63

Random Back off Model

Last block problem Solution: go to the source server with P( 1

n)

Discrete values: in practice P( 3

n) works better

Approximately σ for large n Requires estimation of n, i.e. number of peers in system Significant performance increase

Slurpie – p.12

slide-64
SLIDE 64

Group Size Estimation

Slurpie – p.13

slide-65
SLIDE 65

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree

Slurpie – p.13

slide-66
SLIDE 66

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree Increment hop-count field in updates

Slurpie – p.13

slide-67
SLIDE 67

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree Increment hop-count field in updates Use ¯ η for average degree; diameter d=MAX(hop-count)

Slurpie – p.13

slide-68
SLIDE 68

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree Increment hop-count field in updates Use ¯ η for average degree; diameter d=MAX(hop-count) n = O((¯ η − 1)d)

Slurpie – p.13

slide-69
SLIDE 69

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree Increment hop-count field in updates Use ¯ η for average degree; diameter d=MAX(hop-count) n = O((¯ η − 1)d) Loose estimate sufficient

Slurpie – p.13

slide-70
SLIDE 70

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree Increment hop-count field in updates Use ¯ η for average degree; diameter d=MAX(hop-count) n = O((¯ η − 1)d) Loose estimate sufficient 33.3% error ⇒ ± 1 connection

Slurpie – p.13

slide-71
SLIDE 71

Group Size Estimation

Propagate number of neighbors, η, with updates: i.e. our out degree Increment hop-count field in updates Use ¯ η for average degree; diameter d=MAX(hop-count) n = O((¯ η − 1)d) Loose estimate sufficient 33.3% error ⇒ ± 1 connection Works well in simulation

Slurpie – p.13

slide-72
SLIDE 72

Experiment Design

LAN Topology Server on 10Mb/s link 48 GNU/Linux peers Planet Lab Same Server 55 GNU/Linux peers, varied geographically

Switch Ethernet

10 Mb/s

Switch Ethernet

1 Gb/s 48 Linux Clients

. . . 100 Mb/s

Slurpie – p.14

slide-73
SLIDE 73

Results - LAN

20 40 60 80 100 120 140 160 180 5 10 15 20 25 30 35 40 45 50 Percent of baseline n Clients Average Time Spent as a Function of Baseline, Downloading 100MB file of n Concurrent Clients 3 seconds between clients http non-adaptive slurpie slurpie BitTorrent

Slurpie – p.15

slide-74
SLIDE 74

Results - LAN (continued)

10 20 30 40 50 60 70 80 90 100 100 200 300 400 500 600 CDF time (s) CDF of Completetion Times of 48 Nodes Slurpie BitTorrent

Slurpie – p.16

slide-75
SLIDE 75

Results - WAN

1 1.2 1.4 1.6 1.8 2 2.2 10 20 30 40 50 60 Factor Improvement Number of Clients Slurpie Bittorrent

Slurpie – p.17

slide-76
SLIDE 76

Effects of Back Off

0.8 1 1.2 1.4 1.6 1.8 2 10 15 20 25 30 35 40 45 50 Factor Improvement Number of Clients, 3s Apart Backing Off No Backing Off 5 10 15 20 25 30 35 40 20 40 60 80 100 120 140 160 180 Number of Connections Time(s) With Backoff, k=3 No Backoff

Slurpie – p.18

slide-77
SLIDE 77

Related Work

Slurpie – p.19

slide-78
SLIDE 78

Related Work

Bittorrent

Slurpie – p.19

slide-79
SLIDE 79

Related Work

Bittorrent Server support; “tit-for-tat”

Slurpie – p.19

slide-80
SLIDE 80

Related Work

Bittorrent Server support; “tit-for-tat” Infrastructure Based: CDNs, Akamai, Web caches

Slurpie – p.19

slide-81
SLIDE 81

Related Work

Bittorrent Server support; “tit-for-tat” Infrastructure Based: CDNs, Akamai, Web caches Requires a priori knowledge of usage patterns

Slurpie – p.19

slide-82
SLIDE 82

Related Work

Bittorrent Server support; “tit-for-tat” Infrastructure Based: CDNs, Akamai, Web caches Requires a priori knowledge of usage patterns CoopNet: targets small files

Slurpie – p.19

slide-83
SLIDE 83

Related Work

Bittorrent Server support; “tit-for-tat” Infrastructure Based: CDNs, Akamai, Web caches Requires a priori knowledge of usage patterns CoopNet: targets small files Assumes nodes will persist in network

Slurpie – p.19

slide-84
SLIDE 84

Related Work

Bittorrent Server support; “tit-for-tat” Infrastructure Based: CDNs, Akamai, Web caches Requires a priori knowledge of usage patterns CoopNet: targets small files Assumes nodes will persist in network IP/End system multicast: DVMRP , Narada, Scribe, NICE

Slurpie – p.19

slide-85
SLIDE 85

Related Work

Bittorrent Server support; “tit-for-tat” Infrastructure Based: CDNs, Akamai, Web caches Requires a priori knowledge of usage patterns CoopNet: targets small files Assumes nodes will persist in network IP/End system multicast: DVMRP , Narada, Scribe, NICE Require server side support

Slurpie – p.19

slide-86
SLIDE 86

Conclusion

Slurpie – p.20

slide-87
SLIDE 87

Conclusion

Increasing number of concurrent peers potentially decreases download times

Slurpie – p.20

slide-88
SLIDE 88

Conclusion

Increasing number of concurrent peers potentially decreases download times Slurpie significantly out performs non-cooperative and Bittorrent peers

Slurpie – p.20

slide-89
SLIDE 89

Conclusion

Increasing number of concurrent peers potentially decreases download times Slurpie significantly out performs non-cooperative and Bittorrent peers Random back off provides significant performance increase

Slurpie – p.20

slide-90
SLIDE 90

Conclusion

Increasing number of concurrent peers potentially decreases download times Slurpie significantly out performs non-cooperative and Bittorrent peers Random back off provides significant performance increase Linux implementation http://slurpie.sourceforge.net

Slurpie – p.20

slide-91
SLIDE 91

Future Work

Slurpie – p.21

slide-92
SLIDE 92

Future Work

Slurpie proxy

Slurpie – p.21

slide-93
SLIDE 93

Future Work

Slurpie proxy Better Security

Slurpie – p.21

slide-94
SLIDE 94

Future Work

Slurpie proxy Better Security Take advantage of existing mirrors

Slurpie – p.21

slide-95
SLIDE 95

Future Work

Slurpie proxy Better Security Take advantage of existing mirrors Broader testing

Slurpie – p.21

slide-96
SLIDE 96

Future Work

Slurpie proxy Better Security Take advantage of existing mirrors Broader testing Effects of erasure codes, etc..

Slurpie – p.21

slide-97
SLIDE 97

Questions?

...?

Slurpie – p.22