Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Elasticsearch Version minimum compatibility fields

Portion of the / Get Rest API response for Elasticsearch

{
    "name": …,
    "cluster_name": …
    "cluster_uuid": …
    "version": {
        …
        "minimum_wire_compatibility_version": "5.6.0",
        "minimum_index_compatibility_version": "5.0.0"
    },
    "tagline": "You Know, for Search"
}

Couldn't find straight answer for what

  1. minimum_wire_compatibility_version
  2. minimum_index_compatibility_version

actually mean.

So, what do those two fields actually mean?

like image 404
Ori Dar Avatar asked Jan 01 '23 13:01

Ori Dar


1 Answers

These fields are included to handle upgrades.

minimum_wire_compatibility_version : It represents the compatibility between nodes. In your case, the nodes can talk to older version nodes as old as '5.6.0'.

minimum_index_compatibility_version : It means to which minimum version (older version) of nodes can newer nodes reads data from. In your case, the newer nodes can read files/data/index created by nodes from version '5.0.0'.

Overall, this information kind-of represent to what extent it is safe to upgrade from one version to another. My Elasticsearch version 7.0.0 shows following info:

"version": {
    "number": "7.0.0",
    "build_flavor": "default",
    "build_type": "....",
    "build_hash": "....",
    "build_date": "....",
    "build_snapshot": false,
    "lucene_version": "....",
    "minimum_wire_compatibility_version": "6.7.0",
    "minimum_index_compatibility_version": "6.0.0-beta1"
  },

So, this means my ES nodes can talk to nodes as old as '6.7.0' over-the-wire, while they can consume/process the files/data created from nodes as old as '6.0.0-beta1'.

I hope it answers your question.

like image 180
Atur Avatar answered Jan 09 '23 01:01

Atur