A method (100) of caching data is disclosed. The method (100) optimises
proactive caching of data by estimating future demand for particular data
within a computer system (1900). The computer system (1900) is typically
configured in accordance with the hybrid peer-to-peer model. The method
(100) maintains the bandwidth cost of proactive caching in proportion to
expected demand for particular data. The method (100) also determines the
availability of a peer. The availability of a peer is defined herein as
the probability of a peer being online, for example, when particular data
is required by another peer.