Want advice for upgrade from 1.2.4 to 1.6.x

Our elasticsearch clusters are runnin on 1.2.3/1.2.4, now we are planning to upgrade them to the newest stable version 1.6.x.

Now we have two options to upgrade:

  1. upgrade them to 1.3.x, then to 1.4.x, then 1.5.x, finally 1.6.x
  2. upgrade them from 1.2.x to 1.6.x directly

I want to know whether it is possible that upgrade to 1.6.x directly rather than version by version.

Additionally, I noticed there is a issue (https://github.com/elastic/elasticsearch/issues/10118) saying that it is highly risky to upgrade to 1.3.x or 1.4.x by rolling upgrades. Does it mean that I'd better skip the 1.3 and 1.4 version and at least upgrade to 1.5.x directly if I want to do rolling upgrades on the living cluster?

You can go from 1.2 to 1.6, take a look at https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html

Thank you for reply. The document you mentioned confused me at the following rows:

1.0.0 - 1.3.1     1.x     Rolling upgrade (if indices.recovery.compress set to false)

>= 1.3.2     1.x     Rolling upgrade

Since the indices.recovery.compress is as default as true, does it mean that I cannot do rolling upgrade from 1.2.x to 13.1? But I did rolling upgrade from 1.0 to 1.1 and from 1.1 to 1.2 by rolling even without the indices.recovery.compress set ago, which seams not correct according this description?

Ah ok, then you probably want to do a complete shutdown and go directly to 1.7, if you can.
Otherwise you will have to jump between a few versions and deal with multiple reallocation periods.

Of course, make sure you have backups.