A system and method designed to reduce network congestion. In one aspect, a system
according to the invention includes a server and two or more clients. Each client
has software that runs on the client. The software requires data that is stored
at the server. Advantageously, the software maintains a cache for storing the required
data after the data is retrieved by the software from the server. Once the required
data is in a cache, the software need not retrieve the required data from the server;
the software can retrieve the required data from the software's cache. To ensure
that the data that is stored in the cache does not become stale and to avoid network
overload, the software updates its cache at a random point in time.