dlmarion opened a new pull request, #5357: URL: https://github.com/apache/accumulo/pull/5357
During an upgrade the UpgradeCoordinator will run Upgraders for each version between the current version of the stored data and the current version of the installed software. The UpgradeCoordinator runs all of the necessary Upgraders on ZooKeeper, then runs all of them on the root table, and then finally runs all of them on the metadata table. This means that when upgrading through multiple versions the version of the data stored in ZooKeeper could be multiple versions ahead of the root and metadata tables, until the Upgraders are run on those tables. When a failure occurs in the Upgrade the system is left in a partially upgraded state. The user needs to find and fix any issues before trying to start the system again. When the Manager starts the next time it will attempt to do the upgrade from the very beginning. An Upgrader implemention for one version needs to be coded to handle the upgrade process running again, so it needs to take into account the fact that the ZooKeeper data has already been modified and skip that step, for example. However, an Upgrader for one version can't account for the changes in a future version. This change creates a temporary object stored in ZooKeeper that is created when an upgrade starts and deleted when the upgrade finishes. It keeps track of the version of the ZooKeeper, root, and metadata as the Upgraders are run against those objects. The UpgradeCoordinator has been modified to use this object so that it does not re-run Upgraders on those objects when they have already run successfully. Closes #5347 -- 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: notifications-unsubscr...@accumulo.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org