dlmarion opened a new pull request, #5383: URL: https://github.com/apache/accumulo/pull/5383
Modified ZooZap to add a '-prepare-for-upgrade' option which validates that the Manager lock is not held, looks for any existing FATE transactions, creates a new node in ZooKeeper that signals the instance is preparing for an upgrade, then removes all server locks. ZooZap is currently a command that can be run via the CLI and it is run from 'accumulo-cluster'. This provides several user entry points to running this command: via a new accumulo-cluster stop-for-upgrade option, a new admin command, or directly via the existing KeywordExecutable mechanism. The ZooZap prepare-for-upgrade command is intended to be used when shutting down an older version of Accumulo to prepare for the instance to be upgraded. As such, the ZooZap changes in this commit could be backported to the 2.1 branch. The AbstractServer constructor was modified such that if the new ZooKeeper upgrade preparation node exists, then the server process will fail. A message is logged instructing the user on how to undo the prepare-for-upgrade state to allow the older version of Accumulo to be used. A new PreUpgradeCheck utility is included that is intended to be run using the newer version of the Accumulo software before any of the processes are started. If the new ZooKeeper upgrade preparation node does not exist, then it verifies that no FATE transactions exist in ZooKeeper and then it deletes all server locks under known ZooKeeper paths. It can then perform any ZooKeeper modifications that are necessary before starting the newer version of Accumulo software. Finally, it creates the UpgradeProgress node in ZooKeeper and deletes the upgrade preparation node. This utility could be run on it's own or as a step in a higher level admin command. Finally, this commit changes the UpgradeCoordinator to expect the UpgradeProgress zookeeper node created by the PreUpgradeCheck utility to exist before progressing with the normal Accumulo software upgrade process that runs in the Manager -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
