How Object Caching Works

To examine how object caching works, let’s examine the primary MPX components. The diagram below illustrates a typical deployment with all major MPX components.

GUID-E5508C07-5B1B-4F8C-AEA5-DAEB69E2E70C-low.png

As in all StarTeam deployments, one or more StarTeam clients communicate with a StarTeam Server using a client/server protocol called the command API. On the client side, all client/server interaction is managed by the StarTeam SDK. The StarTeam Server manages data for a single configuration (instance), which consists of a database and a vault.

To enable the basic StarTeam client/server configuration with MPX capabilities, the first component deployed is typically a root Message Broker. When the StarTeam Server is suitably configured, it sends update events to the root Message Broker which broadcasts them using publish/subscribe messaging. Typically, each remote location will deploy one remote Message Broker, which receives one copy of each event message. The remote Message Broker then relays specific update event messages to remote StarTeam clients. This “pushes” updates to clients, preventing them from refreshing or polling for new information. (Though not shown above, the root Message Broker also broadcasts update messages to network-near clients that are directly connected to it.)

The next layer of MPX functionality that can be enabled is distributed file caching. First, a root MPX Cache Agent is deployed network-near to the StarTeam Server, and a remote MPX Cache Agent is deployed in each remote location. As new file revisions are created, their content is broadcast by Message Brokers and cached locally by remote MPX Cache Agents. (A root MPX Cache Agent does not need to cache file content since it has direct access to file revisions in the configuration’s vault.) When a StarTeam client is enabled for MPX Cache Agent usage, it can check-out files from a network-near MPX Cache Agent at substantially greater speed compared to accessing the StarTeam Server over a limited-bandwidth connection.

The same MPX caching framework also supports object caching. Message Brokers broadcast new and modified objects, which are subsequently cached by both the root MPX Cache Agent and remote MPX Cache Agents. Clients that enable MPX Cache Agent access can subsequently fetch specific object revisions from a network-near MPX Cache Agent, again at potentially greater speed. The StarTeam SDK utilizes an adaptive performance monitoring algorithm to determine when MPX Cache Agent access is beneficial. Consequently, it only uses a MPX Cache Agent for object fetching when it is faster. This algorithm adapts to changing network demands, peak load periods, and other factors so that the fastest possible fetch technique is always used.