Upgrading Cassandra from 2.0.9 to 2.2

We plan to upgrade our cluster, which is currently running from 2.0.9 to 2.2.6. According to the documentation, and some blogs people update cassandra inplace, i.e. Remove the node from the ring update and add it again. We are skeptical of this approach, because everything can go wrong (this is a high transaction base with a lot of QPS).

So, we planned to add a new data cluster to the cluster, which should update the version of cassandra (2.2). Thus, the installation should have two data centers, one old (2.0.9) and another new (2.2.6)

This data center is just a backup. When the data center becomes stable, we will change the client connection to this data center, and if it works well, we will go with this data center and close the old data center, otherwise we can return to the old data center and debug what went wrong So.

Is this process enough or should we upgrade?

Is it possible to use two versions of cassandra (2.0 and 2.2) in the data center.

Is there a drop in this approach?

+5
source share
2 answers

Is it possible to use two versions of cassandra (2.0 and 2.2) in the data center.

No, they cannot.

Is this process enough or should we upgrade?

You will need to perform an in-place upgrade. This is because Cassandra cannot transmit versions. Performing an in-place upgrade allows the new version to read SSTables from the old version.

Is there a drop in this approach?

As I mentioned, you cannot transfer data from your existing nodes to the new 2.2 DC. So self-training, restructuring and repair - all this is out of the question.

Another problem that you have is that 2.2.6 is not "upgrade compatible" with 2.0.9. From this DataStax document: Apache Cassandra versions requiring interim updates ...

Limitations of Apache Cassandra 2.2.x

  • Upgrade Cassandra 2.1 later or equal to 2.1.9 directly in Cassandra 2.2.x.
  • Updating from Cassandra 2.0 and earlier is not supported.

First you need to upgrade your entire cluster to Cassandra 2.1. Once the upgrade to version 2.1 is completed, you can upgrade your sites to 2.2.6.

+3
source

Kassandra is an uncommon data warehouse. For Kassandra there is no such thing as a β€œbackup” data center. If you intend to add another DC with version 2.2, you choose to configure a cluster with a mixed version, as well as when updating nodes individually. The only advantage I see is that performance issues should be less likely due to added nodes. However, adding another DC will make your cluster configuration more complex and may introduce problems that you still don't know about, but will have nothing to do with running different versions. How would you download the new DC? How will the effectiveness of the old DC effect decrease? With this approach, the operational impact will be much greater than updating individual nodes.

If you really do not want to resell the updates, I would suggest setting up the second DC as a separate cluster, import the backup, and do some (load) testing. Also change your code to write to both clusters and end up switching to a new one if you are satisfied. If you don’t want to spend so much effort, just upgrade.

+1
source

Source: https://habr.com/ru/post/1257379/


All Articles