SlideShare a Scribd company logo
1 of 26
Download to read offline
Perforce Administration:
Optimization, Scalability,
Availability, and Reliability
Michael Mirman
Perforce Administrator
MathWorks, Inc.

2011
INTRODUCTION
ARCHITECTURE OVERVIEW


   •  Approximately 500 users
   •  Several million archive files
   •  Using almost all possible triggers, several daemons
   •  Mirroring our own bug database into Perforce
   •  Interfaces: P4, P4V, P4Perl, P4Java, Emacs,
   P4Eclipse, P4DB, P4EXP
   •  P4 Broker, P4 Proxies
   •  Multiple replicas
P4 PROXIES AND P4 BROKER
AVAILABILITY


    •  Proxies use anycast technology
         •  Special routing technology allows all users to have
         the default port (perforce:1666) regardless of their
         physical location
         •  Redirects users to the physically nearest proxy
         server
         •  Provides automatic fail-over if one proxy goes down

    •  P4broker is a High Availability VM and can be restarted
    anytime with minimal downtime

    •  Replicas allow read-only access if master is offline
REPLICATION
REPLICATION (2009.2 SOLUTION)


    P4 replicate command replicates only meta-data.
    •  Replicate archive synchronously
        p4 -p MASTER replicate -s STATEFILE -J JNLPREFIX 
        SOMEDIR/p4admin_replicate -port 1666 -srchost 
        MASTERHOST -srctop DATADIR
    •  Read journal records, pass them to p4d to replay them,
    and when necessary start copying archive:
        rsync -av --delete “$srchost:$srctop/$dir/” “$dir/”
    •  Script available in the public depot:
        //guest/michael_mirman/conference2011/p4admin_replicate
REPLICATION (2010.2 SOLUTION)


    P4 pull command is available in 2010.2.
    •  Can replicate metadata and/or archive
    •  Configurables are a good way to set pull commands
       -> p4 configure show Replica
       Replica: startup.1 = pull -i 2 -J /perforce/1666/journal
       Replica: startup.2 = pull -i 1 -u
       Replica: startup.3 = pull -i 1 -u       wait for 2011.1
       Replica: startup.4 = pull -i 1 -u       wait for 2011.1
P4 PULL VS P4ADMIN_REPLICATE


   •  p4 pull is more efficient than p4admin_replicate
        •  times when metadata are matching the archive are
        determined differently
        •  recursive rsync takes a long time for top directories
   •  p4admin_replicate has extra features
        •  p4 replicate can filter records
        •  p4admin_replicate can have multiple destinations
        •  p4admin_replicate can be used to update archive
        without updating metadata
        •  detailed logging – easier introspection

   Use p4 replicate if you need to filter journal records
LOAD BALANCE
P4 BROKER


   •  Continuous builds and other read-only applications may
   be happy with a replica
   •  Continuous builds may be happy with a metadata
   replica to determine the time to start building
        •  TeamCity submits several queries for each build
        •  Some of our builds use “p4 fixes -i” and “p4
        changes”
   •  Our usage of p4broker:
        •  Redirect queries from Build systems
        •  Support P4DB (web read-only interface)
        •  Provide a nice message if the master is under
        maintenance and only read-only access is provided
STALE REPLICAS


   What if my replica goes stale?
   •  Monitor the age of your replica.
       Cron example:
    * * * * * for n in 1 2 3 4 5 6; do export DT=`date`; echo
   "$n. $DT"; p4 -p perforce:1666 counter keepinsync "$DT";
   sleep 10; done
       Look at the replica age:
   -> p4 -p perforce:1666 counter keepinsync!
   Mon Mar 28 16:06:12 EDT 2011!
   -> p4 -p replica1:1666 counter keepinsync!
   Mon Mar 28 16:06:02 EDT 2011
   •  If the replica age goes over a threshold, regenerate the
   broker config file and alarm the administrator
SERVER UNDER MAINTENANCE


   Additional benefits of p4broker

   •  If the master server is unavailable, the broker config is
   regenerated to provide the appropriate message for non-
   read-only commands

   •  If no servers are available, the broker config is
   regenerated to provide a different message (“No servers
   are available”) instead of not user-friendly “Connection
   refused”
OUR EXPERIENCE WITH LOAD BALANCE


   What we find useful:

   •  Monitor the load and collect data even if we don’t need
   these data right now

   •  Use replicas to distribute the load

   •  Maintain the broker config file according to server
   availability and replica age

   •  Broker provides transparency and increases the
   availability of the server
OFFLINE CHECKPOINTING
CHECKPOINTING


   Checkpointing causes users to wait

   •  It’s always too long

   •  Different ways of creating checkpoints offline
        •  our old way (using NetApp snapshots):
       //guest/michael_mirman/snap_checkpoint/snap_checkpoint
       •  our new way: using metadata replica
USING METADATA REPLICA


   Metadata replica practically does not lag behind the
   master.
   •  Settings:
   -> p4 configure show Replica2
   Replica2: monitor = 1
   Replica2: server = 1
   Replica2: startup.1 = pull -i 4 -J /export/journal/perforce/1666/journal
   •  Command:
     p4d –r ROOTDIR –z –jc CKPDIR/perforce.1666
   •  Nightly db validation
     p4d –r ROOTDIR –xv
     p4d –r ROOTDIR –xx
MINIMIZE DOWNTIME
DISASTER RECOVERY PLAN


 •  Checkpoints and journals are copied to the backup filer
 immediately after their creation

 •  Archive is maintained continuously by p4admin_replicate

 •  Two test servers are used to verify the restore process

 •  DB is restored from the latest checkpoint + all following
 journals

 •  The earliest journal is determined by the time stamp from
 the first @ex@ record from the checkpoint
DISASTER RECOVERY PLAN (continued)


   •  Test restore process includes
      p4d –xv
      p4d –xx
      p4 verify –qz //…

   •  Repository is split up and verified in N processes in
   parallel (example in the public depot: //guest/
   michael_mirman/conference2011/pverify)
FAIL-OVER PLAN


   •  No automatic fail-over (conscious decision: assess the
   situation)

   •  Use it after rebuilding database on a replica

   •  Fail-over is accomplished by changing the broker
   config file
        •  block write access
        •  wait for the replication to get the standby to be in
        sync with the master
        •  allow write access to the new master
MAJOR UPGRADE


   •  Place all binaries in the right locations and update
   licenses if necessary
   •  Reconfigure p4broker to block write access and
   redirect all read-only requests to a replica
   •  Wait until the replica is in sync with the master
   •  Stop the master and all replication processes
   •  Upgrade the master (p4d -xu) and restart it
   •  Reconfigure p4broker not to use any replica
   •  Upgrade and restart every replica
   •  Restart replication processes
   •  Reconfigure p4broker to use replicas as usual
   •  Restarting p4broker and proxies cause short service
   interruptions, but we don’t always have to do this
SUMMARY
WHAT WORKED WELL FOR US


   To increase availability:
       •  Anycast with multiple proxies – no need to
       reconfigure clients when infrastructure changes
       •  High-Availability VM for p4broker
       •  Maintaining a warm standby replica.
   To improve load balancing:
       •  Moving some maintenance procedures to
       replica servers (our VMs are adequate);
       •  Creating checkpoints on a replica server and
       testing them regularly;
       •  Using p4broker to redirect some load to a
       replica server.
WHAT ELSE WORKED WELL


   Having test servers with identical or very similar
   architecture.

   Replicating data synchronously on replicas and
   continuously on archive.

   “Set it and forget it” - Administration is easy when
   you have automated most functions.
THANK YOU!




   ANY QUESTIONS?

More Related Content

What's hot

[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...
Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...
Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...confluent
 
Built in physical and logical replication in postgresql-Firat Gulec
Built in physical and logical replication in postgresql-Firat GulecBuilt in physical and logical replication in postgresql-Firat Gulec
Built in physical and logical replication in postgresql-Firat GulecFIRAT GULEC
 
Replication
ReplicationReplication
ReplicationPerforce
 
High availability for puppet - 2016
High availability for puppet - 2016High availability for puppet - 2016
High availability for puppet - 2016Zack Smith
 
Chef Patterns at Bloomberg Scale
Chef Patterns at Bloomberg ScaleChef Patterns at Bloomberg Scale
Chef Patterns at Bloomberg ScaleChef
 
Apache Kafka
Apache KafkaApache Kafka
Apache KafkaJoe Stein
 
Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets  Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets Perforce
 
PuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentPuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentGreg Cockburn
 
Accelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishAccelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishJeremy Cook
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...SaltStack
 
SREConEurope15 - The evolution of the DHCP infrastructure at Facebook
SREConEurope15 - The evolution of the DHCP infrastructure at FacebookSREConEurope15 - The evolution of the DHCP infrastructure at Facebook
SREConEurope15 - The evolution of the DHCP infrastructure at FacebookAngelo Failla
 
HBase replication
HBase replicationHBase replication
HBase replicationwchevreuil
 
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...OpenStack Korea Community
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCMen and Mice
 
LAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsLAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsPerforce
 
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...Severalnines
 
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedGanapathi Kandaswamy
 

What's hot (20)

Tomcatx performance-tuning
Tomcatx performance-tuningTomcatx performance-tuning
Tomcatx performance-tuning
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...
Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...
Discover Kafka on OpenShift: Processing Real-Time Financial Events at Scale (...
 
Built in physical and logical replication in postgresql-Firat Gulec
Built in physical and logical replication in postgresql-Firat GulecBuilt in physical and logical replication in postgresql-Firat Gulec
Built in physical and logical replication in postgresql-Firat Gulec
 
Replication
ReplicationReplication
Replication
 
CephFS Update
CephFS UpdateCephFS Update
CephFS Update
 
High availability for puppet - 2016
High availability for puppet - 2016High availability for puppet - 2016
High availability for puppet - 2016
 
Chef Patterns at Bloomberg Scale
Chef Patterns at Bloomberg ScaleChef Patterns at Bloomberg Scale
Chef Patterns at Bloomberg Scale
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets  Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets
 
PuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentPuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster Environment
 
Accelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishAccelerate your web app with a layer of Varnish
Accelerate your web app with a layer of Varnish
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...
 
SREConEurope15 - The evolution of the DHCP infrastructure at Facebook
SREConEurope15 - The evolution of the DHCP infrastructure at FacebookSREConEurope15 - The evolution of the DHCP infrastructure at Facebook
SREConEurope15 - The evolution of the DHCP infrastructure at Facebook
 
HBase replication
HBase replicationHBase replication
HBase replication
 
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISC
 
LAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsLAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site Implementations
 
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
Webinar Slides : Migrating to MySQL, MariaDB Galera and/or Percona XtraDB Clu...
 
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and Keepalived
 

Similar to Perforce Administration: Optimization, Scalability, Availability and Reliability

[India Merge World Tour] Meru Networks
[India Merge World Tour] Meru Networks[India Merge World Tour] Meru Networks
[India Merge World Tour] Meru NetworksPerforce
 
Evolution Of MongoDB Replicaset
Evolution Of MongoDB ReplicasetEvolution Of MongoDB Replicaset
Evolution Of MongoDB ReplicasetM Malai
 
Transferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersTransferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersPerforce
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsLetsConnect
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesMydbops
 
Multi-Site Perforce at NetApp
Multi-Site Perforce at NetAppMulti-Site Perforce at NetApp
Multi-Site Perforce at NetAppPerforce
 
[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure[MathWorks] Versioning Infrastructure
[MathWorks] Versioning InfrastructurePerforce
 
OpenPOWER Application Optimization
OpenPOWER Application Optimization OpenPOWER Application Optimization
OpenPOWER Application Optimization Ganesan Narayanasamy
 
[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding
[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding
[Perforce] Replication - Read Only Installs to Fully Filtered ForwardingPerforce
 
Still All on One Server: Perforce at Scale
Still All on One Server: Perforce at Scale Still All on One Server: Perforce at Scale
Still All on One Server: Perforce at Scale Perforce
 
[Perforce] Admin Workshop
[Perforce] Admin Workshop[Perforce] Admin Workshop
[Perforce] Admin WorkshopPerforce
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsMydbops
 
Replication and replica sets
Replication and replica setsReplication and replica sets
Replication and replica setsChris Westin
 
SCU 2015 - Hyper-V Replica
SCU 2015 - Hyper-V ReplicaSCU 2015 - Hyper-V Replica
SCU 2015 - Hyper-V ReplicaMike Resseler
 
Accelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexAccelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexPerforce
 
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Community
 
White Paper: Perforce Administration Optimization, Scalability, Availability ...
White Paper: Perforce Administration Optimization, Scalability, Availability ...White Paper: Perforce Administration Optimization, Scalability, Availability ...
White Paper: Perforce Administration Optimization, Scalability, Availability ...Perforce
 
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive PresentationNabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive PresentationNabil Nawaz
 
MySQL Replication Basics
MySQL Replication BasicsMySQL Replication Basics
MySQL Replication BasicsAbdul Manaf
 

Similar to Perforce Administration: Optimization, Scalability, Availability and Reliability (20)

[India Merge World Tour] Meru Networks
[India Merge World Tour] Meru Networks[India Merge World Tour] Meru Networks
[India Merge World Tour] Meru Networks
 
Evolution Of MongoDB Replicaset
Evolution Of MongoDB ReplicasetEvolution Of MongoDB Replicaset
Evolution Of MongoDB Replicaset
 
Transferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersTransferring Changes Between Perforce Servers
Transferring Changes Between Perforce Servers
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM Connections
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best Practices
 
Multi-Site Perforce at NetApp
Multi-Site Perforce at NetAppMulti-Site Perforce at NetApp
Multi-Site Perforce at NetApp
 
Drop the Pressure on your Production Server
Drop the Pressure on your Production ServerDrop the Pressure on your Production Server
Drop the Pressure on your Production Server
 
[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure
 
OpenPOWER Application Optimization
OpenPOWER Application Optimization OpenPOWER Application Optimization
OpenPOWER Application Optimization
 
[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding
[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding
[Perforce] Replication - Read Only Installs to Fully Filtered Forwarding
 
Still All on One Server: Perforce at Scale
Still All on One Server: Perforce at Scale Still All on One Server: Perforce at Scale
Still All on One Server: Perforce at Scale
 
[Perforce] Admin Workshop
[Perforce] Admin Workshop[Perforce] Admin Workshop
[Perforce] Admin Workshop
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
 
Replication and replica sets
Replication and replica setsReplication and replica sets
Replication and replica sets
 
SCU 2015 - Hyper-V Replica
SCU 2015 - Hyper-V ReplicaSCU 2015 - Hyper-V Replica
SCU 2015 - Hyper-V Replica
 
Accelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexAccelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flex
 
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking Tool
 
White Paper: Perforce Administration Optimization, Scalability, Availability ...
White Paper: Perforce Administration Optimization, Scalability, Availability ...White Paper: Perforce Administration Optimization, Scalability, Availability ...
White Paper: Perforce Administration Optimization, Scalability, Availability ...
 
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive PresentationNabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
 
MySQL Replication Basics
MySQL Replication BasicsMySQL Replication Basics
MySQL Replication Basics
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Perforce Administration: Optimization, Scalability, Availability and Reliability

  • 1. Perforce Administration: Optimization, Scalability, Availability, and Reliability Michael Mirman Perforce Administrator MathWorks, Inc. 2011
  • 3. ARCHITECTURE OVERVIEW •  Approximately 500 users •  Several million archive files •  Using almost all possible triggers, several daemons •  Mirroring our own bug database into Perforce •  Interfaces: P4, P4V, P4Perl, P4Java, Emacs, P4Eclipse, P4DB, P4EXP •  P4 Broker, P4 Proxies •  Multiple replicas
  • 4. P4 PROXIES AND P4 BROKER
  • 5. AVAILABILITY •  Proxies use anycast technology •  Special routing technology allows all users to have the default port (perforce:1666) regardless of their physical location •  Redirects users to the physically nearest proxy server •  Provides automatic fail-over if one proxy goes down •  P4broker is a High Availability VM and can be restarted anytime with minimal downtime •  Replicas allow read-only access if master is offline
  • 7. REPLICATION (2009.2 SOLUTION) P4 replicate command replicates only meta-data. •  Replicate archive synchronously p4 -p MASTER replicate -s STATEFILE -J JNLPREFIX SOMEDIR/p4admin_replicate -port 1666 -srchost MASTERHOST -srctop DATADIR •  Read journal records, pass them to p4d to replay them, and when necessary start copying archive: rsync -av --delete “$srchost:$srctop/$dir/” “$dir/” •  Script available in the public depot: //guest/michael_mirman/conference2011/p4admin_replicate
  • 8. REPLICATION (2010.2 SOLUTION) P4 pull command is available in 2010.2. •  Can replicate metadata and/or archive •  Configurables are a good way to set pull commands -> p4 configure show Replica Replica: startup.1 = pull -i 2 -J /perforce/1666/journal Replica: startup.2 = pull -i 1 -u Replica: startup.3 = pull -i 1 -u wait for 2011.1 Replica: startup.4 = pull -i 1 -u wait for 2011.1
  • 9. P4 PULL VS P4ADMIN_REPLICATE •  p4 pull is more efficient than p4admin_replicate •  times when metadata are matching the archive are determined differently •  recursive rsync takes a long time for top directories •  p4admin_replicate has extra features •  p4 replicate can filter records •  p4admin_replicate can have multiple destinations •  p4admin_replicate can be used to update archive without updating metadata •  detailed logging – easier introspection Use p4 replicate if you need to filter journal records
  • 11. P4 BROKER •  Continuous builds and other read-only applications may be happy with a replica •  Continuous builds may be happy with a metadata replica to determine the time to start building •  TeamCity submits several queries for each build •  Some of our builds use “p4 fixes -i” and “p4 changes” •  Our usage of p4broker: •  Redirect queries from Build systems •  Support P4DB (web read-only interface) •  Provide a nice message if the master is under maintenance and only read-only access is provided
  • 12. STALE REPLICAS What if my replica goes stale? •  Monitor the age of your replica. Cron example: * * * * * for n in 1 2 3 4 5 6; do export DT=`date`; echo "$n. $DT"; p4 -p perforce:1666 counter keepinsync "$DT"; sleep 10; done Look at the replica age: -> p4 -p perforce:1666 counter keepinsync! Mon Mar 28 16:06:12 EDT 2011! -> p4 -p replica1:1666 counter keepinsync! Mon Mar 28 16:06:02 EDT 2011 •  If the replica age goes over a threshold, regenerate the broker config file and alarm the administrator
  • 13. SERVER UNDER MAINTENANCE Additional benefits of p4broker •  If the master server is unavailable, the broker config is regenerated to provide the appropriate message for non- read-only commands •  If no servers are available, the broker config is regenerated to provide a different message (“No servers are available”) instead of not user-friendly “Connection refused”
  • 14. OUR EXPERIENCE WITH LOAD BALANCE What we find useful: •  Monitor the load and collect data even if we don’t need these data right now •  Use replicas to distribute the load •  Maintain the broker config file according to server availability and replica age •  Broker provides transparency and increases the availability of the server
  • 16. CHECKPOINTING Checkpointing causes users to wait •  It’s always too long •  Different ways of creating checkpoints offline •  our old way (using NetApp snapshots): //guest/michael_mirman/snap_checkpoint/snap_checkpoint •  our new way: using metadata replica
  • 17. USING METADATA REPLICA Metadata replica practically does not lag behind the master. •  Settings: -> p4 configure show Replica2 Replica2: monitor = 1 Replica2: server = 1 Replica2: startup.1 = pull -i 4 -J /export/journal/perforce/1666/journal •  Command: p4d –r ROOTDIR –z –jc CKPDIR/perforce.1666 •  Nightly db validation p4d –r ROOTDIR –xv p4d –r ROOTDIR –xx
  • 19. DISASTER RECOVERY PLAN •  Checkpoints and journals are copied to the backup filer immediately after their creation •  Archive is maintained continuously by p4admin_replicate •  Two test servers are used to verify the restore process •  DB is restored from the latest checkpoint + all following journals •  The earliest journal is determined by the time stamp from the first @ex@ record from the checkpoint
  • 20. DISASTER RECOVERY PLAN (continued) •  Test restore process includes p4d –xv p4d –xx p4 verify –qz //… •  Repository is split up and verified in N processes in parallel (example in the public depot: //guest/ michael_mirman/conference2011/pverify)
  • 21. FAIL-OVER PLAN •  No automatic fail-over (conscious decision: assess the situation) •  Use it after rebuilding database on a replica •  Fail-over is accomplished by changing the broker config file •  block write access •  wait for the replication to get the standby to be in sync with the master •  allow write access to the new master
  • 22. MAJOR UPGRADE •  Place all binaries in the right locations and update licenses if necessary •  Reconfigure p4broker to block write access and redirect all read-only requests to a replica •  Wait until the replica is in sync with the master •  Stop the master and all replication processes •  Upgrade the master (p4d -xu) and restart it •  Reconfigure p4broker not to use any replica •  Upgrade and restart every replica •  Restart replication processes •  Reconfigure p4broker to use replicas as usual •  Restarting p4broker and proxies cause short service interruptions, but we don’t always have to do this
  • 24. WHAT WORKED WELL FOR US To increase availability: •  Anycast with multiple proxies – no need to reconfigure clients when infrastructure changes •  High-Availability VM for p4broker •  Maintaining a warm standby replica. To improve load balancing: •  Moving some maintenance procedures to replica servers (our VMs are adequate); •  Creating checkpoints on a replica server and testing them regularly; •  Using p4broker to redirect some load to a replica server.
  • 25. WHAT ELSE WORKED WELL Having test servers with identical or very similar architecture. Replicating data synchronously on replicas and continuously on archive. “Set it and forget it” - Administration is easy when you have automated most functions.
  • 26. THANK YOU! ANY QUESTIONS?