Since we are trying to control access to a shared filesystem volume
(LUN), it is convenient to use the same medium to share the latency
statistics among the hosts. We implement a shared file per volume,
which can be accessed by multiple hosts simultaneously. Each host
owns a single block in the file and periodically writes its average
latency and number of IOs for the LUN into that block. Each host reads
that file periodically using a single large IO and locally computes
the cluster-wide average to use for window size estimation.
In our experiments, we have not observed extremely high variance
across per-host latency values, although this seems possible if some
workloads are served primarily from the storage array's cache. In any
case, we do not anticipate that this would affect PARDA stability or
convergence.
Ajay Gulati
2009-01-14