edge_vars #3

  • //
  • guest/
  • perforce_software/
  • sdp/
  • dev/
  • Server/
  • Unix/
  • p4/
  • common/
  • bin/
  • edge_vars
  • View
  • Commits
  • Open Download .zip Download (2 KB)
# This file is sourced by scripts that work with edge servers.

# It sets the correct list db.* files that are edge-specific in the
# federated architecture.  This version is dependent on the version of
# p4d in use.
#
# See: https://www.perforce.com/perforce/doc.current/manuals/p4sag/Content/P4SAG/commit-edge-start.html

# Note: $P4D_VERSION looks something like "2020.2.2202902."  In comparisons
# below, a lexigraphical rather than numeric comparison operator is used.
# The greater-than symbol '>' can be thought of as "greater to or equal to"
# in this context, because a version string like "2020.2.2292902" is
# lexigraphically greater than the string "2020.2", so checking
# '> "2020.2"' can be interpreted as "If the p4d major version is greater
# than or equal to 2020.2.
if [[ "${P4D_VERSION:-1970.1}" > "2020.2" ]]; then
   ExcludedTables=db.have,db.working,db.locks,db.resolve,db.revsh,db.workingx,db.resolvex,db.stash,db.haveg,db.workingg,db.locksg,db.resolveg,db.storagesh,db.storagesx
elif [[ "${P4D_VERSION:-1970.1}" > "2019.0" ]]; then
   ExcludedTables=db.have,db.working,db.locks,db.resolve,db.revsh,db.workingx,db.resolvex,db.stash,db.haveg,db.workingg,db.locksg,db.resolveg,db.storagesh
elif [[ "${P4D_VERSION:-1970.1}" > "2018.2" ]]; then
   ExcludedTables=db.have,db.working,db.locks,db.resolve,db.revsh,db.workingx,db.resolvex,db.stash,db.haveg,db.workingg,db.locksg,db.resolveg
elif [[ "${P4D_VERSION:-1970.1}" > "2015.1" ]]; then
   ExcludedTables=db.have,db.working,db.locks,db.resolve,db.revsh,db.workingx,db.resolvex,db.stash,db.haveg,db.workingg,db.locksg,db.resolveg
else
   ExcludedTables=db.have,db.working,db.locks,db.resolve,db.revsh,db.workingx,db.resolvex,db.stash
fi

CheckpointTables=$ExcludedTables,db.view,db.label,db.revsx,db.revux,db.storage
# Change User Description Committed
#4 31317 C. Thomas Tyler Tweaked set of tables to be used for edge servers to work for recovery with
modern SDP on a pre-2019.1 data set.  The CheckpointTables variable appends
db.storage only if the p4d version is new enough to use db.storage.
#3 29653 C. Thomas Tyler Added db.storage to set of tables to checkpoint on an edge
during edge recovery operations.

This is related to p4d server jobs.  The impact of missing data
is limited to loss of db.storage entries related to the spec
depot for edge-specific clients, entries which are not
available in the commit servers slightly diverged db.storage.

#review-29654 @russel_jackson @amo @jack_clucas @robert_cowham
#2 27803 C. Thomas Tyler Updated list p4d version-specific list of federated db.* tables for edges.
Added reference to core docs re: version-specific list of tables.

Added comment block describing usage of lexigraphical comparison.

#review-27804 @d_benedict
#1 25920 C. Thomas Tyler Added new 'edge_vars' file to dynamically set list of edge-specific
db tables based on current P4D version.

Updated edge_dump.sh, recover_edge.sh, and load_checkpoint.sh
to use the new edge_vars file.

Made edge_dump.sh and recover_edge.sh shellcheck v0.6.0 compliant,
along with load_checkpoint.sh.