Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Elasticsearch (R)Evolution — You Know, for Search...

Elasticsearch (R)Evolution — You Know, for Search...

Elasticsearch is a distributed, RESTful search and analytics engine built on top of Apache Lucene. After the initial release in 2010 it has become the most widely used full-text search engine, but it is not stopping there.

The revolution happened and now it is time for evolution. We dive into the following questions:
* How did leniency help the initial adoption, but why and how do we lean more on strictness today?
* How can upgrades be improved to avoid any downtime even when changing major versions?
* How can new resiliency features improve recovery scenarios and add totally new features?
* Why are types finally disappearing and how are we are trying to avoid the upgrade pain as much as possible?
* What are examples for some clever performance improvements?
* How can you shrink and (finally) split shards in a highly efficient way?

Attendees learn both about new and upcoming features as well as the motivation and engineering challenges behind them.

Philipp Krenn

January 08, 2019
Tweet

More Decks by Philipp Krenn

Other Decks in Programming

Transcript

  1. $ curl http://localhost:9200 { "name": "elasticsearch1", "cluster_name": "docker-cluster", "cluster_uuid": "NflLphonSp2QPKx2llxkgQ",

    "version": { "number": "5.6.14", "build_hash": "f310fe9", "build_date": "2018-12-05T21:20:16.416Z", "build_snapshot": false, "lucene_version": "6.6.1" }, "tagline": "You Know, for Search" }
  2. $ curl http://localhost:9200 { "name": "elasticsearch1", "cluster_name": "docker-cluster", "cluster_uuid": "NflLphonSp2QPKx2llxkgQ",

    "version": { "number": "5.6.14", "build_hash": "f310fe9", "build_date": "2018-12-05T21:20:16.416Z", "build_snapshot": false, "lucene_version": "6.6.1" }, "tagline": "You Know, for Search" }
  3. How 5.6 opt-in for single type 6.x single type for

    new indices 7.x types optional fixed API PUT {index}/_doc/{id} include_type_name: true for GET|PUT _mapping 8.x no more types https://www.elastic.co/guide/en/elasticsearch/reference/current/ removal-of-types.html#_schedule_for_removal_of_mapping_types