Improve WAN performance

Development teams are often geographically dispersed across a WAN. You can use the following technologies to significantly improve performance and reduce network traffic:

  • Library cache

  • Personal library cache directory (PLCD)

  • Intelligent file transfer

Overview

Using a library cache improves performance by caching file contents on a network node that is geographically close to the remote users. When users update files, the files are transferred from the library cache, not the Dimensions CM repository, which reduces transfer times by eliminating the geographical distance and resulting network latency. If a project or stream has many large files, it is more likely to benefit from using library cache areas. Library cache areas are used on a per project/stream basis, and each user can configure their client to use them.

For details about managing library cache areas, see Administration.

Using a personal library cache directory (PLCD) enables even faster access to repository files for distributed teams. PLCD removes network transfers when the same revision has been previously fetched to a work station or initially delivered from a work area on that work station. PLCD makes a local copy in a cache directory of items updated from and delivered to Dimensions CM. This mechanism speeds up transfers when fetching the same revision more than once, for example, fetching a baseline or restoring item revisions.

Intelligent file transfer between all network nodes ensures that multiple files are streamed together as a large, compressed buffer and not individually. Where possible, only the delta between the currently available and the requested version of a file is transferred, and the requested version is automatically re-assembled on the destination network node.

Back to top

File transfer with PLCD and library cache

When a command, such as UPDATE, transfers new files from an item library to a work area, it checks if PLCD is enabled on the work area network node and if a library cache is available. The command then checks if the required files have already been cached in the local PLCD.

Files that are not cached are requested from the library cache. If it is not available, the files are transferred directly from the item library and then cached in PLCD.

The library cache processes the list of files requested by the client. Any files that are not already cached in the library cache are transferred directly from the item library and then sent to the client.

The command then copies the files from PLCD to the local work area without any additional network traffic.

If only PLCD is available, the process is the same as described above except that files missing in PLCD are requested directly from the item library.

If only library cache is available, the process is the same as described above except that files are transferred from the library cache directly into the work area.

If neither PLCD nor a library cache are available, the required files are transferred into the work area directly from the item library.

For details on how to modify PLCD settings, see the following topics:

Back to top

Memory file cache

Dimensions CM transfers multiple files in bulk using the memory file cache. Files that need to be transferred are added to an in-memory cache buffer. When the cache buffer fills up, the files stored in the cache are sent to the receiving network node.

To modify the size of the memory cache add the symbol DM_FILECACHE_SIZE to the server configuration file. For details see Modify server configuration symbols.

The default size of the memory cache is 4 MB. If your data set consists mainly of small files, you can improve performance by increasing the file size threshold of the memory cache. The results will depend on your network connection.

If PLCD is enabled on the client, Dimensions CM uses delta compression during UPDATE and DELIVER commands to further reduce network traffic. For details, see Use delta compression.

Back to top

Automatic library cache population

You can configure a Dimensions CM server to automatically keep library cache areas in sync with the item libraries by constantly monitoring incoming changes to the item library. When a server detects a new changeset, it launches the DLCA (Download to Library Cache Area) command, which updates the library cache area with the new item revisions in the changeset.

Using the current revision of an item in the library cache area and a new revision created in the item library, a delta is generated that only contains the differences between the two revisions. The deltas for changed items are sent to the library cache area and used to regenerate the item revision file. This ensures that the library cache is always automatically in sync with the item library without imposing a heavy load on the network.

Guidelines and recommendations:

  • To determine if PLCD is beneficial for your users on a LAN, you can measure performance. For details, see Measure performance benefits.

  • File transfers are typically much faster over a LAN than over a high-latency WAN. The savings in network traffic reduction resulting from PLCD usage on a LAN may not offset the overhead of extra local file IO operations required for PLCD operation. This depends on the LAN speed, if users store their work areas on fast SSDs or slower SATA drives, and on the Dimensions CM operations performed. File transfer over a 1Gbps LAN should be faster than a local file copy on a slow SATA hard drive but slower than with a fast SSD.

  • PLCD only works with Dimensions CM 14.x clients and servers and is not backwards compatible with versions earlier than 14.x. Upgrade all library cache nodes and clients to Dimensions CM 14.x.

  • The default size of the PLCD is 10 GB, but you can tune it to accommodate the size of your streams.

Back to top

See also: