Perforce has introduced a new Distributed Architecture, Commit and Edge servers to decrease the load on central server. Perforce already provides distributed environment with Proxy, Replicas (Readonly replica, Forward replica, Build farm replica). Edge server will an addition to these servers.
What is a Commit-server?
Perforce definition: A commit server stores
the canonical archives and permanent metadata. In working terms, it is similar
to a Perforce master server, but may not contain all workspace
information.
- Present Master server will be converted into commit-server.
- Commit-server will store all versioned files and centralized metadata, but will not contain all the workspace's/clients information.
- The missing workspaces will be available in the edge servers.
What is an Edge-server?
Perforce definition: An edge server
contains a replicated copy of the commit server data and a unique, local copy
of some workspace and work-in-progress information. It can process read-only
operations and operations like p4 edit that only write to the local
data. In working terms, it is somewhat similar to a forwarding replica, but
contains local workspace data and can handle more operations with no reliance
on the commit server.
- An edge server contains full metadata copy of commit-server and allows users to create workspaces on edge server; these workspaces are local to edge-server. These workspace information will not be available on commit-server.
- It can handle read-only commands.
- In my words it’s a combination of forward-replica and build-farm-replica, with more capabilities.
Fig: Commit-server with two
Edge-servers
Difference between Master server and Commit-server:
Master Server
|
Commit Server
|
A standard perforce server
|
A Master server converted to a hybrid mode to support new
features of commit and edge server
|
Stores permanent Metadata and Versioned files
|
Stores permanent Metadata and Versioned files, but will
not have information about workspaces created on edge-server.
|
Supports Proxy, Read-only replica, Forward replica and
Build farm replica.
|
In Addition it supports Edge servers.
|
- Perforce 2014.1 version fully supports Commit and Edge servers.
What is an Edge serve?
Let’s take an example:
- MASTER is a standard perforce server with a FORWARD_REPLICA.
- In this scenario Forward replica will send all commands related to metadata, versioned change to MASTER server, but workspace Sync will happen from FORWARD_REPLICA. This is reducing the load on MASTER.
- All read-only commands are supported.
- While creating a workspace on FORWARD_REPLICA, it will send the request to MASTER and once its created FORWARD_REPLICA will allow users to sync from FORWARD_REPLICA.
- While submitting a change, FORWARD_REPLICA will send the request to MASTER. MASTER decides on submit and updates FORWARD_REPLICA,FORWARD_REPLICA will update to user.
- FORWARD_REPLICA is depended on master for all operations.
Now let’s replace FORWARD_REPLICA with EDGE_SERVER.
- While creating an workspace, EDGE_SERVER will create a workspace and allow to sync files if and only if it’s a Valid user with Permissions to the depot path. This workspace will local to this EDGE_SERVER and this workspace information is not be available in MASTER_SERVER.
- While submitting a Change EDGE_SERVER will lock the files on MASTER and allots a chnagelist number, transfers the files changes to MASTER and decides about the submit, EDGE_SERVER will then update the user.
As a Centralized version control tool perforce Central
server takes care of submits and file changes.
- Edge servers will reduce most of the Central server load.
- Edge server will locally create and handles the databases: db.have, db.working, db.resolve,db.locks, db.revsh, db.workingx, db.resolvex .
- With the local databases Edge server will allow workspace creation, sync, locks,takes care of work in progress information.
- Using and Edge server is more effective than a FORWARD_REPLICA.
More information Continues ....

No comments:
Post a Comment