VersIC Multi Site Support

Large companies like Google, Yahoo and Oracle have thousands of developers across different continents that depend on multi-site support in Perforce and Subversion. By integrating these tools in the Cadence environment Perforce IPLM and VersIC facilitate a proven, highly scalable multi-site design methodology. 

Perforce Helix Core

Helix Core is built to handle distributed development in a wide range of network topologies. Where bandwidth to remote sites is limited, Helix provides several mechanisms to reduce demand on the network and/or the server, including Proxy servers, Forwarding Replica servers, and Edge Servers.

Distributer architectures are described in detail in the Helix Core Server Administrator Guide

VersIC supports all of these options, including the Forwarding Replica server and Edge Servers.

Helix Core Proxy

The Helix Core Proxy, is a self-maintaining proxy server that caches versioned files for reuse on any local network with remote access to the Commit server. The proxy brings files to remote users on demand and caches them locally for other users at the same location. Local caching guarantees quick response times for remote users while maintaining real-time access to project activity and status information. A proxy caches local file content, but not local metadata. It forwards every command to the Commit server.

Low administration

The more advanced replication solutions have some inherent administrative overhead. The Proxy reduces the load on the Commit server and network latency in that it caches a local copy of the data files, but it still incurs the latency inherent in forwarding all commands to the central Commit server, and doesn't cache any metadata. It will however recover files automatically, and it requires no backups.

Invisible to users

The Proxy is completely transparent to users at remote sites. The only supporting technology required is TCP/IP connectivity. No specialized filesystems or database servers are necessary.

IPLM/VersIC and the p4 proxy

To use IPLM and VersIC with the Helix Core Proxy, set P4PORT to point at the local proxy server.

Reference material

The Proxy is covered in Chapter 9 of the Helix Core Administrator Guide

Helix Core Forwarding Replication

Forwarding Replication is the real-time duplication of server data and metadata from the central Helix Commit server to a remote Forwarding Replica server. With a Forwarding Replica server read operations such as listing files or looking at file logs become local operations, this reduces load on the Commit server. Write operations such as syncing, checking out, merging, resolving, submitting, and reverting are forwarded to the Commit server.

IPLM/VersIC and Forwarding Replicas

To use a Forwarding Replica with IPLM, set P4PORT or see piclient.conf for how to map the host if defined on an IP.
VersIC will use the Forwarding Replica Server for read-only operations, but will send write operations to the Commit server (or to the Proxy if used). See versic.conf for details.

Reference Material

Replication is covered in Chapter 10 of the Helix Core Server Administrator Guide

Helix Core Commit - Edge Architecture

The Commit - Edge server Architecture is similar to the Forwarding Replica server but with increased capability in the remote Edge server. With an Edge server syncing, checking out, merging, resolving, and reverting become local operations, thereby reducing the load on the central Commit Server, and greatly improving performance for local users. In addition Edge servers keep local workspace data for remote users, further increasing performance and reducing commit server load. Multiple Edge servers can be connected to a single Commit server.

Administration Requirements

Because Edge servers are maintaining their own local copies of workspace and work in progress data, they must be backed up separately from the Commit server.

Reference Material

Details about installing and configuring an Edge Server are in the Helix Core Server Administrator Guide



Subversion

Many subversion operations are local, that is they do not require access to the repository or to the master server, so network performance/server load may be less critical than with Helix.
Most VersIC/Svn customers with remote sites work directly on the master repository.
There are solutions available to improve Subversion performance at remote sites - this information is provided for reference only and Perforce does not endorse or support these products.

svnsync

Svnsync provides a write though proxy server at a remotes site, mirroring the activity on the central server. All svn operations at the remote site are made to the local svnsync server, which forwards write operations to the central server. A post commit hook on the central server then updates the remotes svnsync servers with this change.

Reference material

Descriptions, examples and discussions of svnsync can be found on the web

WANDisco SVN Multisite Plus

An interesting 3rd party tool is also available from WANDisco. They facilitate background mirroring event between remote sites such that every local site repository can be written to.
This reduces WAN-induced latencies and generally gives a much better level of performance.  See the WANDisco website for more information.