We propose an adaptive feedback scheme to alleviate the buffer overflow/underflow problems, while trying to keep feedback at a minimum. This is because the feedback themselves consume resources, as well as require the system components upstream to vary their production rates. In the adaptive feedback scheme, local buffer control takes place at each buffer to prevent buffer overflow/underflow. Using this scheme of local control we can achieve a global control over the pipeline. Since there are two main buffers for each stream, disk buffer and network buffer, we use two local control approaches for these two buffers. The production of these buffers takes place in different environments. The former directly puts into the buffer the data retrieved from the disk, whereas the latter must transmit through the network.
We assume that, for each buffer, three water marks are maintained for the buffer. Wn indicates the normal buffer level, Wl (Wh) indicates when the buffer level is too low (high). A critical issue here is to decide appropriate values for Wl and Wh . Since the transmission of a feedback message takes time before it gets to the server, a lot of data may have been transmitted towards the client during that time interval, possibly worsening the buffer overflow/underflow.
Let the buffer levels in buffer B at a time period [ti, ti+1] changed from bi to bi+1. Then, the difference in the buffer levels between times ti and ti+1 is D b = bi+1 - bi. Without loss of generality, let the production and consumption rates be Rp and Rc, respectively. We then have
Thus, when the consumption rate is greater than the production rate, D b will be negative. Similarly, D b will be positive when consumption rate is lower than production rate. The difference in production and consumption rate for buffer B is given by
Examining the buffer levels periodically can determine the modification of production rate dynamically. We define the specific rules for modifying the production rate based on the calculation of Db defined as:
|
|
|
|
|
|