In a distributed storage system, client caches managed on the
basis of small granularity objects can provide better memory utilization
then page-based caches. However, object servers, unlike page servers,
must perform additional disk reads. These {\em installation reads} are
required to install modified objects onto their corresponding disk
pages. The {\em opportunistic log} is a new technique that
significantly reduces the cost of installation reads. It defers the
installation reads, removing them from the modification commit path, and
manages a large pool of pending installation reads that can be scheduled
efficiently.
Using simulations, we show that the opportunistic log substantially
enhances the I/O performance of reliable storage servers. An object
server without the opportunistic log requires much better client caching
to outperform a page server. With an opportunistic log, only a small
client cache improvement suffices.
Our results imply that efficient scheduling of installation reads can
substantially improve the performance of large-scale storage systems, and
therefore introduce a new performance tradeoff between page-based and
object-based architectures.