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

What's coming in 2.x

What's coming in 2.x

An overview of the themes and features that we are planning to deliver in the 2.x branch

Elastic Co

March 03, 2015
Tweet

More Decks by Elastic Co

Other Decks in Programming

Transcript

  1. { } CC-BY-ND 4.0 0.05 … 0.20
 Mar 2010 …

    Dec 2012 11 stats APIs, index aliases, highlighting, local gateway, translog, facets, geo point, geo shape, scripting, date math, dynamic settings, bulk APIs, delete/open/close indices, index templates, dynamic mapping, parent/ child, nested, versioning, percolator, realtime GET, min_master_nodes, cluster reroute, phrase suggester
  2. { } CC-BY-ND 4.0 0.90 … 1.3
 Apr 2013 …

    Jul 2014 12 Lucene 4, Doc values, Aggregations, Distributed percolator, Function score, Snapshot/Restore, Tribe node, Circuit breakers, Streaming aggs, Significant terms, Completion suggester, Cross fields matching
  3. { } CC-BY-ND 4.0 15 Prevent Elasticsearch from hurting you

    1.4 … 1.5
 Nov 2014 … Mar 2015
  4. { } CC-BY-ND 4.0 16 Checksums, checksums, checksums… Refactoring &

    simplification Randomised testing 1.4 … 1.5
 Nov 2014 … Mar 2015
  5. { } CC-BY-ND 4.0 19 So what's coming in 2.x?


    Prevent You from hurting Yourself
  6. { } CC-BY-ND 4.0 24 Stricter field/type mappings } same

    field name   same index different types same mapping
  7. { } CC-BY-ND 4.0 30 {        "error":

     "SearchPhaseExecutionException[Failed  to  execute  phase  [query],  all  shards   failed;  shardFailures  {[iFZT3lrSRy-­‐PGybC15R4Cw][t][0]:  SearchParseException[[t][0]:   from[-­‐1],size[-­‐1]:  Parse  Failure  [Failed  to  parse  source  [{\n    \"query\":  {\n        \"mathc\":   {\n            \"foo\":  \"bar\"\n        }\n    }\n}\n]]];  nested:  QueryParsingException[[t]  No  query   registered  for  [mathc]];  }{[iFZT3lrSRy-­‐PGybC15R4Cw][t][1]:  SearchParseException[[t][1]:   from[-­‐1],size[-­‐1]:  Parse  Failure  [Failed  to  parse  source  [{\n    \"query\":  {\n        \"mathc\":   {\n            \"foo\":  \"bar\"\n        }\n    }\n}\n]]];  nested:  QueryParsingException[[t]  No  query   registered  for  [mathc]];  }{[iFZT3lrSRy-­‐PGybC15R4Cw][t][2]:  SearchParseException[[t][2]:   from[-­‐1],size[-­‐1]:  Parse  Failure  [Failed  to  parse  source  [{\n    \"query\":  {\n        \"mathc\":   {\n            \"foo\":  \"bar\"\n        }\n    }\n}\n]]];  nested:  QueryParsingException[[t]  No  query   registered  for  [mathc]];  }{[iFZT3lrSRy-­‐PGybC15R4Cw][t][3]:  SearchParseException[[t][3]:   from[-­‐1],size[-­‐1]:  Parse  Failure  [Failed  to  parse  source  [{\n    \"query\":  {\n        \"mathc\":   {\n            \"foo\":  \"bar\"\n        }\n    }\n}\n]]];  nested:  QueryParsingException[[t]  No  query   registered  for  [mathc]];  }{[iFZT3lrSRy-­‐PGybC15R4Cw][t][4]:  SearchParseException[[t][4]:   from[-­‐1],size[-­‐1]:  Parse  Failure  [Failed  to  parse  source  [{\n    \"query\":  {\n        \"mathc\":   {\n            \"foo\":  \"bar\"\n        }\n    }\n}\n]]];  nested:  QueryParsingException[[t]  No  query   registered  for  [mathc]];  }]",        "status":  400   }
  8. { } CC-BY-ND 4.0 31 {      "error":  {

             "type":      "QueryParsingException",          "reason":  "No  query  registered  for  [mathc]",          "offset":  20,          "source":  "{\n    \"query\":  {\n        \"mathc\":  {\n            \"foo\":  \"bar\"\n        }\n    }\n}\n"      }   }  
  9. { } CC-BY-ND 4.0 33 Biggest heap user: Fielddata At

    query time, loads field values into heap, for aggregations, sorting, parent/child
  10. { } CC-BY-ND 4.0 34 Disk-based Fielddata Written at index

    time Loaded into file system cache Managed by operating system
  11. { } CC-BY-ND 4.0 39 What should merge throttling be

    set to? How many merge threads should we enable? Make things simpler
  12. { } CC-BY-ND 4.0 44 Should I use a query

    or a filter here?
 Writing a query?
  13. { } CC-BY-ND 4.0 45 Should I use a query

    or a filter here?
 Which filters should be cached? Or not? Writing a query?
  14. { } CC-BY-ND 4.0 46 Should I use a query

    or a filter here?
 Which filters should be cached? Or not? Bool? And? Or? Not? Writing a query?
  15. { } CC-BY-ND 4.0 47 Should I use a query

    or a filter here?
 Which filters should be cached? Or not? Bool? And? Or? Not? Optimal order of execution? Writing a query?
  16. { } CC-BY-ND 4.0 51 Queries and filters are merging

    query  =  filter  +  scoring Make query DSL simpler
  17. { } CC-BY-ND 4.0 52 Any clause can be cached

    as filter Make query DSL simpler
  18. { } CC-BY-ND 4.0 53 Any clause can be cached

    as filter Auto-cached when makes sense Make query DSL simpler
  19. { } CC-BY-ND 4.0 55 simple facets → hierarchical aggregations

    → approximate streaming → significant terms Make things more powerful
  20. { } CC-BY-ND 4.0 73 Data structure on every node

    Indices, Settings, Mappings, Nodes, Shard allocations, etc Cluster state
  21. { } CC-BY-ND 4.0 PUT  /test [CS1] → 5 primary

    shards assigned to 5 nodes [CS2] → Primary shard 1 started on Node 3 [CS3] → Primary shard 2 started on Node 4 [CS4] → Primary shard 3 started on Node 1 [CS5] → Primary shard 0 started on Node 2 [CS6] → Primary shard 4 started on Node 5 [CS7] → Field "title" added to mapping …
  22. { } CC-BY-ND 4.0 76 Cluster state more nodes more

    shards more fields }more, bigger updates
  23. { } CC-BY-ND 4.0 78 Cluster state diffs Lightweight updates

    Faster publishing Faster cluster restarts
  24. { } CC-BY-ND 4.0 85 Reindex API old index to

    new into same index → update mappings → update by query
  25. { } CC-BY-ND 4.0 86 old index to new into

    same index transform data Reindex API → update mappings → update by query → extract new fields
  26. { } CC-BY-ND 4.0 87 old index to new into

    same index transform data local or remote cluster Reindex API → update mappings → update by query → extract new fields
  27. { } CC-BY-ND 4.0 92 combined with reindex API live

    copy to remote cluster Changes API
  28. { } CC-BY-ND 4.0 93 combined with reindex API "rollup"

    related data, e.g. clickstream → user sessions Changes API
  29. { } CC-BY-ND 4.0 103 ./bin/plugin  install  kibana   >

       Installed  elastic-­‐ui   >    Installed  kibana   Elastic is a family
  30. { } CC-BY-ND 4.0 105 ./bin/elastic  start   >  

     Started  elasticsearch   >    Started  elastic-­‐ui   Elastic is a family
  31. { } CC-BY-ND 4.0 106 curl  localhost:9200  #  Elasticsearch  

    open  localhost:5601  #  Kibana   Elastic is a family
  32. { } This work is licensed under the Creative Commons

    Attribution-NoDerivatives 4.0 International License. To view a copy of this license, visit: http://creativecommons.org/licenses/by-nd/4.0/ or send a letter to: Creative Commons PO Box 1866 Mountain View, CA 94042 USA CC-BY-ND 4.0