Platform SDK: Exchange Server

Building a Cache of Frequently Used Items

Building a cache at the client computer improves performance when the data is frequently accessed and stored remotely. Although this process uses extra memory at the client, it reduces the number of RPCs for information retrieval, thus reducing I/O for the server.

When creating your cache, you should consider the cache size, the hit ratio (estimation of how often it will be used), and the consistency of the property to be cached (how often it changes). Caching only those properties that change infrequently on the server provides a better guarantee of consistency between the client and server versions of the property values. It also saves the client from having to refresh the cache as frequently.

A poorly designed cache can actually impair performance by taking more time to perform operations than simply retrieving the properties from the server. Because refreshing cache entries takes time, the most efficient cache maintains valid property values for the longest possible interval before a refresh is required.

Besides properties, you can cache other types of information. For example, Microsoft Exchange Server messages can contain text displayed in multiple fonts and colors, and embedded OLE objects such as bitmaps. It is inefficient to display these types of messages if font and color information must be retrieved from the operating system for each character. To accelerate the process, use the Microsoft Exchange Server Rich Text Edit field to cache these properties.