CoolStream

Inside the New Coolstreaming:
Principles, Measurements and
Performance Implications
Bo Li, Susu Xie, Yang Qu, Gabriel Y. Keung,
Chuang Lin, Jiangchuan Liu and Xinyan Zhang
Paper overview
 Introduces an improved version the original
CoolStreaming protocol:
 Partitions streams into substreams
 For load balancing , not fault-tolerance
 Switches to a push policy for parents
 Presents extensive data on CoolStreaming's
performance
Single tree-based multicast
Three nodes out of seven do all the work!
Single tree-based multicast
 Bad choice for P2P multicasting
 Interior nodes do all the work
 Leaf nodes do nothing
 Does not tolerate interior node failures
 Even worse for high bandwidth applications
 Most peers do not have enough resource to
transmit the data to act as leaf nodes
Multi-tree approach
 Media source encodes video stream over
multiple sub-streams
 Each sub-stream is distributed over a
separate overlay tree
 Advantages
 Better resilience
 Fairer bandwidth utilization
 Disadvantage:
 More complex to manage (cf. SplitStream)
CoolStream
 Basic components
 Multiple sub-streams
 Buffer partitioning
 Push content delivery
 Parent reselection
Key choices
 Two basic functionalities
 Locating the node from which a userobtains
its video data
 How the video stream is delivered
 BitTorrent uses
 Random peer selection (BitTorrent)
 Hybrid push and pull (NEW)
 Decisions based on which node has which data
 Nodes periodically exchange information
Advantages
 Easy to deploy
 No need to maintain any global state
information
 Efficient
 Data forwarding is dictated by data
availability
 Robust and resilient
 Periodic exchanges of data availability
information
Basic modules
 Membership manager:
 maintains partial view of the overlay
 Partnership manager:
 establishes and maintains partnerships
 exchanges availability of information usin
Buffer Maps
 Stream manager:
 handles actual data delivery
How it works
 Incoming peer contacts bootstrap node
 Gets a list of nodes and stores it in its
mCache
 Randomly selects a few nodes to initiate
partnerships
 Exchanges block availability information with
partners
 Results in parent-child relationships
 Parent sends video data to child
Multiple sub-streams
 Partition video stream into fixed size blocks
 Assign these blocks to K substreams
 Block 1 to stream 1
…
 Block K+1 to stream 1
…
 Block nK+i to stream i
Buffer partitioning
 Buffer map comprises two elements
 Sequence number of latest received block
in each sub-stream
 List of requested sub-streams
 New need for substream synchronization
Contribution index
 Ratio of Aggregate upload bandwidth over
Aggregate download bandwidth
 Measure contribution of each user
 Four levels
 Level 0: contribution index > 1
 Level 1: 0.5 < contribution index < 1
 Level 2: 1/6 < contribution index < 0.5
 Level 3: contribution index < 1/6
 65.1 percent of peers!
Push and pull scheme
 Specific to the new CoolStreaming
 When a peer subscribes to a substream,
 It connects to a potential parent via a
single request (pull )
 When potential parent receives the request,
 It starts pushing blocks from the specified
substream to its new child
Selecting a potential parent
 Assume a potential parent has blocks n to m
 Which blocks should the peer request?
 Not blocks in vicinity of block m
 Continuity issues if parent does not
receive successive blocks in time
 Not blocks in vicinity of block n
 Blocks will be the first ones to be
dumped by the parent
Parent reselection
 When a parent peer lags too much behind in
the blocks and a better alternative exists
Log and data collection
 Not discussed
Conclusions
 Critical performance issue in P2P streaming is
"excessive start-up time and high join failure
rates during flash crowds
 "There is a highly unbalanced distribution in
terms of uploading contributions from nodes."