Other considerations
As you deploy edge servers, give consideration to the following areas.
-
Labels
In a distributed Perforce service, labels can be local to an edge server or global.
- By default, labels are also bound to the Edge Server on which they are created.
- The
-g
flag defaults to the value of0
, which indicates that the label is to be defined globally on all servers in the installation. Configuringrpl.labels.global=1
allows updating of local labels. See rpl.labels.global in the P4 Command Reference. - For important details, on the command line, type
p4 help distributed
.
-
Exclusive Opens
Exclusive opens (
+l
filetype modifier) are global: establishing an exclusive open requires communication with the commit server, which may incur network latency. -
Integrations with third party tools
If you integrate third party tools, such as defect trackers, with Helix Server, evaluate whether those tools should continue to connect to the master/commit server or could use an edge server instead. If the tools only access global data, then they can connect at any point. If they reference information local to an edge server, like workspace data, then they must connect to specific edge servers.
Build processes can usefully be connected to a dedicated edge server, providing full Helix Server functionality while isolating build workspace metadata. Using an edge server in this way is similar to using a build server, but with the additional flexibility of being able to run write commands as part of the build process.
-
Files with propagating attributes
In distributed environments, the following commands are not supported for files with propagating attributes:
p4 copy
,p4 delete
,p4 edit
,p4 integrate
,p4 reconcile
,p4 resolve
,p4 shelve
,p4 submit
, andp4 unshelve
. Integration of files with propagating attributes from an edge server is not supported; depending on the integration action, target, and source, either thep4 integrate
or thep4 resolve
command will fail.If your site makes use of this feature, direct these commands to the commit server, not the edge server. Perforce-supplied software does not presently set propagating attributes on files and is not known to be affected by this limitation.
-
Logging and auditing
Edge servers maintain their own set of server and audit logs. Consider using structured logs for edge servers, as they auto-rotate and clean up with journal rotations. Incorporate each edge server’s logs into your overall monitoring and auditing system.
In particular, consider the use of the
rpl.checksum.*
configurables to automatically verify database tables for consistency during journal rotation, changelist submission, and table scans and unloads. Regularly monitor theintegrity.csv
structured log for integrity events. -
Unload depot
The unload depot might have different contents on each edge server. Clients and labels bound to an edge server are unloaded into the unload depot on that edge server, and are not displayed by the
p4 clients -U
andp4 labels -U
commands on other edge servers.Be sure to include the unload depot as part of your edge server backups. The commit server does not verify that the unload depot is empty on every edge server. Therefore, to delete the unload depot from the commit server,
p4 depot -d -f
is the command. -
Future upgrades
Commit and edge servers should be upgraded at the same time.
-
Time zones
Commit and edge servers must use the same time zone.
-
Helix Swarm
For details about Helix Swarm support for possible configurations of a Helix Core server, see Swarm configuration in Helix Swarm Guide.