Version 2.29 and Neo4J upgrade

Release date: March 8, 2019

New CLI Features

  • [TAU-4558] - Merge between Percipient Lines
  • [TAU-4334] - New Conflict resolution sorting options

Changed Public API Behavior

  • [TAU-4757] - Public API: POST requests should ignore uc field
  • [TAU-4665] - Public API: New fqn-filter parameter

Neo4J Upgrade for Version 2.29

Percipient server 2.29 requires Neo4j 3.5.3.

For complex multi-server, multi-node, HA deployments of Percipient and Neo4j, please also consult official Neo4j upgrade guide.

Upgrade on Debian platform 

For systems that have older version of PiServer installed, please follow the steps below to upgrade to 2.29.

1. Stop PiServer and Neo4j server   

   service piserver stop   
   service neo4j stop

It's critical to properly shut down Neo4j and PiServer before DB upgrade. Make sure no error/warning messages from "service neo4j status" and "service piserver status"

2. Backup exiting Neo4j DB

   cp -a /var/lib/neo4j/data /var/lib/neo4j/data.backup 

3. Update Pi packages

   apt-get install mdx-piserver mdx-piserver-tools mdx-picli

4. Update Neo4j to 3.5.3

   /usr/share/mdx/products/piserver/bin/install-deps.sh

5. Re-configure Neo4j for PiServer

   /usr/share/mdx/products/piserver/bin/config-neo4j.sh install  

6. Enable Neo4j DB upgrade

   echo "dbms.allow_upgrade=true" >> /usr/share/mdx/neo4j/current/conf/neo4j.conf

7. Start Neo4j server and PiServer  

   service neo4j start && service piserver start  

8. After verifying the new DB is working properly, stop Neo4j and PiServer

   service neo4j stop   
   service piserver stop

It's critical to properly shut down Neo4j and PiServer after DB upgrade. Make sure no error/warning messages from "service neo4j status" and "service piserver status"  

9. Disable Neo4j upgrade option

   sed -i -e 's/^dbms.allow_upgrade=true.*/dbms.allow_upgrade=false/g' /usr/share/mdx/neo4j/current/conf/neo4j.conf

10. Restart Neo4j and PiServer and make sure they can restart properly  

If Neo4j/PiServer fails to restart, please contact Perforce support.

11. Remove the backup Neo4j DB if desired  

   rm -rf /var/lib/neo4j/data.backup

Upgrade on Centos/RHEL/SLES platforms

For systems that have older version of PiServer installed, please follow the steps below to upgrade to 2.29.

1. Stop PiServer and Neo4j server

   service piserver stop

   Note: it's critical to properly shut down Neo4j and PiServer before DB upgrade. Make sure no error/warning messages from "service piserver status"

2. Backup exiting Neo4j DB

   cp -a /var/lib/mdx-neo4j/data /var/lib/mdx-neo4j/data.backup

3. Update Pi packages

   yum update mdx-piserver-tools mdx-piserver mdx-picli

4. Update Neo4j to 3.5.3

   /usr/share/mdx/products/piserver/bin/install-rpm-deps.sh --nojava

5. Enable Neo4j DB upgrade

   /usr/share/mdx/products/piserver/bin/config-neo4j.sh upgrade

6. Start PiServer and Neo4j DB will be upgraded automatically

   service piserver start

7. Perform some Pi command and make sure the new PiServer is working properly, then stop Neo4j and PiServer

   service piserver stop

   Note: it's critical to properly shut down Neo4j and PiServer after DB upgrade. Make sure no error/warning messages from  "service piserver status"

8. Disable Neo4j upgrade option

   /usr/share/mdx/products/piserver/bin/config-neo4j.sh un-upgrade

9. Restart PiServer and make sure they can restart properly

   Note: If Neo4j/PiServer fails to restart, please contact Perforce support

10. Remove the backup Neo4j DB if desired

   rm -rf /var/lib/mdx-neo4j/data.backup

11. Neo4j upgrade is done. Start piserver.

   service piserver start

Enhancements

  • [TAU-4400] - Alias locking improvements / Server hook
  • [TAU-4602] - CLI API Internal pagination (performance enhancement)
  • [TAU-4025] - Upgrade to Neo4j 3.5.x (see notes below)
  • [TAU-4147] - Implement pi ip publish support for PiCache
  • [TAU-4432] - [CLI] Add hostname (FQN) to workspace location
  • [TAU-4616] - Abort Neo4j startup when DB schema version is in the future
  • [TAU-4634] - Optimization for custom property values (no migrations)
  • [TAU-4687] - Make settings validation less strict
  • [TAU-4763] - Sort order of matches in `MultipleWsResourceMatchError` output
  • [TAU-4320] - pi settings should report PiCache settings
  • [TAU-4455] - Custom DM - Add "modified": True|False entry to Update script payload
  • [TAU-4682] - Delete workspace object on failed pi ip load

Bugs

  • [TAU-3283] - release of IPVs@HEAD in refer mode
  • [TAU-4293] - Public API: Fix ip usage ignoring trees with middle layer having alias
  • [TAU-4559] - Pi CLI gives a traceback if there's a typo in the field name of the Reports section of 'piclient.conf'
  • [TAU-4579] - shouldn't be able to do a diff on a library
  • [TAU-4594] - pi does not wait for new refer IPVs to be visible on the filesystem
  • [TAU-4764] - ip load IP@0 with PiCache not supposed to load any files
  • [TAU-4267] - typo in piserver.properties
  • [TAU-4720] - Public API: Sending same dm_type_name was making a new release