all: minor update upgrade/downgrade instructions

This commit is contained in:
Thomas Schoebel-Theuer 2021-04-23 09:53:39 +02:00
parent 13a0b35f31
commit c9e39e6709

View File

@ -1,11 +1,3 @@
IMPORTANT: the historic distinction between MARS Light and the future
MARS Full has been dropped. Now all versions are simply called "mars".
Old tagnames light* will remain valid, but newer names will follow the
convention s/light/mars/g (this means that the old version number counting
will be continued, only the "light" is substituted).
Meaning of stable tagnames
--------------------------
@ -41,9 +33,9 @@ Release Conventions / Branches / Tagnames
This branch is operational for several years on
several thousands of servers, and several petabytes
of data.
- Unstable tagnames: light0.1abeta%d (obsolete)
- Stable branch: mars0.1a.y
- Stable tagnames: mars0.1astable%02d
- Historic tagnames: light0.1abeta%d (obsolete)
mars1.0 series (planned):
- Replace symlink tree by transactional status files
@ -65,8 +57,12 @@ Release Conventions / Branches / Tagnames
- Heavily tested. Has to obey an HA SLA of 99.98% end-to-end,
including network outages and HumanError(tm) at 1&1 Ionos
ShaHoLin. Thus the _component_ SLA of MARS must be much better.
- New features may be introduced, but are off by default.
- There is always an upgrade path. Simply install the new
version, obeying the below compatibility rules.
- Rolling upgrades (temporarily different MARS kernel module
versions at primary vs secondary side) are supported.
Typically, do "rmmod mars; modprobe mars" at the secondary
@ -77,7 +73,9 @@ Release Conventions / Branches / Tagnames
I am putting high effort into maintaining rolling upgrades
of kernel modules. The network protocols are designed to
support this.
- COMPATIBILITY RULES:
Ensure that $marsadm_version >= $module_version.
This is the safe side of your update strategy.
Update marsadm first, before updating the kernel module.
@ -102,26 +100,35 @@ Release Conventions / Branches / Tagnames
the gap is a small $epsilon. But I cannot guarantee in general.
If you want to violate the above rule, you must test the
combination yourself.
- Best practice in bigger installations: first test your upgrade
or downgrade at some test clusters first.
If you have a separate pre-live stage, it definitely is
your friend.
- As long as $marsadm_version + $epsilon >= $module_version
remains true (at least "approximately") and has been tested
in pre-live, marsadm may be upgraded and downgraded
independently from kernel, and during operations
(best via your favorite package manager).
Of course, no magic will happen: newer features are only
available when newer versions of both the userspace tool and
available when newer versions of _both_ the userspace tool and
the kernel modules are installed.
- Please check this ChangeLog for any upgrade / downgrade
incompatibility bugs. In case they are detected, they will
be fixed. But I cannot retrospectivly change already released
versions and their bugs. Fixes are only possible in newer
versions.
- Downgrade is possible *inside* of the same stable branch
series.
- Downgrade to _prior_ *stable* branches may be restricted,
series, at least over about 20 minor releases. I cannot test
all possible O(n^2) downgrade combinations. Thus be careful when
downgrading over high version distances (which should not be
done anyway unless you have some very well-thought reasons).
- Downgrade to _prior_ *stable* branches, or over very big differences
in minor version number, may be restricted,
or may require some extaordinary actions.
Please read this ChangeLog for details.
@ -132,6 +139,10 @@ Release Conventions / Branches / Tagnames
Only if you actually activate it, and if you really need to
downgrade beyond that old version, you have to obey the
downgrade instructions documented below.
However, don't rely on this. Somewhen after many releases, and after
its stability has been proven at 1&1 Inonos ShaHoLin over a long time,
the new feature may be auto-activated, so that downgrade should remain
possible, but may then require some manual actions.
-----------------------------------
Changelog for series 0.1a:
@ -2090,3 +2101,12 @@ Release Policy / Software Lifecycle
-----------------------------------
New source releases are simply announced by appearance of git tags.
--------------
HISTORIC FOOTNOTE: the historic distinction between MARS Light and the future
MARS Full has been dropped. All versions are simply called "mars".
Old tagnames light* will remain valid, but newer names will follow the
convention s/light/mars/g (this means that the old version number counting
will be continued, only the "light" is substituted).