# Cooperative Buffering Schemes for Time-Shifted Live Streaming of Distributed Appliances
## 3 Cooperative Buffering Schemes for Time-Shifted Live Streaming
### Buffering Based on Degree of Deficiency and Proximity  
To determine which chunks should be buffered, this buffering scheme considers the following two factors: deficiency degree of a chunk at each playback period and proximity degree from the live broadcast time to reflect playback request distributions over time. Thus, this is called the _D_egree of _D_eficiency and \(P\) Proximity (_D_DP_)-based scheme in this paper. In other words, this scheme prioritizes each period depending on how deficient the number of chunk copies is in the period and how close to the live broadcast time the period is. In P2P streaming systems based on mesh-pull structures, peers exchange data with each other in chunks. To inform other peers of its current buffering status, each PVR sends buffermap messages indicating which chunks are already buffered and which ones are not. In this scheme, the tracker server can thus figure out how many copies of each chunk are buffered among PVRs by collecting their buffermaps periodically. To derive the criteria to determine the target period for buffering, we first evaluate the chunk deficiency degree at each period. Table 1 summarizes the symbols used throughout this paper, and Figure 3 shows the number of chunk copies at each period. \(p_{i}\) indicates \(i\)-th period away from the live broadcast time. \(C_{p_{i}}\) represents the number of copies of the corresponding chunk to \(p_{i}\), implying that the same number of PVRs are currently storing the chunk. Figure 2: Overall system architecture for P2P time-shifted live streaming among PVRs. \begin{table}
\begin{tabular}{c l} \hline \hline
**Symbol** & **Definition** \\ \hline \(p_{i}\) & \(i\)-th period away from the live broadcast time \\ \(C_{p_{i}}\) & Number of chunk copies at \(p_{i}\) \\ \(Q_{p_{i}}\) & 1 or 0 indicating whether or not \(p_{i}\) is qualified for the minimum requirement \\  & on the number of neighbor PVRs \\ \(MIN_{nb}\) & Minimum number of neighbor PVRs required to playback without quality \\  & degradation \\ \(b\) & Buffer size of each PVR in periods or chunks \\ \(tr_{(i,b)}\) & Time range with \(b\) periods long, starting at \(p_{i}\) ending at \(p_{i+b-1}\) \\ \(DD_{tr_{(i)}}\) & Deficiency degree of chunks, i.e., ratio of the unqualified periods among all the \\  & periods belonging to \(tr_{(i,b)}\) \\ \(PD_{tr_{(i,b)}}\) & Proximity degree from the live broadcast time to \(tr_{(i,b)}\) \\ \(TP\) & Total number of periods during the entire time-shifting hours \\ \(w\) & Weight value between \(DD_{tr_{(i,b)}}\) and \(PD_{tr_{(i)}}\) \\ \(NR_{p_{i}}\) & Number of chunk copies actually requested at \(p_{i}\) \\ \(NC_{p_{i}}\) & Number of chunk copies already buffered at \(p_{i}\) \\ \(AR_{tr_{(i,b)}}\) & Average number of actual playback requests of chunks during \(tr_{(i,b)}\) \\ \(AC_{tr_{(i,b)}}\) & Average number of buffered copies of chunks during \(tr_{(i,b)}\) \\ \(r_{b}\) & Partial ratio of \(b\) \\ \(N_{Is}\) & Number of tracker servers \\ \(g\) & Number of chunks in a group corresponding to a period \\ \(N_{p}\) & Total number of PVRs in the system \\ \(a_{p}\) & Availability of each PVR \\ \(\lambda_{b}\) & Number of buffermap transmissions per PVR per second \\ \(I_{u}\) & Aggregate buffermap update interval in multiples of \(\lambda_{b}\) in a tracker server \\ \(\lambda_{a}\) & Request arrival rate in the system \\ \(\mu_{Is}\) & Request service rate of each tracker server \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Summary of symbols. Figure 3: A buffering scheme based on the \(D\)egree of \(D\)ficiency and \(P\)roximity. \(Q_{p_{i}}\) denotes whether or not \(p_{i}\) is qualified for the minimum requirement on the number of neighbor PVRs to playback the chunk without quality degradation. That is, if \(C_{p_{i}}\) is equal to or greater than the minimum required number of neighbor PVRs considering their average uploading capacities denoted by \(MIN_{nb}\), then \(Q_{p_{i}}\) becomes 1, and it otherwise becomes 0, as in Equation (1). \[Q_{p_{i}}=\left\{