p4 pull command
The
p4 pull
command provides the most general solution
for replication. Use p4 pull
to configure a replica
server that:
- replicates versioned files (the
,v
files that contain the deltas that are produced when new versions are submitted) unidirectionally from a master server. - replicates server metadata (the information contained in the
db.*
files) unidirectionally from a master server. -
uses the
startup.N
configurable to automatically spawn as manyp4 pull
processes as required.A common configuration for a warm standby server is one in which one (and only one)
p4 pull
process is spawned to replicate the master server’s metadata, and multiplep4 pull -u
processes are spawned to run in parallel, and continually update the replica’s copy of the master server’s versioned files. - The
startup.n
configurables are processed sequentially. Processing stops at the first gap in the numerical sequence. Any commands after a gap are ignored.
Although you can run p4 pull
from the command line
for testing and debugging purposes, it’s most useful when controlled by
the startup.n
configurables, and in conjunction with
named servers, service users, and centrally-managed configurations.
The --batch
option to the p4 pull
specifies the number of files a pull thread should process in a single
request. The default value of 1
is usually adequate. For
high-latency configurations, a larger value might improve archive
transfer speed for large numbers of small files. (Use of this option
requires that both master and replica be at version 2015.2 or
higher.)
Setting the rpl.compress
configurable allows you to
compress journal record data that is transmitted using p4
pull
.
If you are running a replica with monitoring enabled and you have not
configured the monitor table to be disk-resident, you can run the
following command to get more precise information about what pull
threads are doing. (Remember to set monitor.lsof
).
$ p4 monitor show -sB -la -L
Command output would look like this:
31701 B uservice-edge3 00:07:24 pull sleeping 1000 ms [server.locks/replica/49,d/pull(W)]
The possible status messages are:
For journal records | For pulling archives |
---|---|
scanned NNNN records
|
sleeping
|
applied NNNN records
|
running
|
rotating journal
|
p4 pull vs. p4 replicate
Helix Core Server also supports a more limited form of replication based on the p4 replicate command. This command does not replicate file content, but supports filtering of metadata on a per-table basis.