Shared archives between replica and master
Typical replication | Shared archives |
---|---|
Typically, a
replica A Helix Core Server that automatically maintains a full or partial copy of metadata and none, some, or all of the related file archives by copying data from a master Helix Core Server using 'p4 pull' or 'p4 journalcopy'. server retrieves both its metadata and file archives from the master server on the
user-defined pull interval. For example This configuration requires the P4TARGET server to send the archives files to the replica. |
If a replica server is configured to share the same physical archive files as the master server:
|
Sharing archives is supported between a master and replica server, or between a commit server and edge server.
Replica servers can't share archives with other replica servers.
To share archives, on the replica, set the lbr.replication
configurable to shared
either in the server spec or manually:
- only metadata is retrieved on the pull interval
- the "shared" archive files are not retrieved until requested by a client
- new files are not automatically transferred
- purged files are not removed
Shared archives can form part of a High Availability configuration.
When archive files are directly shared between a replica and master
server, the replica must have
set
to shared. Otherwise, the files in the archive might be corrupted.lbr.replication
To configure a replica to share archive files with a master
-
Ensure that the clocks for the master and replica servers are synchronized.
Nothing needs to be done if the master and replica servers are hosted on the same operating system.
Synchronizing clocks is a system administration task that typically involves using a Network Time Protocol client to synchronize an operating system’s clock with a time server on the Internet, or a time server you maintain for your own network.
-
If you have not already done so, configure the replica or edge server. See Deployment architecture.
-
Set server.depot.root on the master and replica, or the commit and edge, to point to the shared archive location for relative depot map paths to use. For example,
p4 configure set master#server.depot.root=/data/depots
p4 configure set replica#server.depot.root=/data/depotsNoteReview any absolute depot map paths to ensure the replica server has access to write files to that absolute shared archive location. The replica server enforces correct
lbr.replication
settings when archives are being shared. Therefore, the replica server needs to write files to the shared archive locations noted by any depot map paths. See Providing map information in Helix Core Command-Line (P4) Reference. -
Set
lbr.replication=shared
either in the replica's server spec or manually using a command similar to this:p4 configure set replica#lbr.replication=shared
- Restart the replica.
Result
The result of this configuration:
- archive file content is only retrieved when requested, and those requests are made against the shared archives
-
commands that would schedule the transfer of file content, such as
p4 pull -u
andp4 verify -t
are rejected -
if startup configurables, such as
startup.N=pull -u
, are defined, the replica server attempts to run such commands. Because the attempt to retrieve archive content is rejected, the replica’s server log will contain an error:Perforce server error: 2014/01/23 13:02:31 pid 6952 service-od@21131 background 'pull -u -i 10'
NoteFor upgrading, see Upgrading replica servers.