Feedback Control

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

bi+1 - bi = (Rp - Rc) * (ti+1 - ti)

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

Db = (bi+1 - bI) / (ti+1 - ti)

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:

 
If Db is positive and bi+1 >= Wh, the production rate must be decreased by Db
If Db is negative and bi+1 <= Wl, the production rate must be increased by Db
  Since the network buffer is on the client side and the producer is on the server side, we must rely on feedback messages. A feedback message contains two fields, namely a buffer level and a timestamp. Each feedback message is denoted by mi=( bi , ti ). Feedback messages are only sent when the buffer level is above Wh or below Wl. A critical issue is to decide the appropriate time interval during which the feedback messages are sent. The time period must be chosen so that the average rate of buffer increase or decrease can be approximated. Sending the feedback too close to each other may result in calculating a wrong value for Db and sending them too far apart may result in too many buffer overflows and underflows. Another issue is that corrective action which is taken by the producer may take some time to take effect and responding to every feedback message may result in oscillations of the buffer level and large number of feedbacks. We will analyze the appropriate water marks for Wh and Wl and the feedback interval to determine the frequency of feedback messages and to prevent buffer overflows and underflows. The successful determination of these parameters will enable the system to be able to respond to a variety of dynamic user interactions. Back to Home

Back to Transmission