Skip to content

Commit a5907e2

Browse files
Updated upgrade documentation for new upgrade process. (#456)
Closes #455 Co-authored-by: Dom G. <domgarguilo@apache.org>
1 parent 3841788 commit a5907e2

2 files changed

Lines changed: 84 additions & 0 deletions

File tree

_docs-2/administration/upgrading.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,48 @@ category: administration
44
order: 7
55
---
66

7+
## Changes to the upgrade process
8+
9+
In upgrade notes for prior releases we have advised that users should ensure that no FATE
10+
transactions exist (see `Upgrading from 1.10 or 2.0 to 2.1` below). This is due to the
11+
fact that the internal serialization of FATE transactions is not guaranteed to be
12+
compatible between versions. Accumulo never provided any tooling around the upgrade process
13+
and left it up the user, which can cause problems if older versions of FATE transactions
14+
exist and the user already deployed the new version of software. The user would have to
15+
re-install the old version of software to remove the FATE transactions.
16+
17+
Starting with Accumulo 4.0 we are modifying the upgrade process steps in an attempt to
18+
make it easier for the user to validate their instance is ready for upgrade. In earlier
19+
versions the upgrade process would start when the user started the instance with the
20+
new version of software. The process ran entirely in the Manager and it was the users
21+
responsibility to read the upgrade notes to perform any necessary pre-upgrade steps.
22+
23+
The new upgrade process introduces a new `accumulo upgrade` command which will be used
24+
after shutting down the instance with the old version of software and before starting
25+
the instance with the new version of software. The `upgrade` command has two options,
26+
`--prepare` and `--start`. `--prepare` is designed to be executed by the user after shutting
27+
down the instance. This option will check that the Manager is down, validate that there
28+
are no existing FATE transactions, remove all of the server locks in ZooKeeper, and place
29+
a node in ZooKeeper that will prevent server processes from being started again. If there
30+
are FATE transactions, the command will fail giving the user the opportunity to clean them
31+
up. The `--prepare` option can then be run again.
32+
33+
The `--start` option is designed to be executed by the user before starting the instance
34+
with the newer version of software. The `--start` option will perform any necessary pre-upgrade
35+
validation, make any changes that are necessary for the new version of software to start, seed
36+
an upgrade progress tracker node in ZooKeeper, and then finally remove the node in ZooKeeper
37+
created by the `--prepare` step so that the server processes can be started. If the user did
38+
not run the `--prepare` step with the older version of software, then the `--start` option
39+
will fail unless the `--force` option is used. Running `--start` with the `--force` option
40+
will perform the same checks that `--prepare` executes, but if FATE transactions are found
41+
then the user will need to remove them using the older version of software. Once the `--start`
42+
option completes, then the user can start the server processes to complete the upgrade
43+
process. The user will want to check the contents of the Manager log to observe the progress
44+
of the upgrade.
45+
46+
The `accumulo upgrade --prepare` command will be included with the 2.1.4 and 3.1.0 releases
47+
to assist users in upgrading to the 4.0 release.
48+
749
## Upgrading from 1.10 or 2.0 to 2.1
850

951
Please read these directions in their entirety before beginning. Please [contact] us with any

_docs-4/administration/upgrading.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,48 @@ category: administration
44
order: 7
55
---
66

7+
## Changes to the upgrade process
8+
9+
In upgrade notes for prior releases we have advised that users should ensure that no FATE
10+
transactions exist (see `Upgrading from 1.10 or 2.0 to 2.1` below). This is due to the
11+
fact that the internal serialization of FATE transactions is not guaranteed to be
12+
compatible between versions. Accumulo never provided any tooling around the upgrade process
13+
and left it up the user, which can cause problems if older versions of FATE transactions
14+
exist and the user already deployed the new version of software. The user would have to
15+
re-install the old version of software to remove the FATE transactions.
16+
17+
Starting with Accumulo 4.0 we are modifying the upgrade process steps in an attempt to
18+
make it easier for the user to validate their instance is ready for upgrade. In earlier
19+
versions the upgrade process would start when the user started the instance with the
20+
new version of software. The process ran entirely in the Manager and it was the users
21+
responsibility to read the upgrade notes to perform any necessary pre-upgrade steps.
22+
23+
The new upgrade process introduces a new `accumulo upgrade` command which will be used
24+
after shutting down the instance with the old version of software and before starting
25+
the instance with the new version of software. The `upgrade` command has two options,
26+
`--prepare` and `--start`. `--prepare` is designed to be executed by the user after shutting
27+
down the instance. This option will check that the Manager is down, validate that there
28+
are no existing FATE transactions, remove all of the server locks in ZooKeeper, and place
29+
a node in ZooKeeper that will prevent server processes from being started again. If there
30+
are FATE transactions, the command will fail giving the user the opportunity to clean them
31+
up. The `--prepare` option can then be run again.
32+
33+
The `--start` option is designed to be executed by the user before starting the instance
34+
with the newer version of software. The `--start` option will perform any necessary pre-upgrade
35+
validation, make any changes that are necessary for the new version of software to start, seed
36+
an upgrade progress tracker node in ZooKeeper, and then finally remove the node in ZooKeeper
37+
created by the `--prepare` step so that the server processes can be started. If the user did
38+
not run the `--prepare` step with the older version of software, then the `--start` option
39+
will fail unless the `--force` option is used. Running `--start` with the `--force` option
40+
will perform the same checks that `--prepare` executes, but if FATE transactions are found
41+
then the user will need to remove them using the older version of software. Once the `--start`
42+
option completes, then the user can start the server processes to complete the upgrade
43+
process. The user will want to check the contents of the Manager log to observe the progress
44+
of the upgrade.
45+
46+
The `accumulo upgrade --prepare` command will be included with the 2.1.4 and 3.1.0 releases
47+
to assist users in upgrading to the 4.0 release.
48+
749
## Upgrading from 1.10 or 2.0 to 2.1
850

951
Please read these directions in their entirety before beginning. Please [contact] us with any

0 commit comments

Comments
 (0)