86
1 NUS.SOC.CS5248 Ooi Wei Tsang Proxy Caching for Streaming Media

NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

Embed Size (px)

Citation preview

Page 1: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

1

NUS.SOC.CS5248Ooi Wei Tsang

Proxy Caching for Streaming Media

Page 2: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

2

You Are Here

Network

Encoder

Sender

Middlebox

Receiver

Decoder

Page 3: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

3

Cache Proxies for Web

A

Page 4: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

4

Hierarchical Caching

A

B

Page 5: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

5

Cooperative Caching

A B

Page 6: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

6

Distributed Caching

A B

Page 7: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

7

Streaming Media vs. Webpage

Page 8: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

8

Video Access Pattern

by S. Acharya and B. Smith in 1999

Study at Lulea University, Sweden 55% complete, 45% stop very early High temporal locality

Page 9: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

9

Prefix Access Distribution

10 30 50 70 90

% Played

Page 10: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

10

Video Popularity

Assume Zipf “Law”Probability of access to i-th most popular video is

Page 11: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

11

NUS.SOC.CS5248Ooi Wei Tsang

Benefits of Caching

Page 12: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

12

Reduce Access Latency

:) :(

Page 13: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

13

Reduce Server Load

Page 14: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

14

Reduce Start-up Latency

Page 15: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

15

Hide Network Congestion

Page 16: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

16

Other Issues

What to cache?Who to fetch from?When cache is full, who to kick out?

How to measure popularity?Can cache adapt to popularity?

Page 17: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

17

NUS.SOC.CS5248Ooi Wei Tsang

What to Cache?

Page 18: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

18

Segmentation

Cache “all or none” is badDivide media file into segments and consider each segment individually

Page 19: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

19

Effects of Size S

Large S : Low utilizationSmall S : Lots of gaps

Page 20: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

20

Prefix Caching Policy

1 Chunk = k segments

Page 21: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

21

Caching Policy

Basic unit of caching: segmentCache prefix in chunkReplace suffix in chunkNever replace segments in curr chunk

Page 22: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

22

NUS.SOC.CS5248Ooi Wei Tsang

Where To Fetch From?

Page 23: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

23

Cooperative Caching

A B

Page 24: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

24

Fetch from server

B

A

Server

Client 2Client 1

Page 25: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

25

Fetch from fellow proxy

B

A

Server

Client 2Client 1

Page 26: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

26

Issues

How to advertise?How to choose “helper”?

Page 27: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

27

How to Advertise?

Balance betweennetwork loadfreshness of information

Page 28: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

28

Scalable Advertisement

Expanding Ring Advertisement

16 132 264 4128 8

TTL PERIOD

Page 29: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

29

How to Choose Helper?

Consideration for Static Cache network distance (1,2,3,4) number of streams being served avoid frequent switches

Build a cost function, integrating the metrics

Page 30: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

30

Cost Function

Cost for retrieving a segment from node X to node Y=

Page 31: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

31

Algorithm

Consider the next gap in local caches

Find the next helper with minimum cost, and can fill in at least k segments in gaps

Page 32: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

32

NUS.SOC.CS5248Ooi Wei Tsang

Distributed Caching

Y. Chae et. al.JSAC 2000

Page 33: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

33

Cooperative vs DistributedCooperative caching caches independently

Distributed caching caches as a team

Page 34: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

34

Cold Start

B

A

Server

new clip!

Page 35: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

35

Segment Map

Local segment mapWhich segment I should cache?

Global segment mapWho is suppose to cache what?

Page 36: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

36

Cache Hit

B

A

Server

Page 37: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

37

Cache Miss

B

A

Server

Page 38: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

38

Distributed Caching

B

A

Server

Page 39: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

39

Problems

Who should cache what?

Which segment to kick out?

How to adapt segment distribution?

Page 40: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

40

Who should cache what?

RCache schemeSegment video into equal size segments

A proxy will cache each segment with some probability

Page 41: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

41

RCache

Np proxies

video of length Lv

divide into Ns equal segments

Each proxy caches each segment with a/Np probability

Page 42: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

42

Analysis

Probability that whole video is cached is

Ns:: num of segmentsNp: num of proxiesa/Np: prob of caching 1 segment

Page 43: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

43

RCache’s Segmentation

Video is divided into segments of equal length

Can we do better?

Page 44: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

44

Bimodal Distribution

10 30 50 70 90

% Played

Page 45: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

45

Silo

segment size probabilityof storage

Page 46: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

46

Further Improvement

segment size probabilityof storage

Page 47: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

47

Problems

Who should cache what?

Which segment to kick out?

How to redistribute data?

Page 48: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

48

Segment “Popularity”

For each video iFor each segment j

F(i,j) = Prob(i is accessed)*Prob(j is accessed)

Page 49: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

49

Rainbow Algorithm

less popular

Page 50: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

50

Rainbow Algorithm

Problem: Many large video – too many segments

computationally expensive to sort

Solution: Just approximate by quantizing popularity

Page 51: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

51

Rainbow Algorithm

less popular

Page 52: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

52

Problems

Who should cache what?

Which segment to kick out?

How to redistribute data?

Page 53: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

53

Data Redistribution

When popularity changes, need to redistribute.

Redistribute “on-demand” (lazy)

Page 54: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

54

Cache Token

Each segment have two bits(T,C)

T: I am suppose to have the segment

C: I have the segment

Page 55: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

55

Data Redistribution

(T=1,C=1)(T=0,C=0)(T=1,C=0) (T=0,C=1)

Page 56: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

56

Example

I J

A CB D

old

new

T=0,C=1 T=0,C=1

T=1,C=0 T=1,C=0 T=1,C=0 T=1,C=0

Page 57: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

57

Example

I J

A CB D

old

new

T=1,C=1 T=0,C=1

T=0,C=0 T=1,C=0 T=1,C=0 T=1,C=0

Page 58: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

58

Example

I J

A CB D

old

new

T=1,C=1 T=1,C=1

T=0,C=0 T=1,C=0 T=1,C=0 T=0,C=0

Page 59: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

59

Example

I J

A CB D

old

new

T=1,C=1 T=1,C=1

T=0,C=0 T=1,C=1 T=1,C=0 T=0,C=0

Page 60: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

60

NUS.SOC.CS5248Ooi Wei Tsang

Quality Adaptive Caching

Reza Rajaie et. al.INFOCOM 2000

Page 61: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

61

Scenario (10am)

A

Server

Client 2

Page 62: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

62

Scenario (1am)

A

Server

Client 2

Page 63: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

63

Problem:Cache interfere with congestion control algorithm

Solution:Make cache aware of quality adaptation

Page 64: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

64

Solutions

Making cache “quality-aware”PrefetchReplacement Algorithm

Page 65: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

65

Cache Miss

A

Server

Client 2

Page 66: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

66

Cache Hit

A

Server

Client 2

repair +prefetch

Page 67: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

67

Peeking Inside the Cache

Page 68: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

68

Cache Hit: Repair

Page 69: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

69

Cache Hit: Prefetch

Page 70: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

70

Prefetch Algorithm

prefetchwindow

playbackpoint

Page 71: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

71

Proxy Request to Server

Multiple requests (for different clients) are batched.

Page 72: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

72

Server Response

Missing segments are sent in decreasing priority

1

2

3 4

Page 73: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

73

Server Response

Send as many segments as possible until next prefetch request

Page 74: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

74

Trade-offs

How far in the future should we prefetch?

Page 75: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

75

Solutions

Making cache “quality-aware”PrefetchReplacement Algorithm

Page 76: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

76

Goal: converge to efficient state

if a stream is popularaverage quality is highvariation in quality is low

Goal of Replacement

Page 77: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

77

The Algorithm

Page 78: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

78

Trashing and Locking

Page 79: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

79

Choosing Victim

whit (weighted hit) =Tplay/Ttotal

Calculate whit for each layer in a stream over a popularity window

Page 80: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

80

Example

WHIT Lock? Name Layer

5.9 1 Nemo 0

4.3 1 Nemo 1

4.0 0 Matrix 2 0

3.9 0 Matrix 2 1

1.1 0 Gigli 0

Page 81: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

81

Static Cache

Cache segments in proxy do not changed over time

Can we exploit further properties of streaming media?

Page 82: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

82

NUS.SOC.CS5248Ooi Wei Tsang

Dynamic Caching

Page 83: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

83

Motivating Scenario

t = 0, R1 requests for stream M

t = , R2 requests for stream M

Ideally, R1 and R2 should share a multicast of M

Page 84: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

84

needs to be“patched”

share withR1 from cache

Page 85: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

85

Using Dynamic Cache

R2 request stream MProxy allocate a ring bufferCache the most recent -seconds of M sent to R1

R2 get prefix of M from other places, and rest from proxy

Page 86: NUS.SOC.CS5248 Ooi Wei Tsang 1 Proxy Caching for Streaming Media

NUS.SOC.CS5248Ooi Wei Tsang

86

Extending to N Receivers