Given a client c and a server s, an individual latency profile is a function LPc,s: t → R+ ∪{TO} that represents the end-to-end delay to request an object from a repository server s at time t. TO represents timeouts. LPc,s differentiates time-to-first (which would depend on factors such as workload at the server and size of the object) from time-to-last (with a greater dependency on network bounds), as has been done in our prior work on WebPT [2]. Due to the stochastic nature of the network, LPc,s(t) is clearly a random variable, yet its specific representation can vary. For example, in [2], LPc,s(t) was represented as a recurrent piecewise constant function [1], i.e., LP has a repeated behavior over time (say, every week), such that the time cycle is partitioned into intervals (say specific times of day). Within each such interval, LP is held constant.
Given an individual latency profile (LP) constructed for a single client-server pair and an appropriate similarity measure, we could cluster together multiple client-server pairs, and construct an aggregate latency profile (LP), based on the set of individual LPs. Such grouping is done for scalability purposes. The (dis)similarity measure between individual LPs is possibly based on Euclidean distance, constructed over a feature vector, to be discussed shortly.
There are several techniques that can be used to construct an aggregate LP from a set of individual LPs. These techniques vary from choosing a representative LP, to using an appropriate averaging function, to using some frontier function, e.g., the maximum latency frontier.