Stream merging is a technique for efficiently delivering popular
media-on-demand using multicast and client buffers. The basic idea
is that clients may simultaneously receive more data than they need
for playback and store parts of the transmission in their buffers to
be played back later. It was shown that with these additional capabilities,
the bandwidth requirements for servers are dramatically reduced compared
with traditional unicast systems and multicast systems that use only
batching. Recently, several algorithms for stream merging have been
proposed, and we perform a comprehensive comparison in this paper.
We present the differences in philosophy and mechanics among the
various algorithms, and illustrate the trade-offs between their system
complexity and performance. We measure performance in average,
maximum, and time-varying server bandwidth usage under different
assumptions for the client request patterns. The result of this study
is a deeper understanding of the complexity and performance trade-offs
for the various algorithms, providing the necessary information for
system design decisions in stream merging implementations.