You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Hossein Ghiyasi Mehr <gh...@gmail.com> on 2020/03/03 17:55:54 UTC

Re: [EXTERNAL] Cassandra 3.11.X upgrades

It's more safe to upgrade one node before upgrading another node to avoid
down time.
After upgrading binary and package, run upgradesstables on candidate node
then do it on all cluster nodes one by one.
*-------------------------------------------------------*
*VafaTech <http://www.vafatech.com> : A Total Solution for Data Gathering &
Analysis*
*-------------------------------------------------------*


On Thu, Feb 13, 2020 at 9:27 PM Sergio <la...@gmail.com> wrote:

>
>    - Verify that nodetool upgradesstables has completed successfully on
>    all nodes from any previous upgrade
>    - Turn off repairs and any other streaming operations (add/remove
>    nodes)
>    - Nodetool drain on the node that needs to be stopped (seeds first,
>    preferably)
>    - Stop an un-upgraded node (seeds first, preferably)
>    - Install new binaries and configs on the down node
>    - Restart that node and make sure it comes up clean (it will function
>    normally in the cluster – even with mixed versions)
>    - nodetool statusbinary to verify if it is up and running
>    - Repeat for all nodes
>    - Once the binary upgrade has been performed in all the nodes: Run
>    upgradesstables on each node (as many at a time as your load will allow).
>    Minor upgrades usually don’t require this step (only if the sstable format
>    has changed), but it is good to check.
>    - NOTE: in most cases applications can keep running and will not
>    notice much impact – unless the cluster is overloaded and a single node
>    down causes impact.
>
>
>
>    I added 2 points to the list to clarify.
>
>    Should we add this in a FAQ in the cassandra doc or in the awesome
>    cassandra https://cassandra.link/awesome/
>
>    Thanks,
>
>    Sergio
>
>
> Il giorno mer 12 feb 2020 alle ore 10:58 Durity, Sean R <
> SEAN_R_DURITY@homedepot.com> ha scritto:
>
>> Check the readme.txt for any upgrade notes, but the basic procedure is to:
>>
>>    - Verify that nodetool upgradesstables has completed successfully on
>>    all nodes from any previous upgrade
>>    - Turn off repairs and any other streaming operations (add/remove
>>    nodes)
>>    - Stop an un-upgraded node (seeds first, preferably)
>>    - Install new binaries and configs on the down node
>>    - Restart that node and make sure it comes up clean (it will function
>>    normally in the cluster – even with mixed versions)
>>    - Repeat for all nodes
>>    - Run upgradesstables on each node (as many at a time as your load
>>    will allow). Minor upgrades usually don’t require this step (only if the
>>    sstable format has changed), but it is good to check.
>>    - NOTE: in most cases applications can keep running and will not
>>    notice much impact – unless the cluster is overloaded and a single node
>>    down causes impact.
>>
>>
>>
>>
>>
>>
>>
>> Sean Durity – Staff Systems Engineer, Cassandra
>>
>>
>>
>> *From:* Sergio <la...@gmail.com>
>> *Sent:* Wednesday, February 12, 2020 11:36 AM
>> *To:* user@cassandra.apache.org
>> *Subject:* [EXTERNAL] Cassandra 3.11.X upgrades
>>
>>
>>
>> Hi guys!
>>
>> How do you usually upgrade your cluster for minor version upgrades?
>>
>> I tried to add a node with 3.11.5 version to a test cluster with 3.11.4
>> nodes.
>>
>> Is there any restriction?
>>
>> Best,
>>
>> Sergio
>>
>> ------------------------------
>>
>> The information in this Internet Email is confidential and may be legally
>> privileged. It is intended solely for the addressee. Access to this Email
>> by anyone else is unauthorized. If you are not the intended recipient, any
>> disclosure, copying, distribution or any action taken or omitted to be
>> taken in reliance on it, is prohibited and may be unlawful. When addressed
>> to our clients any opinions or advice contained in this Email are subject
>> to the terms and conditions expressed in any applicable governing The Home
>> Depot terms of business or client engagement letter. The Home Depot
>> disclaims all responsibility and liability for the accuracy and content of
>> this attachment and for any damages or losses arising from any
>> inaccuracies, errors, viruses, e.g., worms, trojan horses, etc., or other
>> items of a destructive nature, which may be contained in this attachment
>> and shall not be liable for direct, indirect, consequential or special
>> damages in connection with this e-mail message or its attachment.
>>
>

Re: [EXTERNAL] Cassandra 3.11.X upgrades

Posted by Hossein Ghiyasi Mehr <gh...@gmail.com>.
There isn't any Rollback in real time systems.
It's better to test upgrade sstables and binary on one node. Then

   - if it was OK, upgrade binary on all nodes then run upgrade sstables
   one server at a time.

OR

   - If it was OK, upgrade servers (binary+sstables) one by one.

*-------------------------------------------------------*
*VafaTech <http://www.vafatech.com> : A Total Solution for Data Gathering &
Analysis*
*-------------------------------------------------------*


On Wed, Mar 4, 2020 at 7:38 AM manish khandelwal <
manishkhandelwal03@gmail.com> wrote:

> Should upgradesstables not be run after every node is upgraded? If we need
> to rollback then  we will not be able to downgrade sstables to older
> version.
>
> Regards
> Manish
>
> On Tue, Mar 3, 2020 at 11:26 PM Hossein Ghiyasi Mehr <
> ghiyasimehr@gmail.com> wrote:
>
>> It's more safe to upgrade one node before upgrading another node to avoid
>> down time.
>> After upgrading binary and package, run upgradesstables on candidate node
>> then do it on all cluster nodes one by one.
>> *-------------------------------------------------------*
>> *VafaTech <http://www.vafatech.com> : A Total Solution for Data Gathering
>> & Analysis*
>> *-------------------------------------------------------*
>>
>>
>> On Thu, Feb 13, 2020 at 9:27 PM Sergio <la...@gmail.com> wrote:
>>
>>>
>>>    - Verify that nodetool upgradesstables has completed successfully on
>>>    all nodes from any previous upgrade
>>>    - Turn off repairs and any other streaming operations (add/remove
>>>    nodes)
>>>    - Nodetool drain on the node that needs to be stopped (seeds first,
>>>    preferably)
>>>    - Stop an un-upgraded node (seeds first, preferably)
>>>    - Install new binaries and configs on the down node
>>>    - Restart that node and make sure it comes up clean (it will
>>>    function normally in the cluster – even with mixed versions)
>>>    - nodetool statusbinary to verify if it is up and running
>>>    - Repeat for all nodes
>>>    - Once the binary upgrade has been performed in all the nodes: Run
>>>    upgradesstables on each node (as many at a time as your load will allow).
>>>    Minor upgrades usually don’t require this step (only if the sstable format
>>>    has changed), but it is good to check.
>>>    - NOTE: in most cases applications can keep running and will not
>>>    notice much impact – unless the cluster is overloaded and a single node
>>>    down causes impact.
>>>
>>>
>>>
>>>    I added 2 points to the list to clarify.
>>>
>>>    Should we add this in a FAQ in the cassandra doc or in the awesome
>>>    cassandra https://cassandra.link/awesome/
>>>
>>>    Thanks,
>>>
>>>    Sergio
>>>
>>>
>>> Il giorno mer 12 feb 2020 alle ore 10:58 Durity, Sean R <
>>> SEAN_R_DURITY@homedepot.com> ha scritto:
>>>
>>>> Check the readme.txt for any upgrade notes, but the basic procedure is
>>>> to:
>>>>
>>>>    - Verify that nodetool upgradesstables has completed successfully
>>>>    on all nodes from any previous upgrade
>>>>    - Turn off repairs and any other streaming operations (add/remove
>>>>    nodes)
>>>>    - Stop an un-upgraded node (seeds first, preferably)
>>>>    - Install new binaries and configs on the down node
>>>>    - Restart that node and make sure it comes up clean (it will
>>>>    function normally in the cluster – even with mixed versions)
>>>>    - Repeat for all nodes
>>>>    - Run upgradesstables on each node (as many at a time as your load
>>>>    will allow). Minor upgrades usually don’t require this step (only if the
>>>>    sstable format has changed), but it is good to check.
>>>>    - NOTE: in most cases applications can keep running and will not
>>>>    notice much impact – unless the cluster is overloaded and a single node
>>>>    down causes impact.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Sean Durity – Staff Systems Engineer, Cassandra
>>>>
>>>>
>>>>
>>>> *From:* Sergio <la...@gmail.com>
>>>> *Sent:* Wednesday, February 12, 2020 11:36 AM
>>>> *To:* user@cassandra.apache.org
>>>> *Subject:* [EXTERNAL] Cassandra 3.11.X upgrades
>>>>
>>>>
>>>>
>>>> Hi guys!
>>>>
>>>> How do you usually upgrade your cluster for minor version upgrades?
>>>>
>>>> I tried to add a node with 3.11.5 version to a test cluster with 3.11.4
>>>> nodes.
>>>>
>>>> Is there any restriction?
>>>>
>>>> Best,
>>>>
>>>> Sergio
>>>>
>>>> ------------------------------
>>>>
>>>> The information in this Internet Email is confidential and may be
>>>> legally privileged. It is intended solely for the addressee. Access to this
>>>> Email by anyone else is unauthorized. If you are not the intended
>>>> recipient, any disclosure, copying, distribution or any action taken or
>>>> omitted to be taken in reliance on it, is prohibited and may be unlawful.
>>>> When addressed to our clients any opinions or advice contained in this
>>>> Email are subject to the terms and conditions expressed in any applicable
>>>> governing The Home Depot terms of business or client engagement letter. The
>>>> Home Depot disclaims all responsibility and liability for the accuracy and
>>>> content of this attachment and for any damages or losses arising from any
>>>> inaccuracies, errors, viruses, e.g., worms, trojan horses, etc., or other
>>>> items of a destructive nature, which may be contained in this attachment
>>>> and shall not be liable for direct, indirect, consequential or special
>>>> damages in connection with this e-mail message or its attachment.
>>>>
>>>

Re: [EXTERNAL] Cassandra 3.11.X upgrades

Posted by Anthony Grasso <an...@gmail.com>.
Manish is correct.

Upgrade the Cassandra version of a single node only. If that node is
behaving as expected (i.e. is in an Up/Normal state and no errors in the
logs), then upgrade the Cassandra version for each node one at a time. Be
sure to check that each node is running as expected. Once the Cassandra
version is upgraded on all nodes in the cluster and all nodes are in a
healthy state, then you upgrade the SSTables.

As Manish has pointed out, you want to be able to rollback the Cassandra
version easily if something goes wrong with the software upgrade.

If you have the disk space, I recommend taking a snapshot of the SSTables
on all nodes first before upgrading the Cassandra software version. The
snapshots are a safe guard incase there is a major problem after upgrading
SSTables.

Regards,


On Wed, 4 Mar 2020 at 15:08, manish khandelwal <ma...@gmail.com>
wrote:

> Should upgradesstables not be run after every node is upgraded? If we need
> to rollback then  we will not be able to downgrade sstables to older
> version.
>
> Regards
> Manish
>
> On Tue, Mar 3, 2020 at 11:26 PM Hossein Ghiyasi Mehr <
> ghiyasimehr@gmail.com> wrote:
>
>> It's more safe to upgrade one node before upgrading another node to avoid
>> down time.
>> After upgrading binary and package, run upgradesstables on candidate node
>> then do it on all cluster nodes one by one.
>> *-------------------------------------------------------*
>> *VafaTech <http://www.vafatech.com> : A Total Solution for Data Gathering
>> & Analysis*
>> *-------------------------------------------------------*
>>
>>
>> On Thu, Feb 13, 2020 at 9:27 PM Sergio <la...@gmail.com> wrote:
>>
>>>
>>>    - Verify that nodetool upgradesstables has completed successfully on
>>>    all nodes from any previous upgrade
>>>    - Turn off repairs and any other streaming operations (add/remove
>>>    nodes)
>>>    - Nodetool drain on the node that needs to be stopped (seeds first,
>>>    preferably)
>>>    - Stop an un-upgraded node (seeds first, preferably)
>>>    - Install new binaries and configs on the down node
>>>    - Restart that node and make sure it comes up clean (it will
>>>    function normally in the cluster – even with mixed versions)
>>>    - nodetool statusbinary to verify if it is up and running
>>>    - Repeat for all nodes
>>>    - Once the binary upgrade has been performed in all the nodes: Run
>>>    upgradesstables on each node (as many at a time as your load will allow).
>>>    Minor upgrades usually don’t require this step (only if the sstable format
>>>    has changed), but it is good to check.
>>>    - NOTE: in most cases applications can keep running and will not
>>>    notice much impact – unless the cluster is overloaded and a single node
>>>    down causes impact.
>>>
>>>
>>>
>>>    I added 2 points to the list to clarify.
>>>
>>>    Should we add this in a FAQ in the cassandra doc or in the awesome
>>>    cassandra https://cassandra.link/awesome/
>>>
>>>    Thanks,
>>>
>>>    Sergio
>>>
>>>
>>> Il giorno mer 12 feb 2020 alle ore 10:58 Durity, Sean R <
>>> SEAN_R_DURITY@homedepot.com> ha scritto:
>>>
>>>> Check the readme.txt for any upgrade notes, but the basic procedure is
>>>> to:
>>>>
>>>>    - Verify that nodetool upgradesstables has completed successfully
>>>>    on all nodes from any previous upgrade
>>>>    - Turn off repairs and any other streaming operations (add/remove
>>>>    nodes)
>>>>    - Stop an un-upgraded node (seeds first, preferably)
>>>>    - Install new binaries and configs on the down node
>>>>    - Restart that node and make sure it comes up clean (it will
>>>>    function normally in the cluster – even with mixed versions)
>>>>    - Repeat for all nodes
>>>>    - Run upgradesstables on each node (as many at a time as your load
>>>>    will allow). Minor upgrades usually don’t require this step (only if the
>>>>    sstable format has changed), but it is good to check.
>>>>    - NOTE: in most cases applications can keep running and will not
>>>>    notice much impact – unless the cluster is overloaded and a single node
>>>>    down causes impact.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Sean Durity – Staff Systems Engineer, Cassandra
>>>>
>>>>
>>>>
>>>> *From:* Sergio <la...@gmail.com>
>>>> *Sent:* Wednesday, February 12, 2020 11:36 AM
>>>> *To:* user@cassandra.apache.org
>>>> *Subject:* [EXTERNAL] Cassandra 3.11.X upgrades
>>>>
>>>>
>>>>
>>>> Hi guys!
>>>>
>>>> How do you usually upgrade your cluster for minor version upgrades?
>>>>
>>>> I tried to add a node with 3.11.5 version to a test cluster with 3.11.4
>>>> nodes.
>>>>
>>>> Is there any restriction?
>>>>
>>>> Best,
>>>>
>>>> Sergio
>>>>
>>>> ------------------------------
>>>>
>>>> The information in this Internet Email is confidential and may be
>>>> legally privileged. It is intended solely for the addressee. Access to this
>>>> Email by anyone else is unauthorized. If you are not the intended
>>>> recipient, any disclosure, copying, distribution or any action taken or
>>>> omitted to be taken in reliance on it, is prohibited and may be unlawful.
>>>> When addressed to our clients any opinions or advice contained in this
>>>> Email are subject to the terms and conditions expressed in any applicable
>>>> governing The Home Depot terms of business or client engagement letter. The
>>>> Home Depot disclaims all responsibility and liability for the accuracy and
>>>> content of this attachment and for any damages or losses arising from any
>>>> inaccuracies, errors, viruses, e.g., worms, trojan horses, etc., or other
>>>> items of a destructive nature, which may be contained in this attachment
>>>> and shall not be liable for direct, indirect, consequential or special
>>>> damages in connection with this e-mail message or its attachment.
>>>>
>>>

RE: [EXTERNAL] Cassandra 3.11.X upgrades

Posted by "Durity, Sean R" <SE...@homedepot.com>.
I agree – a back out becomes practically very challenging after the second node is upgraded, because the new data is written in the new disk format. To satisfy the “you must have a backout” rules, I just say that after node 1, I could stop that node, wipe the data, downgrade the binaries, and replace that node back to the original version (and yes, there could still be consistency problems with that). There is no going back after node 2. And I have never needed to try and go back, either. Test well in NP, and be ready to tackle any PR problems to keep going forward.

Sean Durity

From: Erick Ramirez <er...@datastax.com>
Sent: Tuesday, March 3, 2020 11:35 PM
To: user@cassandra.apache.org
Subject: Re: [EXTERNAL] Cassandra 3.11.X upgrades

Should upgradesstables not be run after every node is upgraded? If we need to rollback then  we will not be able to downgrade sstables to older version

You can choose to (a) upgrade the SSTables one node at a time as you complete the binary upgrade, or (b) upgrade the binaries on all nodes then perform the SSTables upgrade in one hit. The choice is up to you but beware of the following caveats:
- there's a performance hit when C* reads "n - 1" versions of SSTables so the sooner you do it the better
- upgrading SSTables one node at a time is preferable due to the considerable performance hit or schedule it during low traffic periods

The idea of a rollback isn't what you're accustomed to. There is no concept of "downgrade" in Cassandra. If you decide to rollback or backout of an upgrade implementation, it means that you have to restore your cluster from backups so be aware of that too. This is because once you've performed an upgrade, things like schema and system tables are generally no longer backward-compatible. Also, new incoming mutations are written in the new format which again is not backward-compatible. To cut to the chase -- the decision to upgrade the SSTables has zero bearing on rollback. Cheers!


________________________________

The information in this Internet Email is confidential and may be legally privileged. It is intended solely for the addressee. Access to this Email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. When addressed to our clients any opinions or advice contained in this Email are subject to the terms and conditions expressed in any applicable governing The Home Depot terms of business or client engagement letter. The Home Depot disclaims all responsibility and liability for the accuracy and content of this attachment and for any damages or losses arising from any inaccuracies, errors, viruses, e.g., worms, trojan horses, etc., or other items of a destructive nature, which may be contained in this attachment and shall not be liable for direct, indirect, consequential or special damages in connection with this e-mail message or its attachment.

Re: [EXTERNAL] Cassandra 3.11.X upgrades

Posted by Erick Ramirez <er...@datastax.com>.
>
> Should upgradesstables not be run after every node is upgraded? If we need
> to rollback then  we will not be able to downgrade sstables to older version
>

You can choose to (a) upgrade the SSTables one node at a time as you
complete the binary upgrade, or (b) upgrade the binaries on all nodes then
perform the SSTables upgrade in one hit. The choice is up to you but beware
of the following caveats:
- there's a performance hit when C* reads "n - 1" versions of SSTables so
the sooner you do it the better
- upgrading SSTables one node at a time is preferable due to the
considerable performance hit or schedule it during low traffic periods

The idea of a rollback isn't what you're accustomed to. There is no concept
of "downgrade" in Cassandra. If you decide to rollback or backout of an
upgrade implementation, it means that you have to restore your cluster from
backups so be aware of that too. This is because once you've performed an
upgrade, things like schema and system tables are generally no longer
backward-compatible. Also, new incoming mutations are written in the new
format which again is not backward-compatible. To cut to the chase -- the
decision to upgrade the SSTables has zero bearing on rollback. Cheers!

Re: [EXTERNAL] Cassandra 3.11.X upgrades

Posted by manish khandelwal <ma...@gmail.com>.
Should upgradesstables not be run after every node is upgraded? If we need
to rollback then  we will not be able to downgrade sstables to older
version.

Regards
Manish

On Tue, Mar 3, 2020 at 11:26 PM Hossein Ghiyasi Mehr <gh...@gmail.com>
wrote:

> It's more safe to upgrade one node before upgrading another node to avoid
> down time.
> After upgrading binary and package, run upgradesstables on candidate node
> then do it on all cluster nodes one by one.
> *-------------------------------------------------------*
> *VafaTech <http://www.vafatech.com> : A Total Solution for Data Gathering
> & Analysis*
> *-------------------------------------------------------*
>
>
> On Thu, Feb 13, 2020 at 9:27 PM Sergio <la...@gmail.com> wrote:
>
>>
>>    - Verify that nodetool upgradesstables has completed successfully on
>>    all nodes from any previous upgrade
>>    - Turn off repairs and any other streaming operations (add/remove
>>    nodes)
>>    - Nodetool drain on the node that needs to be stopped (seeds first,
>>    preferably)
>>    - Stop an un-upgraded node (seeds first, preferably)
>>    - Install new binaries and configs on the down node
>>    - Restart that node and make sure it comes up clean (it will function
>>    normally in the cluster – even with mixed versions)
>>    - nodetool statusbinary to verify if it is up and running
>>    - Repeat for all nodes
>>    - Once the binary upgrade has been performed in all the nodes: Run
>>    upgradesstables on each node (as many at a time as your load will allow).
>>    Minor upgrades usually don’t require this step (only if the sstable format
>>    has changed), but it is good to check.
>>    - NOTE: in most cases applications can keep running and will not
>>    notice much impact – unless the cluster is overloaded and a single node
>>    down causes impact.
>>
>>
>>
>>    I added 2 points to the list to clarify.
>>
>>    Should we add this in a FAQ in the cassandra doc or in the awesome
>>    cassandra https://cassandra.link/awesome/
>>
>>    Thanks,
>>
>>    Sergio
>>
>>
>> Il giorno mer 12 feb 2020 alle ore 10:58 Durity, Sean R <
>> SEAN_R_DURITY@homedepot.com> ha scritto:
>>
>>> Check the readme.txt for any upgrade notes, but the basic procedure is
>>> to:
>>>
>>>    - Verify that nodetool upgradesstables has completed successfully on
>>>    all nodes from any previous upgrade
>>>    - Turn off repairs and any other streaming operations (add/remove
>>>    nodes)
>>>    - Stop an un-upgraded node (seeds first, preferably)
>>>    - Install new binaries and configs on the down node
>>>    - Restart that node and make sure it comes up clean (it will
>>>    function normally in the cluster – even with mixed versions)
>>>    - Repeat for all nodes
>>>    - Run upgradesstables on each node (as many at a time as your load
>>>    will allow). Minor upgrades usually don’t require this step (only if the
>>>    sstable format has changed), but it is good to check.
>>>    - NOTE: in most cases applications can keep running and will not
>>>    notice much impact – unless the cluster is overloaded and a single node
>>>    down causes impact.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Sean Durity – Staff Systems Engineer, Cassandra
>>>
>>>
>>>
>>> *From:* Sergio <la...@gmail.com>
>>> *Sent:* Wednesday, February 12, 2020 11:36 AM
>>> *To:* user@cassandra.apache.org
>>> *Subject:* [EXTERNAL] Cassandra 3.11.X upgrades
>>>
>>>
>>>
>>> Hi guys!
>>>
>>> How do you usually upgrade your cluster for minor version upgrades?
>>>
>>> I tried to add a node with 3.11.5 version to a test cluster with 3.11.4
>>> nodes.
>>>
>>> Is there any restriction?
>>>
>>> Best,
>>>
>>> Sergio
>>>
>>> ------------------------------
>>>
>>> The information in this Internet Email is confidential and may be
>>> legally privileged. It is intended solely for the addressee. Access to this
>>> Email by anyone else is unauthorized. If you are not the intended
>>> recipient, any disclosure, copying, distribution or any action taken or
>>> omitted to be taken in reliance on it, is prohibited and may be unlawful.
>>> When addressed to our clients any opinions or advice contained in this
>>> Email are subject to the terms and conditions expressed in any applicable
>>> governing The Home Depot terms of business or client engagement letter. The
>>> Home Depot disclaims all responsibility and liability for the accuracy and
>>> content of this attachment and for any damages or losses arising from any
>>> inaccuracies, errors, viruses, e.g., worms, trojan horses, etc., or other
>>> items of a destructive nature, which may be contained in this attachment
>>> and shall not be liable for direct, indirect, consequential or special
>>> damages in connection with this e-mail message or its attachment.
>>>
>>