![](bg3.png)
and sends the pull item based on FCFS scheduling discipline, in a reciprocal way. In-
deed, let the push-set consist of the data items numbered from 1 up to K (cut-off point),
and let the remaining items from K + 1 up to D form the pull set. Hence, the average
expected waiting time for the hybrid scheduling is defined as:
T
exp−hyb
= T
exp−acc
+ T
exp−res
=
K
X
i=1
P
i
·
T
acc,i
+
D
X
i=K+1
P
i
·
T
res,i
.
where: T
exp−acc
is the expected access time for the push-set, T
exp−res
is the expected
response time for the pull-set, P
i
is the access probability of item i. As the push-set
becomes smaller, the T
exp−acc
becomes shorter, but the pull-set becomes larger, leading
to a longer T
exp−res
. The size of the pull-set might also increase the average access time
T
acc,i
, for every push item. After having found the minimum number B, called build-
up point, of items to be pushed so that the length of the pull queue in the system is in
average bounded by a constant, [9] chooses, as the cut-off point, the value K such that
K ≥ B and K minimizes the average expected waiting time for the hybrid system.
However, when either the system has a high load, i.e. a high number of requests for
unit of time, and/or all items have almost the same degree of probability, the distinction
between the high and low demand items becomes vague, artificial, hence the value of
build-up point B increases, finally leading to the maximum number D of items in the
system. Thus, in those cases, the solution proposed in [9] almost always boils down
to a pure push-based system. This motivates us to develop a more efficient algorithm
capable of improving the access time even in high load with items having same degree
of probability.
Our proposed solution partitions the data items in the push-set and the pull-set, but
it chooses the value of the cut-off point K between those two sets independent of the
build-up point. After each single broadcast, we do not flush out the pull-queue as in
[9]. In contrast, we just pull one single item: the item, which has the largest number of
pending requests. Note that simultaneously with every push and pull, N more access
/ requests arrive to the server, thus the pull-queue grows up drastically at the begin-
ning. In particular, if the pull-set consists of the items from K + 1 up to D, at most
N ×
P
D
j=K+1
P
i
requests can be inserted in the pull-queue at every instance of time,
out of which, only one, the pull item that has accumulated the largest number of re-
quests, is extracted from the queue to be pulled. However the number of distinct items
in pull-queue cannot grow uncontrolled as it will be shown by the analytic model in the
next section. Once that the analytic model has been devised, we take advantage from
it to make our system more flexible. Indeed, since by the analytic model the system
performance is already known with a good precision, it is possible to decide in advance
if the value of K currently in use at the server will satisfy the client request on time. If
not, K is updated in a suitable way again looking at the system performance analysis.
3 Basic Hybrid Algorithm: Performance Modelling, Simulation
Framework
The basic hybrid algorithm assumes that the value K of the cut-off point is given and
that the client makes a data request without any deadline. Then, the items from 1 to
52