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

What's evolving in Elasticsearch?

Elastic Co
August 16, 2017

What's evolving in Elasticsearch?

Abstract: The 5.0 release of Elasticsearch took advantage of the cleanups in 2.0 to add a slew of new features on top of a rock-solid foundation. Ryan will give an overview of the changes already released in the 5.x series, and a taste of the big new features coming in 6.0.

Ryan Ernst is an Apache Lucene/Solr committer and PMC member. He is an Elasticsearch developer and enjoys working on anything with bits. Prior to Elastic, he worked on Amazon's Product Search and AWS CloudSearch.

https://www.meetup.com/Silicon-Valley-Elastic-Fantastics/events/241914389/

Elastic Co

August 16, 2017
Tweet

More Decks by Elastic Co

Other Decks in Technology

Transcript

  1. 2 Agenda • Preparing for upgrade • Upgrading (across major

    versions) • Things to Watch Out For • Pioneer Program
  2. 4 Read the docs! • Breaking changes docs • https://www.elastic.co/guide/en/elasticsearch/reference/6.0/breaking-

    changes-6.0.html • Blog posts • https://www.elastic.co/blog/elasticsearch-6-0-0-alpha1-released • https://www.elastic.co/blog/elasticsearch-6-0-0-alpha2-released • https://www.elastic.co/blog/elasticsearch-6-0-0-beta1-released
  3. 9 Rolling upgrades across major versions • Compatibility from 5.6

    to any 6.x node! • What about… ➡ The java client ➡ Tribe nodes ➡ Indexing while upgrading
  4. 10 Java Client: Transport to REST • “Low level” client

    Introduced in 5.x • “High level” rest client added with 6.0 ➡Request/response objects like with transport client • Compatible across major versions • Caveat: Still depends on Elasticsearch core jar and dependencies
  5. 11 Tribe Node Reimagined: Cross cluster search • Limited scope:

    only supports search operations • Uses low level rest client to talk across major versions • Tribe will be removed in a future release (likely 7.0)
  6. 12 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Cluster R&D Master Nodes Data Node Data Node Data Node
  7. 13 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Any node can perform cross-cluster search
  8. 14 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Optional dedicated cross-cluster search cluster Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node
  9. 15 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node PUT _cluster/settings { "transient": { "search.remote": { "sales.seeds": "10.0.0.1:9300", “r_and_d.seeds”: "10.1.0.1:9300" } } } Dynamic settings Optional dedicated cross-cluster search cluster
  10. 16 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node No cluster state updates Optional dedicated cross-cluster search cluster
  11. 17 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node Kibana Optional dedicated cross-cluster search cluster
  12. 18 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node Kibana Can create indices Optional dedicated cross-cluster search cluster
  13. 19 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node Kibana Optional dedicated cross-cluster search cluster
  14. 20 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node Kibana Few lightweight connections Optional dedicated cross-cluster search cluster
  15. 21 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node Kibana Index namespacing GET sales:*,r_and_d:logs*/_search { "query": { … } } Optional dedicated cross-cluster search cluster
  16. 22 How Cross-Cluster search works Cluster Sales Master Nodes Data

    Node Data Node Data Node Master/Data Node Cluster R&D Master Nodes Data Node Data Node Data Node Master/Data Node Kibana With many shards Batched Reduce Phase Optional dedicated cross-cluster search cluster
  17. 23 Indexing while upgrading: Replication improvements • Limit syncs to

    only changed documents (instead of file-based recovery) • Fast replica recovery after temporary unavailability (network issues, etc.) • Re-sync on primary failure • Laying foundation for future big league features ‒Cross-datacenter replication ‒Changes API (tbd)
  18. 24 Elasticsearch: Recovery Segment-based Segment 1 Segment 2 Segment 3

    Segment 2 Segment 3 Primary Replica Request Request Segment 1
  19. 25 Elasticsearch: Recovery Segment 1 Segment 2 Segment 3 Segment

    3 Primary Primary Segment 2 Segment 1 Background merge Segment-based
  20. 26 Elasticsearch: Recovery Segment 1 Segment 2 Segment 3 Segment

    2 Primary Primary Segment 1 Segment-based
  21. 29 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 2 Segment 3 Primary Replica Request Segment 1 1 2 3 4 1 2 3
  22. 30 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 2 Segment 3 Primary Replica Request Request Segment 1 1 2 3 4 1 2 3 4
  23. 31 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 2 Segment 3 Primary Replica Segment 1 1 2 3 4 1 2 3 4 ACK
  24. 32 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 2 Segment 3 Replica Primary Segment 1 1 2 3 4 1 2 3 4 Background merge
  25. 33 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 4 Replica Primary Segment 1 1 2 3 4 1 2 3 4
  26. 34 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 4 Replica Primary Segment 1 1 2 3 4 1 2 3 4
  27. 35 Elasticsearch: Recovery Operation-based (sequence IDs) Segment 1 Segment 2

    Segment 3 Segment 4 Replica Primary Segment 1 1 2 3 4 1 2 3 4
  28. 38 _type removal • Cannot create indexes with more than

    one `_type` value • Will be removed in 7.0/8.0 • Still have to specify type in indexing operations…
  29. 39 _all removal • Use query_string and simple_query_string • Use

    copy_to to have a catch-all field • Backcompat supported for indexes created before 6.0
  30. 40 Other changes • Indices created in 2.x and prior


    • on/off/1/0/yes/no no longer accepted as substitutes for true/false
 • 32-bit JVMs
 • Content-type detection
 • Scripting: Groovy, JavaScript, Python, “native” scripts, lang removed; security/context changes
  31. 41 Become an Elastic Pioneer Download 6.0 preview release Provide

    feedback via GitHub or Discuss forum Get limited edition Pioneer swag 1 2 3
  32. 42 Elastic Pioneer Program Download 6.0 preview release (alpha, beta,

    etc) Provide feedback via GitHub or Discuss forum Get limited edition Pioneer swag 1 2 3 We want your feedback!