P2VoD: Providing Fault Tolerant Video-on-Demand Streaming in Peer-to-Peer Environment Tai T.Do, Kien A. Hua, Mounir A. Tan...
Outline <ul><li>Introduction </li></ul><ul><li>Related Work </li></ul><ul><li>Architecture of P2VoD </li></ul><ul><li>Perf...
Introduction <ul><li>P2P approach can potentially solve many serious problems posed in existing streaming systems </li></u...
Introduction (cont.) <ul><li>Live streaming </li></ul><ul><ul><li>Shorter end-to-end delay, more lively the stream  </li><...
Introduction (cont.) <ul><li>Proposed techniques not based on any existing live streaming systems </li></ul><ul><li>Proble...
Related Work: P2Cast <ul><li>Architecture uses a P2P approach to stream video using patching </li></ul><ul><li>Build appli...
Architecture of P2VoD <ul><li>A streaming connection is assumed to constant bit-rate </li></ul><ul><ul><li>equals to the p...
Architecture of P2VoD (cont.) <ul><li>ab X  : actual amount of buffer storage used by a client  X   </li></ul><ul><ul><li>...
P2VoD system <ul><li>ab C 1  =  MB  = 5,  ab C 4  = 3 <  MB   </li></ul><ul><li>When  C 6  arrives to the system at time 3...
Architecture of P2VoD (cont.) <ul><li>“ Generation”  </li></ul><ul><ul><li>Group of clients having the same smallest numbe...
P2VoD system <ul><li>C 1 ,  C 2  ,  C 3  ,  C 4  , and  C 5  all have the same smallest number R-block </li></ul>
Data Caching and Generation (cont.) <ul><li>Rules to build generations </li></ul><ul><ul><li>Generations are indexed by nu...
Data Caching and Generation (cont.) <ul><li>Caching scheme with the generation concept </li></ul><ul><li>X  and  Y  join t...
Data Caching and Generation (cont.) <ul><li>Assume that at time 36, peer  C 3  fails. </li></ul><ul><li>C 1 ,  C 2 ,  C 4 ...
Control Protocol <ul><li>Control Protocol is required to maintain the system connectivity </li></ul><ul><li>Neighbors of p...
Join Algorithm <ul><li>Server  S  has the list of peers at the youngest generation for each video session, denoted as  G y...
Join Algorithm (cont.) <ul><li>Case 1 </li></ul><ul><ul><li>If all of the existing video sessions are closed, X will be ad...
Join Algorithm (cont.) <ul><li>Case 2 proceeds as follows. </li></ul><ul><ul><li>Step1 </li></ul></ul><ul><ul><ul><li>X  c...
Join Algorithm (cont.) <ul><li>Case 2 proceeds as follows. </li></ul><ul><ul><li>Step4: (generation expired) </li></ul></u...
Parent Selection Criteria <ul><li>Round Robin Selection </li></ul><ul><ul><li>promote the fairness among peers </li></ul><...
Failure Recovery <ul><li>P2VoD uses a two-phase failure recovery protocol </li></ul><ul><li>1) Detecting failure </li></ul...
Failure Recovery (cont.) <ul><li>2)  Recovering from failures </li></ul><ul><ul><li>Failure at a peer  X , the whole sub-t...
Performance Evaluation <ul><li>Examine the effects of two parameters in P2VoD:  </li></ul><ul><ul><li>max number of client...
Performance Evaluation (cont.) <ul><li>Rejection probability </li></ul><ul><ul><li>probability that a client tries to join...
Rejection probability for various maximum buffer sizes (K = 3) <ul><li>MB  is varied from 0.1 to 0.4 of the length of the ...
Server stress with various values of K (MB = 0.1) <ul><li>In light workload, almost every clients get the video stream dir...
P2VoD vs. P2Cast: Client rejection probability <ul><li>P2VoD use  K  =6 &  MB  = 0.2 </li></ul><ul><li>The threshold for P...
P2VoD vs. P2Cast: Server stress <ul><li>In P2VoD, a video session is open as long as clients in the  G y  still have the f...
P2VoD vs. P2Cast: Failure overhead <ul><li>Clients arrive to the system at a rate of 0.4 per second during a period of 2 h...
Conclusion <ul><li>P2VoD, a new system for Video-On-Demand streaming in a Peer-to-Peer environment </li></ul><ul><li>the c...
Upcoming SlideShare
Loading in …5
×

P2VoD: Providing Fault Tolerant Video-on-Demand Streaming in ...

320 views
288 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
320
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

P2VoD: Providing Fault Tolerant Video-on-Demand Streaming in ...

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

×