Title: P2VoD: Providing Fault Tolerant VideoonDemand Streaming in PeertoPeer Environment
1P2VoD Providing Fault Tolerant Video-on-Demand
Streaming in Peer-to-Peer Environment
- Tai T.Do, Kien A. Hua, Mounir A. Tantaoui
- Proc. of the IEEE Int. Conf. on Communications
(ICC 2004)
2Outline
- Introduction
- Related Work
- Architecture of P2VoD
- Performance Evaluation
- Conclusion
3Introduction
- P2P approach can potentially solve many serious
problems posed in existing streaming systems - Infeasibility of IP Multicast
- Network bottleneck at the video server
- Several projects on live streaming
- Not trivial to apply these techniques into VoD
systems
4Introduction (cont.)
- Live streaming
- Shorter end-to-end delay, more lively the stream
- Short tree rooted at the video server
- User simply joins an on-going live streaming
session - User may not quit if QoS degrades
- VoD streaming
- Liveness is irrelevant, video is pre-recorded
- Whole video must be delivered
- User will stop watching if QoS degrades
5Introduction (cont.)
- Proposed techniques not based on any existing
live streaming systems - Problems to be solved for a P2P VoD streaming
system - Fast and localized failure recovery without
jitter - Quick join
- Effective handling of clients asynchronous
requests - Small control overhead
- P2VoD (Peer-to-Peer approach for VoD streaming)
6Related Work P2Cast
- Architecture uses a P2P approach to stream video
using patching - Build application level multicast tree
- Server streams the entire video over base tree
- P2Cast clients provide two functions
- Base stream forwarding
- Patch serving
- Base tree construction patch server selection
algorithm - Best Fit (BF) find the fattest pipes to
requesting clients - BF-delay also use network delay information
- BF-delay-approx not using actual available
bandwidth, (1 or 0 represents enough bandwidth
or not)
7Architecture of P2VoD
- A streaming connection is assumed to constant
bit-rate - equals to the playback rate of the video
- Retrieval block (R-block) as a data unit of the
video - equivalent to one unit of playback time
- Each client has a buffer, whose maximum size is
worth of MB units of playback time (i.e. MB
R-block)
8Architecture of P2VoD (cont.)
- abX actual amount of buffer storage used by a
client X - 1 abX MB
- By using the cache, early arriving client can
serve late coming clients by forwarding the
stream - tjX the joining time of a client X
- X can serve clients whose joining time
- tjX , tjX abX
9P2VoD system
- abC1 MB 5, abC4 3 lt MB
- When C6 arrives to the system at time 3, the
first R-block of the video is still in the buffer
of C1 - C1 can serve the video stream to C6
10Architecture of P2VoD (cont.)
- Generation
- Group of clients having the same smallest
numbered R-block in their caches - Generations are also numbered
- G1 as the oldest generation to Gn as the youngest
generation - Clients in these generations, excluding the
server, form a video session - A video session is closed
- none of the clients has the first R-block of the
video
11P2VoD system
- C1, C2 , C3 , C4 , and C5 all have the same
smallest number R-block
12Data Caching and Generation (cont.)
- Rules to build generations
- Generations are indexed by numbers starting from
1 - Members of a lower indexed generation arrive to
the system no latter than any member of other
higher indexed generations - A peer in generation i-th (i gt 1) receives the
video stream from a peer in generation (i 1)-th - Peers at the first generation receive the video
stream directly from the server - When joining a video session of the system, a new
peer - belongs to the current highest numbered
generation, OR - be the first member of a newly created generation
of that video session
13Data Caching and Generation (cont.)
- Caching scheme with the generation concept
- X and Y join the same generation at time tjX and
tjY - Caching Rule The difference of actual cache
sizes used by two peers in the same generation
must offset the difference in their arrival times - abX abY tjY tjX
14Data Caching and Generation (cont.)
- Assume that at time 36, peer C3 fails.
- C1, C2, C4, C5 available to C8
- allow a quick and localized recovery for C8
15Control Protocol
- Control Protocol is required to maintain the
system connectivity
- Neighbors of peer X
- Siblings (peer in same G) need to keep a list of
their IP addresses - Periodically update the list
- Update the list on-demand (joining/leaving)
- Child agree to forward the video stream, X needs
to send the IP addresses of X and its siblings to
its child - Parent first join the system, X sends the IP
address to its parent
16Join Algorithm
- Server S has the list of peers at the youngest
generation for each video session, denoted as Gy - Expiration time is the same for every
member of the youngest generation - Initially, when the system is empty
- is set to minus infinity
- Set of youngest generation peers contains only S
17Join Algorithm (cont.)
- Case 1
- If all of the existing video sessions are closed,
X will be admitted if server S still has enough
outbound-bandwidth - Otherwise, X will be rejected
- Case 2
- For the case where there is at least one existing
video session still open, X will try to join that
video session
18Join Algorithm (cont.)
- Case 2 proceeds as follows.
- Step1
- X contacts a random member of the Gy set
- acquires the list of peers at the super
generation of Gy. - Step2
- If texp at the super generation gt tjX, then go to
Step3 - Otherwise go to Step4
- Step3 (generation not expired)
- X selects a parent from the super generation
- If such a candidate exists, X becomes a member of
Gy - X starts receiving the video stream from its
selected parent - X sets its actual cache size abX to conform to
the caching rule - Otherwise go to Step4
19Join Algorithm (cont.)
- Case 2 proceeds as follows.
- Step4 (generation expired)
- A new generation is formed below Gy
- X becomes the first member of that generation
- Actual cache size abX is set to equal to MB
- X selects a peer from Gy as its parent
- If no such peer exists, X tries other open video
sessions or contacts the server
20Parent Selection Criteria
- Round Robin Selection
- promote the fairness among peers
- the requesting peer should select a peer, who
hasnt served any client for the longest period
of time
- Smallest Delay Selection
- minimize the joining time of the requesting peer
- the requesting peer picks the first peer in the
candidate group, who has enough out-bound
bandwidth
- Smallest Distance Selection
- reduce the number of links involved in the
underlying network - the requesting peer chooses a peer, who has
enough out-bound bandwidth and closest to it
21Failure Recovery
- P2VoD uses a two-phase failure recovery protocol
- 1) Detecting failure
- Grateful failures When a peer leaves the system,
it forwards the LEAVE_MESSAGE to its children - Unexpected failures it happens unexpectedly
without any explicit warning, peers in P2VoD are
required to monitor their incoming traffic
22Failure Recovery (cont.)
- 2) Recovering from failures
- Failure at a peer X, the whole sub-tree under X
is affected - The rest of the sub-tree are informed to wait
through the WAIT msg - A disrupted peer X finds a new parent
- X contacts the siblings of its parent
- If no such parent exists, X contacts the server
- Otherwise, X is rejected
- X succeeds, the sub-tree is recovered
- X fails, the immediate children of X will invoke
the recovery process
23Performance Evaluation
- Examine the effects of two parameters in P2VoD
- max number of clients allowed in the first
generation of each video session, K - max buffer size each client can use, MB
- Compare P2VoD with P2Cast
- Network topology using GT-ITM
- Clients arriving to system follow the Poisson
distribution
- one Transit network (with 4 nodes)
- 12 stub domains (with 96 nodes)
- backbone link support 25 streams
- edge link support 7 concurrent streams
24Performance Evaluation (cont.)
- Rejection probability
- probability that a client tries to join the
system but can not get the service - Server stress
- amount of bandwidth used at the server, or the
number of streams established at the server - Number of contacts during the recovery
- number of nodes a client has to contact during
the recovery process
25Rejection probability for various maximum buffer
sizes (K 3)
- MB is varied from 0.1 to 0.4 of the length of the
video - When doubling size of MB, the rejection
probability is reduced by half
26Server stress with various values of K (MB 0.1)
- In light workload, almost every clients get the
video stream directly from the server - In heavy workload, most clients get the video
stream from some other client, not the server
- With small K, a failure at the first generation
will likely cause disruption the whole video
session - With large K, such failure only cause a portion
of the - video session to be in
- recovery mode
27P2VoD vs. P2Cast Client rejection probability
- P2VoD use K 6 MB 0.2
- The threshold for P2Cast is set at 0.2.
- P2VoD outperforms BF because P2Cast requires each
client to obtain two streams
28P2VoD vs. P2Cast Server stress
- In P2VoD, a video session is open as long as
clients in the Gy still have the first block of
the video buffer - In P2Cast, a video session is open for a short
period of time starting when the first client
join the video session and last for the length of
the threshold
29P2VoD vs. P2Cast Failure overhead
- Clients arrive to the system at a rate of 0.4 per
second during a period of 2 hours (3516 clients) - When the failure probability increases, the
number of clients contacted during a recovery
decreases - more clients leave the system, network bandwidth
is also released - easier for an affected client to find a new parent
30Conclusion
- P2VoD, a new system for Video-On-Demand streaming
in a Peer-to-Peer environment - the concept of generation and caching scheme to
deal effectively with failures - An efficient control protocol help P2VoD to
allow clients join the system fast, as well as to
recover failures in a quick and localized manner - Simulation-based performance study shows that
P2VoD is superior than P2Cast