Using the read-only replica
You can perform all normal operations against your master server
(p4 -p master:1666
). To
reduce the load on the master server, direct reporting (read-only)
commands to the replica (command
p4 -p replica:1667
). Because the replica is
running in command
-M readonly -D readonly
mode, commands that read
both metadata and depot file contents are available, and reporting
commands (such as p4 annotate
, p4
changes
, p4 filelog
, p4
diff2
, p4 jobs
, and others) work
normally. However, commands that update the server’s metadata or depot
files are blocked.
Commands that update metadata
Some scenarios are relatively straightforward: consider a command such
as p4 sync
. A plain p4 sync
fails, because whenever you sync your workspace, the
Helix Core Server
must update its metadata (the "have" list, which is stored in the
db.have
table). Instead, use p4 sync -p
to populate a workspace without updating the have list:
$ p4 -p replica:1667 sync -p //depot/project/...@1234
This operation succeeds because it does not update the server’s metadata.
Some commands affect metadata in more subtle ways. For example, many
Helix Server
commands update the last-update time that is associated with a
specification (for example, a user or client specification). Attempting
to use such commands on replica servers produces errors unless you use
the -o
option. For example, p4 client
(which updates the Update:
and Access:
fields
of the client specification) fails:
$ p4 -p replica:1667 client replica_client
Replica does not support this command.
However, p4 client -o
works:
$ p4 -p replica:1667 client -o replica_client
(client spec is output to STDOUT)
If a command is blocked due to an implicit attempt to write to the
server’s metadata, consider workarounds such as those described above.
(Some commands, like p4 submit
, always fail, because
they attempt to write to the replica server’s depot files; these commands
are blocked by the -D readonly
option.)
Using the Helix Broker to redirect commands
You can use the
Helix Broker
with a replica server to redirect read-only commands to replica servers.
This approach enables all your users to connect to the same
protocol:host:port
setting (the
broker). In this configuration, the broker is configured to transparently
redirect key commands to whichever
Helix Core Server
is appropriate to the task at hand.
For an example of such a configuration, see the Knowledge Base article, "Using P4Broker to redirect read-only commands".
See also the chapter on Helix Broker.