README.md #3

  • //
  • p4-sdp/
  • dev_rebrand/
  • README.md
  • Markdown
  • View
  • Commits
  • Open Download .zip Download (7 KB)

What is the Server Deployment Package (SDP)?

Supported Open Source Software

When deployed or certified by Perforce Consulting, the core functionality of the SDP is officially supported by Perforce Support, except for files in the Unsupported directory tree (which are community supported).

The SDP is open source software (see the LICENSE), and accepts contributions (pending code review) from the user community.

Documentation References

The following documentation is included in the SDP:

  • Release Notes (PDF | HTML) - Learn What's New in SDP 2025.1, What's coming in 2025.2 later this year, see summarized Change History, and more.
  • SDP_Guide.Unix (PDF | HTML) - Detailed documentation for SDP on UNIX/Linux.
  • SDP_Legacy_Upgrades.Unix (PDF | HTML) - Detailed documentation for upgrading SDP from pre-2020.1 versions. Once on SDP 2020.1, upgrades to newer versions are simplified with sdp_upgrade.sh.
  • SDP_Guide.Windows (PDF | HTML) - Detailed documentation for SDP on Windows.
  • SDP_Failover_Guide PDF | HTML) - Targeted document with information you need to know when executing a planned failover (on UNIX/Linux or Windows). The SDP guides above contain more information for planning for failover.
  • SDP_Developer_Guide PDF | HTML) - Information about working on and contributing to the SDP.

Features and Benefits

The following describes some of the many features and benefits of using the SDP to manage P4.

Optimal Performance, Data Safety, and Simplified Backup

The SDP provides a standard structure for operating Perforce that is optimized for performance, scalability, and ease of backup. The SDP Guide includes documentation that promotes volume layout and storage architecture best practices.

A key SDP feature is that it maintains an offline copy of live databases. This has many benefits:

  • Zero downtime for daily metadata checkpoint operations.
  • Greater data safety and redundancy with an extra copy of metadata.
  • Faster alternative path to recovery, bypassing checkpoint replays.
  • Ability to swap live with regenerated databases with minimal downtime.
  • Faster edge seed checkpoint creation.
  • Edge reseed or recovery with minimized downtime.

To simplify backup, all digital assets are in a single directory. Live databases that should not be backed up directly live in another, and active log files in another. For any scale environment, this makes it easy to back up the server's critical data. These directories are a natural fit for storage volume mount points, with the layout promoting best performance and data safety.

Best Practice Configurables

The SDP also maintains, on an ongoing basis, a set of best-practices configuration settings (e.g. 'configurables' and environment settings) suited to production environments, which often differ from p4d defaults.

High Availability (HA)

The SDP supports a variety of methods for achieving high availability that benefit simple, single-server environments and sophisticated global enterprise environments, and all in between. Standardized and documented recovery procedures, offline databases, and optional replication (made easier with the SDP) all make HA easier to achieve.

There is more detailed discussions and references in the SDP Guides noted above.

Disaster Recovery (DR)

Just as with HA, the SDP makes it easier to implement robust, reliable DR strategies.

There is more detailed discussions and references in the SDP Guides noted above.

Fast and Safe Upgrades

The SDP makes upgrades of P4 server products fast and easy, regardless of the scale of your environment. By taking advantage of the offline database structure, the SDP enables upgrades with just a few minutes of downtime (enough to do a journal rotation).

Production Focus

The p4d executable, without any configuration, is optimized for evaluation and demonstration purposes. While it has many features that can make it reliable and robust, many of those features must be configured. The SDP is intended to be used for production environments or more realistic Proof of Concept installations.

Sophistication Simplified - Replicas, Edges, Proxies, Brokers

In addition to the basics, the SDP provides structure, standards, guidance, and automation that greatly simplify deployment and management of sophisticated P4 global topologies. For example, the SDP includes tools that greatly simplify complex tasks such as:

  • Adding new replicas and edge servers to a topology
  • Checkpointing master and edge servers without down time for users
  • Providing a consistent way to upgrade core P4 components in a global topology.

Multi-Instance Management

The SDP supports operation of multiple instances of P4 on a machine, allowing each instance to have differing configuration, e.g. different:

  • Versions of software components (p4d, p4broker, etc.)
  • Case Sensitivity setting (sensitive/insensitive)
  • Unicode setting (enabled/disabled)

Shell Environment Management

The SDP provides standard mechanism for defining a controlled shell environment. This benefits p4d and other Perforce software products directly, and also provides good examples of controlling the environment for supporting automation.

Perforce Automation Standards

The SDP defines a standard for installing and configuring derived APIs. For example, Python is built with P4Python in /p4/common/python, and Perl with P4Perl in /p4/common/perl.

P4 Management System

The P4 Management System (P4MS) is a separate, community-supported product that builds on the SDP. This may be of interest at installations with sophisticated global topologies and/or a fleet of SDP instances to manage.

SDP Code Quality

An set of 3 automated regression test suites and both pre- and post-commit code review processes help ensure code quality. This is supplemented by manual testing, often in a P4 Battle School Workshop training lab environment. Contact Perforce Consulting for more information.

See more details about the test suite in the Test Suite README file.

# What is the Server Deployment Package (SDP)?

## Supported Open Source Software

*When deployed or certified by Perforce Consulting*, the core functionality of the SDP is officially supported by Perforce Support, except for files in the `Unsupported` directory tree (which are community supported).

The SDP is open source software (see the [LICENSE](https://workshop.perforce.com/view/p4-sdp/main/LICENSE)), and accepts contributions (pending code review) from the user community.

## Documentation References

The following documentation is included in the SDP:

* Release Notes ([PDF](doc/ReleaseNotes.pdf) | [HTML](doc/ReleaseNotes.html)) - Learn What's New in SDP 2025.1, What's coming in 2025.2 later this year, see summarized Change History, and more.
* SDP_Guide.Unix ([PDF](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Guide.Unix.pdf) | [HTML](https://workshop.perforce.com/projects/view/p4-sdp/r25.1/doc/SDP_Guide.Unix.html)) - Detailed documentation for SDP on UNIX/Linux.
* SDP_Legacy_Upgrades.Unix ([PDF](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Legacy_Upgrades.Unix.pdf) | [HTML](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Legacy_Upgrades.Unix.html)) - Detailed documentation for upgrading SDP from pre-2020.1 versions. Once on SDP 2020.1, upgrades to newer versions are simplified with `sdp_upgrade.sh`.
* SDP_Guide.Windows ([PDF](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Guide.Windows.pdf) | [HTML](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Guide.Windows.html)) - Detailed documentation for SDP on Windows.
* SDP_Failover_Guide [PDF](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Failover_Guide.pdf) | [HTML](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Failover_Guide.html)) - Targeted document with information you need to know when *executing* a planned failover (on UNIX/Linux or Windows).  The SDP guides above contain more information for *planning* for failover.
* SDP_Developer_Guide [PDF](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Developer_Guide.pdf) | [HTML](https://workshop.perforce.com/view/p4-sdp/r25.1/doc/SDP_Developer_Guide.html)) - Information about working on and contributing to the SDP.

## Features and Benefits

The following describes some of the many features and benefits of using the SDP to manage P4.

### Optimal Performance, Data Safety, and Simplified Backup

The SDP provides a standard structure for operating Perforce that is optimized for performance, scalability, and ease of backup. The SDP Guide includes documentation that promotes volume layout and storage architecture best practices.

A key SDP feature is that it maintains an offline copy of live databases. This has many benefits:

* **Zero downtime** for daily metadata checkpoint operations.
* Greater data safety and redundancy with an extra copy of metadata.
* Faster alternative path to recovery, bypassing checkpoint replays.
* Ability to swap live with regenerated databases with minimal downtime.
* Faster edge seed checkpoint creation.
* Edge reseed or recovery with minimized downtime.

To simplify backup, all digital assets are in a single directory.  Live databases that should not be backed up directly live in another, and active log files in another.  For any scale environment, this makes it easy to back up the server's critical data.  These directories are a natural fit for storage volume mount points, with the layout promoting best performance and data safety.

### Best Practice Configurables

The SDP also maintains, on an ongoing basis, a set of best-practices configuration settings (e.g. 'configurables' and environment settings) suited to production environments, which often differ from p4d defaults.

### High Availability (HA)

The SDP supports a variety of methods for achieving high availability that benefit simple, single-server environments and sophisticated global enterprise environments, and all in between.  Standardized and documented recovery procedures, offline databases, and optional replication (made easier with the SDP) all make HA easier to achieve.

There is more detailed discussions and references in the SDP Guides noted above.

### Disaster Recovery (DR)

Just as with HA, the SDP makes it easier to implement robust, reliable DR strategies.

There is more detailed discussions and references in the SDP Guides noted above.

### Fast and Safe Upgrades

The SDP makes upgrades of P4 server products fast and easy, regardless of the scale of your environment.  By taking advantage of the offline database structure, the SDP enables upgrades with just a few minutes of downtime (enough to do a journal rotation).

### Production Focus

The p4d executable, without any configuration, is optimized for evaluation and demonstration purposes.  While it has many features that can make it reliable and robust, many of those features must be configured.  The SDP is intended to be used for production environments or more realistic Proof of Concept installations.

### Sophistication Simplified - Replicas, Edges, Proxies, Brokers

In addition to the basics, the SDP provides **structure**, **standards**, **guidance**, and **automation** that greatly simplify deployment and management of sophisticated P4 global topologies.  For example, the SDP includes tools that greatly simplify complex tasks such as:

* Adding new replicas and edge servers to a topology
* Checkpointing master and edge servers without down time for users
* Providing a consistent way to upgrade core P4 components in a global topology.

### Multi-Instance Management

The SDP supports operation of multiple instances of P4 on a machine, allowing each instance to have differing configuration, e.g. different:

* Versions of software components (p4d, p4broker, etc.)
* Case Sensitivity setting (sensitive/insensitive)
* Unicode setting (enabled/disabled)

### Shell Environment Management

The SDP provides standard mechanism for defining a controlled shell environment.  This benefits p4d and other Perforce software products directly, and also provides good examples of controlling the environment for supporting automation.

### Perforce Automation Standards

The SDP defines a standard for installing and configuring derived APIs.  For example, Python is built with P4Python in /p4/common/python, and Perl with P4Perl in /p4/common/perl.

### P4 Management System

The [P4 Management System (P4MS)](https://workshop.perforce.com/projects/p4ms) is a separate, community-supported product that builds on the SDP.  This may be of interest at installations with sophisticated global topologies and/or a fleet of SDP instances to manage.

## SDP Code Quality

An set of 3 automated regression test suites and both pre- and post-commit code review processes help ensure code quality. This is supplemented by manual testing, often in a P4 Battle School Workshop training lab environment.  Contact [Perforce Consulting](mailto:[email protected]) for more information.

See more details about the test suite in the [Test Suite README file](https://workshop.perforce.com/view/p4-sdp/r25.1/test/README.md).

# Change User Description Committed
#3 31689 C. Thomas Tyler Merge Down in //p4-sdp dev -> dev_rebrand.
#2 31615 C. Thomas Tyler First pass at rebranding changes, including:
* Changes to remove 'swarm.' from Workshop URLS, so swarm.workshop -> workshop.
* Changed URL for Copyright.
* Renamed get_helix_binaries.sh -> get_p4_binaries.sh, with associated directory and doc changes.
* Accounted for rename of HAS -> P4AS.
* Changed HMS references to P4MS.
* Replaced "Helix" and "Helix Core" references.
* Renamed variables to reduce tech debt buildup induced by rebranding.
* Changed default mount points:
/hxdepots[-1,N] -> /p4depots[-1,N]
/hxmetadata[1,2] -> /p4db[-1,2]
/hxlogs -> /p4logs

Also made some changes related to rebranding going out with r25.1.
#1 31591 C. Thomas Tyler Populate stream //p4-sdp/dev_rebrand from //p4-sdp/dev.
//p4-sdp/dev/README.md
#1 31397 C. Thomas Tyler Populate -b SDP_Classic_to_Streams -s //guest/perforce_software/sdp/...@31368.
//guest/perforce_software/sdp/dev/README.md
#30 31208 C. Thomas Tyler Merged down hot patch to web docs only (no functional change).
#29 30395 C. Thomas Tyler Merge down README.md fix.
#28 30379 C. Thomas Tyler Updated README.md for 2024.1 release.

Removed the generated README.html file due to issues with rendered HTML format.
The automated rendering via Helix Swarm is rather nice.
#27 30000 C. Thomas Tyler Refined Release Notes and top-level README.md file in preparation
for coming 2023.2 release.

Adjusted Makefile in doc directory to also generate top-level
README.html from top-level README.md file so that the HTML file is
reliably updated in the SDP release process.

Updated :revnumber: and :revdate: docs in AsciiDoc files to
indicate that the are still current.

Avoiding regen of ReleaseNotes.pdf binary file since that will
need at least one more update before shipping SDP 2023.2.
#26 29963 C. Thomas Tyler Merge down from main.
#25 29932 C. Thomas Tyler Merge down @29916 from main:

Removed mention of Helix Installer while we resolve issues around inexperienced users managing to zap their existing repository.

#review-29933
#24 29915 Robert Cowham Remove reference to Helix Installer for now.
#23 28861 C. Thomas Tyler Merged patch to README.md.
#22 28852 C. Thomas Tyler Release notes corrections and tweaks to SDP home page
related to the major version change..
#21 28385 C. Thomas Tyler Updated README for coming r21.2 release.

Enhanced product description to emphazise key SDP benefits, better
describing the value of the Offline DB.

#review-28386
#20 27482 C. Thomas Tyler README.md updates:
* Added Documentation References section, with less clutter and easier links to PDF/HTML versions of key docs, including the upgrade guide.
* Enhanced "Sophistication Simplified" section.
* Simplified Support status text.
* General grammer corrections.
* Removed a broken link.
* Simpflified Contribing sections.
* Enhanced formatting/TOC levels, moved several sections under new "Features and Benefits" section.

#review-27483
#19 27444 C. Thomas Tyler Fixed issue with broken doc links.
#18 27015 C. Thomas Tyler Replaced notes in README.md re: upgrading SDP with ref to new SDP Upgrade Guide doc.

The doc URL references not-yet-existing SDP r20.1 branch.
#17 26781 Robert Cowham Reference new docs.
#16 26652 Robert Cowham This is Tom's change:

Introduced new 'Unsupported' directory to clarify that some files
in the SDP are not officially supported. These files are samples for
illustration, to provide examples, or are deprecated but not yet
ready for removal from the package.

The Maintenance and many SDP triggers have been moved under here,
along with other SDP scripts and triggers.

Added comments to p4_vars indicating that it should not be edited
directly. Added reference to an optional site_global_vars file that,
if it exists, will be sourced to provide global user settings
without needing to edit p4_vars.

As an exception to the refactoring, the totalusers.py Maintenance
script will be moved to indicate that it is supported.

Removed settings to support long-sunset P4Web from supported structure.

Structure under new .../Unsupported folder is:
   Samples/bin             Sample scripts.
   Samples/triggers        Sample trigger scripts.
   Samples/triggers/tests  Sample trigger script tests.
   Samples/broker          Sample broker filter scripts.
   Deprecated/triggers     Deprecated triggers.

To Do in a subsequent change: Make corresponding doc changes.
#15 26595 C. Thomas Tyler Minor updates to README.md, WIP.
#14 25591 C. Thomas Tyler Clarified that Maintenance folder scripts are samples and are
NOT officially supported.

Updated references to HMS now that it has been split back out
into a separate product.
#13 25155 Robert Cowham Refer to test/README.md
#12 25043 C. Thomas Tyler Prepared patch SDP/MultiArch/2018.1/23583.p2

Changes:
* In README, moved 'Supported Open Source Software' section
to the top of the page, to make Support position more visible.
* Copyright updated to 2019.
* Cleanup of excess script recreate_db_sync_replica.sh
* Re-removal of previously deleted script recreate_db_checkpoint.sh,
and corresponding removal from test suite.
* This patch tarball will also contain some Docker test suite updates
already staged in main.

By-passing review to trigger an automated test.
#11 24511 C. Thomas Tyler Fixed an obvious doc typo in README files.
 Bypassing code
review.
#10 23353 C. Thomas Tyler Fixed typo/grammatical error.
#9 23315 C. Thomas Tyler Overhauled SDP README page to better convey its value, and
much more strongly promote the SDP.

This also documents the the nature of offical Perforce Support
for the SDP, and the limitations of that Support to core SDP
functionality.
#8 16784 C. Thomas Tyler Routine Merge Down to dev from main using:
p4 -s merge -n -b perforce_software-sdp-dev
#7 15797 C. Thomas Tyler Routine    Merge Down to dev from main for SDP.
#6 13729 C. Thomas Tyler Tweaked formatting on README.md.
#5 12028 C. Thomas Tyler Refreshed SDP dev branch, merging down from main.
#4 11535 Russell C. Jackson (Rusty) Updated dev from main.
#3 11463 Russell C. Jackson (Rusty) Updated dev to prepare for Summit agreed changes.
#2 11038 Robert Cowham Catchup from Main
#1 10638 C. Thomas Tyler Populate perforce_software-sdp-dev.
//guest/perforce_software/sdp/main/README.md
#1 10611 C. Thomas Tyler Added README file for the SDP in The Workshop.