You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Paul Chandler <pa...@redshots.com> on 2024/04/24 15:16:22 UTC

Mixed Cluster 4.0 and 4.1

Hi all,

We have some large clusters ( 1000+  nodes ), these are across multiple datacenters. 

When we perform upgrades we would normally upgrade a DC at a time during a planned outage for one DC. This means that a cluster might be in a mixed mode with multiple versions for a week or 2.

We have noticed that during our testing that upgrading to 4.1 causes a schema mismatch due to the new tables added into the system keyspace.

Is this going to be an issue if this schema mismatch lasts for maybe several weeks? I assume that running any DDL during that time would be a bad idea, is there any other issues to look out for?

Thanks

Paul Chandler

Re: Mixed Cluster 4.0 and 4.1

Posted by Bowen Song via user <us...@cassandra.apache.org>.
Hi Paul,

IMO, if they are truly risk-adverse, they should follow the tested and 
proven best practices, instead of doing things in a less tested way 
which is also know to pose a danger to the data correctness.

If they must do this over a long period of time, then they may need to 
temporarily increase the gc_grace_seconds on all tables, and ensure that 
no DDL or repair is run before the upgrade completes. It is unknown 
whether this route is safe, because it's a less tested route to upgrade 
a cluster.

Please be aware that if they do deletes frequently, increasing the 
gc_grace_seconds may cause some reads to fail due to the elevated number 
of tombstones.

Cheers,
Bowen

On 24/04/2024 17:25, Paul Chandler wrote:
> Hi Bowen,
>
> Thanks for your quick reply.
>
> Sorry I used the wrong term there, there it is a maintenance window rather than an outage. This is a key system and the vital nature of it means that the customer is rightly very risk adverse, so we will only even get permission to upgrade one DC per night via a rolling upgrade, meaning this will always be over more than a week.
>
> So we can’t shorten the time the cluster is in mixed mode, but I am concerned about having a schema mismatch for this long time. Should I be concerned, or have others upgraded in a similar way?
>
> Thanks
>
> Paul
>
>> On 24 Apr 2024, at 17:02, Bowen Song via user <us...@cassandra.apache.org> wrote:
>>
>> Hi Paul,
>>
>> You don't need to plan for or introduce an outage for a rolling upgrade, which is the preferred route. It isn't advisable to take down an entire DC to do upgrade.
>>
>> You should aim to complete upgrading the entire cluster and finish a full repair within the shortest gc_grace_seconds (default to 10 days) of all tables. Failing to do that may cause data resurrections.
>>
>> During the rolling upgrade, you should not run repair or any DDL query (such as ALTER TABLE, TRUNCATE, etc.).
>>
>> You don't need to do the rolling upgrade node by node. You can do it rack by rack. Stopping all nodes in a single rack and upgrade them concurrently is much faster. The number of nodes doesn't matter that much to the time required to complete a rolling upgrade, it's the number of DCs and racks matter.
>>
>> Cheers,
>> Bowen
>>
>> On 24/04/2024 16:16, Paul Chandler wrote:
>>> Hi all,
>>>
>>> We have some large clusters ( 1000+  nodes ), these are across multiple datacenters.
>>>
>>> When we perform upgrades we would normally upgrade a DC at a time during a planned outage for one DC. This means that a cluster might be in a mixed mode with multiple versions for a week or 2.
>>>
>>> We have noticed that during our testing that upgrading to 4.1 causes a schema mismatch due to the new tables added into the system keyspace.
>>>
>>> Is this going to be an issue if this schema mismatch lasts for maybe several weeks? I assume that running any DDL during that time would be a bad idea, is there any other issues to look out for?
>>>
>>> Thanks
>>>
>>> Paul Chandler

Re: Mixed Cluster 4.0 and 4.1

Posted by Paul Chandler <pa...@redshots.com>.
Hi Bowen,

Thanks for your quick reply. 

Sorry I used the wrong term there, there it is a maintenance window rather than an outage. This is a key system and the vital nature of it means that the customer is rightly very risk adverse, so we will only even get permission to upgrade one DC per night via a rolling upgrade, meaning this will always be over more than a week. 

So we can’t shorten the time the cluster is in mixed mode, but I am concerned about having a schema mismatch for this long time. Should I be concerned, or have others upgraded in a similar way?

Thanks

Paul

> On 24 Apr 2024, at 17:02, Bowen Song via user <us...@cassandra.apache.org> wrote:
> 
> Hi Paul,
> 
> You don't need to plan for or introduce an outage for a rolling upgrade, which is the preferred route. It isn't advisable to take down an entire DC to do upgrade.
> 
> You should aim to complete upgrading the entire cluster and finish a full repair within the shortest gc_grace_seconds (default to 10 days) of all tables. Failing to do that may cause data resurrections.
> 
> During the rolling upgrade, you should not run repair or any DDL query (such as ALTER TABLE, TRUNCATE, etc.).
> 
> You don't need to do the rolling upgrade node by node. You can do it rack by rack. Stopping all nodes in a single rack and upgrade them concurrently is much faster. The number of nodes doesn't matter that much to the time required to complete a rolling upgrade, it's the number of DCs and racks matter.
> 
> Cheers,
> Bowen
> 
> On 24/04/2024 16:16, Paul Chandler wrote:
>> Hi all,
>> 
>> We have some large clusters ( 1000+  nodes ), these are across multiple datacenters.
>> 
>> When we perform upgrades we would normally upgrade a DC at a time during a planned outage for one DC. This means that a cluster might be in a mixed mode with multiple versions for a week or 2.
>> 
>> We have noticed that during our testing that upgrading to 4.1 causes a schema mismatch due to the new tables added into the system keyspace.
>> 
>> Is this going to be an issue if this schema mismatch lasts for maybe several weeks? I assume that running any DDL during that time would be a bad idea, is there any other issues to look out for?
>> 
>> Thanks
>> 
>> Paul Chandler


Re: Mixed Cluster 4.0 and 4.1

Posted by Bowen Song via user <us...@cassandra.apache.org>.
Hi Paul,

You don't need to plan for or introduce an outage for a rolling upgrade, 
which is the preferred route. It isn't advisable to take down an entire 
DC to do upgrade.

You should aim to complete upgrading the entire cluster and finish a 
full repair within the shortest gc_grace_seconds (default to 10 days) of 
all tables. Failing to do that may cause data resurrections.

During the rolling upgrade, you should not run repair or any DDL query 
(such as ALTER TABLE, TRUNCATE, etc.).

You don't need to do the rolling upgrade node by node. You can do it 
rack by rack. Stopping all nodes in a single rack and upgrade them 
concurrently is much faster. The number of nodes doesn't matter that 
much to the time required to complete a rolling upgrade, it's the number 
of DCs and racks matter.

Cheers,
Bowen

On 24/04/2024 16:16, Paul Chandler wrote:
> Hi all,
>
> We have some large clusters ( 1000+  nodes ), these are across multiple datacenters.
>
> When we perform upgrades we would normally upgrade a DC at a time during a planned outage for one DC. This means that a cluster might be in a mixed mode with multiple versions for a week or 2.
>
> We have noticed that during our testing that upgrading to 4.1 causes a schema mismatch due to the new tables added into the system keyspace.
>
> Is this going to be an issue if this schema mismatch lasts for maybe several weeks? I assume that running any DDL during that time would be a bad idea, is there any other issues to look out for?
>
> Thanks
>
> Paul Chandler