Upgrade Elasticsearch from 6.8.23 to 8.4.1

Hi.

I've few questions regarding a possible upgrade of Elasticsearch from 6.8.23 to 8.4.1.

Our application is based on Java 8 build using SBT play framework, currently running and using Elasticsearch 6.8.23 on Mac, Redhat 7, Amazon Linux 2, with a one node cluster, and installed Elasticsearch using zip download. Application uses ReadOnlyRest plugin.

1: Is it possible to upgrade Elasticsearch from 6.8.23 to 8.4.1? Because, currently we're using elasticsearch-rest-high-level-client:6.8.23 and I see until date only alpha 2 version of elasticsearch-rest-high-level-client is available for 8.4.1. We don't want to use alpha/rc version unless stable version is released.

2: I read here, that High Level REST Client is deprecated in 7.15.0. With this, do we have two options here, if we still want to upgrade from 6.8.23 to 8.4.1?
a) Either migrate from High Level Rest Client (HLRC) to the new Java API Client as mentioned here
b) Enable the compatibility mode in High Level Client version 7.16 to communicate with Elasticsearch 8.x as mentioned here

3: Above in 2a there might be a need to rewrite code? But for 2b there won't be any need to rewrite code? Please if anyone can confirm.

4: Will there be any performance degradation in 2b?

Thanks.

you only have one node cluster.

create new one node cluster with version 8.4.1 and duplicate work. it will be faster then you upgrading 6.x to 8.x which has many changes along the line.

Hi.
Could you elaborate what is meant by "duplicate work"? I think in our case, we will go for "full cluster update" instead of "Rolling update". Could you please also share your opinion on point 2 and 3 of OP? I'm happy to give a try to install 8.4.1 and configure our application, but needs some clarification on point 2 & 3 specifically.

Thanks.

It is not possible to upgrade from 6.8 to 8.X, you would need first to upgrade to the last minor version of 7.17, check the upgrade assistant to see if there are any issues and then upgrade to the last 8.X version.

I do not use the Java API, but as you already saw, the Java High Level REST API is deprecated, you should migrate to the new JAVA API and you will probably need to change some things in your code.

I would say that the best approach in your case is to spin-up a completely new Elasticsearch cluster in version 8.4 and use it to test you code before migrate your production cluster.

What I mean is what exactly Leandro said.

best way to move on this case is to spin up new cluster, take snapshot of data and restore in new cluster. test out all that java api etc.. on new cluster and stop old cluster when new one in fully working.