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

Reply via email to