Side by Side with Elasticsearch & Solr, Part 2

Sematext Group, Inc.
Sematext Group, Inc. Sematext Group, Inc.
Side  by  Side  with
Elasticsearch &  Solr
Part  2  -­ Performance  &  Scalability
Radu  Gheorghe
Rafał  Kuć
Who  are  we?
Radu Rafał
Logsene
cftweia
Last  year
Last  year  conclusions
One  year  progress
Facet  by  function
https://issues.apache.org/jira/browse/SOLR-­1581
Analytics  component
https://issues.apache.org/jira/browse/SOLR-­5302
Solr  as  standalone  application
https://issues.apache.org/jira/browse/SOLR-­4792
top_hits  aggregation
https://github.com/elastic/elasticsearch/pull/6124
minimum_should_match on  has_child
https://github.com/elastic/elasticsearch/pull/6019
filters  aggregation
https://github.com/elastic/elasticsearch/pull/6118
That's  not  all
JSON  facets
https://issues.apache.org/jira/browse/SOLR-­7214
Backup  +  restore
https://issues.apache.org/jira/browse/SOLR-­5750
Streaming  aggregations
https://issues.apache.org/jira/browse/SOLR-­7082
Moving  averages  aggregation
https://github.com/elastic/elasticsearch/pull/10002
Computation  on  aggregations
https://github.com/elastic/elasticsearch/pull/9876
Cluster  state  diff  support
https://github.com/elastic/elasticsearch/pull/6295
Cross  data  center  replication
https://issues.apache.org/jira/browse/SOLR-­6273
Shadow  replicas
https://github.com/elastic/elasticsearch/pull/8976
This year’s agenda
Horizontal scaling
Products use-­case
Logs use-­case
Horizontal scaling in  theory
Node
shard
Horizontal scaling  in  theory
Node
shard
Node
shard
Horizontal scaling  in  theory
Node
shard
Node
shard
Node
shard
Horizontal scaling  in  theory
Node
shard shard
shard shard
Node
shard shard
shard shard
Node
shard shard
shard shard
Horizontal scaling  in  theory
Node
shard shard
shard shard
replica
replica
replica
replica
Node
shard shard
shard shard
replica
replica
replica
replica
Node
shard shard
shard shard
replica
replica
replica
replica
Horizontal scaling  -­ the  API
Create /  remove replicas  on  the  fly  -­
Collections  API
Moving  shards  around the  cluster  using  
add  /  delete  replica
Create /  remove replicas  on  the  fly  -­
Update  Indices  Settings
Moving  shards  around the  cluster  using  
Cluster  Reroute  API
Shard  splitting using  
Collections  API
Automatic  shard  balancing
by  default
Migrating  data with  a  given  routing  key
to  another  collection  using  API
Shard  allocation  awareness &  rule  
based  shard  placement
The  products  -­ assumptions
Steady  data  growth
Common,  known  
data  structure
Large  QPS
Spikes  in  traffic
Hardware  and  data
2  x  EC2  c3.large  instances
(2vCPU,  3.5GB  RAM,
2x16GB  SSD  in  RAID0)
vs
Wikipedia
Test  requests
One,  common query
https://github.com/sematext/berlin-­buzzwords-­samples/tree/master/2015
Dictionary  of  common and  
uncommon terms
JMeter hammering
Product  search  @  5 threads
The  products  -­ summary
prepare
for  high
QPS
plan  for  
data  
growth
Both are fast,  but  with  wikipedia
<
The  products  -­ summary
prepare
for  high
QPS
plan  for  
data  
growth
Both are fast,  but  with  wikipedia
<
Hardware  and  data (2nd  try)
2  x  EC2  c3.large  instances
(2vCPU,  3.5GB  RAM,
2x16GB  SSD  in  RAID0)
vs
Video
search
video video
video video
video video
video
video
Real product search  @  20 threads
Real product search  @  20 threads
The  products  – real summary
prepare
for  high
QPS
plan  for  
data  
growth
With  video  both are fast and  
configuration matters
The  logs  -­ assumptions
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs Logs
Logs
Lots  of  data
No  updates
Low  query  count
Time  oriented  
data
Hardware  and  data
2  x  EC2  c3.large  instances
(2vCPU,  3.5GB  RAM,
2x16GB  SSD  in  RAID0)
vs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs
Logs Logs
Logs
Apache  logs
Tuning
refresh_interval:  5s
doc_values:  truedocValues:  true
soft  autocommit: 5s
catch  all  field:  on _all:  enabled
hard autocommit:  200mb flush_threshold_size:  200mb
Test  requests
Filters Aggregations/Facets
filter  by  client    IP date  histogram
filter  by  word  in  user  
agent
top  10  response  codes
wildcard  filter  on  domain #  of  unique  IPs
top  IPs  per  response  per  time
https://github.com/sematext/berlin-­buzzwords-­samples/tree/master/2015
Test  runs
1. Write  throughput
2. Capacity of  a  single  index
3. Capacity with  time-­based indices on  
hot/cold setup
Single  index  write  throughput
Single  index  @  max EPS
Single  index  @  400 EPS
Time-­based indices
smaller  indices
lighter  indexing
easier  to  isolate  hot  data  from  cold  data
easier  to  relocate
bigger  indices
less  RAM
less  management  overhead
smaller  cluster  state
Hot  /  Cold in  practice
cron job does everything
creates indices in  advance,  on  the  hot  
nodes (createNodeSet property)
Uses node properties (e.g.  node.tag)
index templates +  shard allocation
awareness =  new indices go  to  hot  
nodes automagically
Optimizes old indices,  creates N  new
replicas of  each shard on  the  cold nodes
Removes all the  replicas from  the  hot  
nodes
Cron job optimizes old indices and  
changes shard allocation attributes =>  
shards get moved and  Do on  the  cold
nodes
Time-­based:  2  hot and  2  cold
Before
AfterAfter
Before
Time-­based:  2  hot and  2  cold
The  logs  -­ summary
Faceting
use  time  
based  indices
use  hot  /  cold  
nodes  policy
Filtering
One  summary to  rule them all
Differences in  configuration often matter
more than differences in  products
Before the  tests we  expected results to  be  
totally opposite in  both use cases
Do  your own tests with  your data and  
queries before jumping  into conclusions
We  are  hiring
Dig  Search?
Dig  Analytics?
Dig  Big  Data?
Dig  Performance?
Dig  Logging?
Dig  working  with  and  in  open  – source?
We’re  hiring  world  – wide!
http://sematext.com/about/jobs.html
Call  me,  maybe?
Radu Gheorghe
@radu0gheorghe
radu.gheorghe@sematext.com
Rafał Kuć
@kucrafal
rafal.kuc@sematext.com
Sematext
@sematext
http://sematext.com
1 of 39

Recommended

ElasticSearch Basic Introduction by
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic IntroductionMayur Rathod
25.6K views34 slides
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021 by
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021
Trino: A Ludicrously Fast Query Engine - Pulsar Summit NA 2021StreamNative
537 views18 slides
Introduction to MongoDB by
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMike Dirolf
38.4K views35 slides
Apache Spark PDF by
Apache Spark PDFApache Spark PDF
Apache Spark PDFNaresh Rupareliya
344 views15 slides
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train... by
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...Edureka!
1.6K views61 slides
Integrating Apache Kafka and Elastic Using the Connect Framework by
Integrating Apache Kafka and Elastic Using the Connect FrameworkIntegrating Apache Kafka and Elastic Using the Connect Framework
Integrating Apache Kafka and Elastic Using the Connect Frameworkconfluent
4.5K views30 slides

More Related Content

What's hot

Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in... by
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Julian Hyde
1.6K views45 slides
Elastic Stack Introduction by
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack IntroductionVikram Shinde
7.9K views21 slides
Elasticsearch by
ElasticsearchElasticsearch
ElasticsearchJean-Philippe Chateau
1.5K views10 slides
Deep Dive Into Elasticsearch by
Deep Dive Into ElasticsearchDeep Dive Into Elasticsearch
Deep Dive Into ElasticsearchKnoldus Inc.
16.3K views27 slides
quick intro to elastic search by
quick intro to elastic search quick intro to elastic search
quick intro to elastic search medcl
16.9K views29 slides
Elasticsearch by
ElasticsearchElasticsearch
ElasticsearchShagun Rathore
739 views39 slides

What's hot(20)

Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in... by Julian Hyde
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Julian Hyde1.6K views
Elastic Stack Introduction by Vikram Shinde
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
Vikram Shinde7.9K views
Deep Dive Into Elasticsearch by Knoldus Inc.
Deep Dive Into ElasticsearchDeep Dive Into Elasticsearch
Deep Dive Into Elasticsearch
Knoldus Inc.16.3K views
quick intro to elastic search by medcl
quick intro to elastic search quick intro to elastic search
quick intro to elastic search
medcl16.9K views
Apache Spark Architecture | Apache Spark Architecture Explained | Apache Spar... by Simplilearn
Apache Spark Architecture | Apache Spark Architecture Explained | Apache Spar...Apache Spark Architecture | Apache Spark Architecture Explained | Apache Spar...
Apache Spark Architecture | Apache Spark Architecture Explained | Apache Spar...
Simplilearn1.5K views
Intro to elasticsearch by Joey Wen
Intro to elasticsearchIntro to elasticsearch
Intro to elasticsearch
Joey Wen562 views
Apache Pulsar Development 101 with Python by Timothy Spann
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
Timothy Spann1.2K views
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha... by HostedbyConfluent
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
HostedbyConfluent992 views
Elastic search overview by ABC Talks
Elastic search overviewElastic search overview
Elastic search overview
ABC Talks8.6K views
Dense Retrieval with Apache Solr Neural Search.pdf by Sease
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdf
Sease872 views
Kibana + timelion: time series with the elastic stack by Sylvain Wallez
Kibana + timelion: time series with the elastic stackKibana + timelion: time series with the elastic stack
Kibana + timelion: time series with the elastic stack
Sylvain Wallez7.6K views
Spark + Cassandra = Real Time Analytics on Operational Data by Victor Coustenoble
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational Data
Victor Coustenoble10K views
Apache Kafka Fundamentals for Architects, Admins and Developers by confluent
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
confluent512 views
Introduction to elasticsearch by hypto
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
hypto2.3K views
KSQL and Security: The Current State of Affairs (Victoria Xia, Confluent) Kaf... by confluent
KSQL and Security: The Current State of Affairs (Victoria Xia, Confluent) Kaf...KSQL and Security: The Current State of Affairs (Victoria Xia, Confluent) Kaf...
KSQL and Security: The Current State of Affairs (Victoria Xia, Confluent) Kaf...
confluent1.3K views

Similar to Side by Side with Elasticsearch & Solr, Part 2

YOW2018 Cloud Performance Root Cause Analysis at Netflix by
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixBrendan Gregg
142.6K views101 slides
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014 by
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014Amazon Web Services
8K views87 slides
SharePoint 2010 Boost your farm performance! by
SharePoint 2010 Boost your farm performance!SharePoint 2010 Boost your farm performance!
SharePoint 2010 Boost your farm performance!Brian Culver
3.9K views49 slides
Optimization In Mobile Systems by
Optimization In Mobile SystemsOptimization In Mobile Systems
Optimization In Mobile Systemsmomobangalore
787 views31 slides
How Rackspace Cloud Monitoring uses Cassandra by
How Rackspace Cloud Monitoring uses CassandraHow Rackspace Cloud Monitoring uses Cassandra
How Rackspace Cloud Monitoring uses Cassandragdusbabek
1.5K views38 slides
WE18_Performance_Up.ppt by
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.pptwebhostingguy
683 views43 slides

Similar to Side by Side with Elasticsearch & Solr, Part 2(20)

YOW2018 Cloud Performance Root Cause Analysis at Netflix by Brendan Gregg
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at Netflix
Brendan Gregg142.6K views
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014 by Amazon Web Services
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
SharePoint 2010 Boost your farm performance! by Brian Culver
SharePoint 2010 Boost your farm performance!SharePoint 2010 Boost your farm performance!
SharePoint 2010 Boost your farm performance!
Brian Culver3.9K views
Optimization In Mobile Systems by momobangalore
Optimization In Mobile SystemsOptimization In Mobile Systems
Optimization In Mobile Systems
momobangalore787 views
How Rackspace Cloud Monitoring uses Cassandra by gdusbabek
How Rackspace Cloud Monitoring uses CassandraHow Rackspace Cloud Monitoring uses Cassandra
How Rackspace Cloud Monitoring uses Cassandra
gdusbabek1.5K views
Using Sumo Logic - Apr 2018 by Sumo Logic
Using Sumo Logic - Apr 2018Using Sumo Logic - Apr 2018
Using Sumo Logic - Apr 2018
Sumo Logic288 views
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010 by Bhupesh Bansal
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Bhupesh Bansal1.3K views
Automate that by Atlassian
Automate thatAutomate that
Automate that
Atlassian15.1K views
Automate That! Scripting Atlassian applications in Python by Atlassian
Automate That! Scripting Atlassian applications in PythonAutomate That! Scripting Atlassian applications in Python
Automate That! Scripting Atlassian applications in Python
Atlassian7K views
Ceph Day Taipei - Accelerate Ceph via SPDK by Ceph Community
Ceph Day Taipei - Accelerate Ceph via SPDK Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Community 465 views
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi... by Alexandru Ersenie
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Alexandru Ersenie1.6K views
Best Practices for Building Robust Data Platform with Apache Spark and Delta by Databricks
Best Practices for Building Robust Data Platform with Apache Spark and DeltaBest Practices for Building Robust Data Platform with Apache Spark and Delta
Best Practices for Building Robust Data Platform with Apache Spark and Delta
Databricks756 views
Real time analytics at uber @ strata data 2019 by Zhenxiao Luo
Real time analytics at uber @ strata data 2019Real time analytics at uber @ strata data 2019
Real time analytics at uber @ strata data 2019
Zhenxiao Luo2.9K views
Leveraging Open Source to Manage SAN Performance by brettallison
Leveraging Open Source to Manage SAN PerformanceLeveraging Open Source to Manage SAN Performance
Leveraging Open Source to Manage SAN Performance
brettallison2K views

More from Sematext Group, Inc.

Tweaking the Base Score: Lucene/Solr Similarities Explained by
Tweaking the Base Score: Lucene/Solr Similarities ExplainedTweaking the Base Score: Lucene/Solr Similarities Explained
Tweaking the Base Score: Lucene/Solr Similarities ExplainedSematext Group, Inc.
8.6K views53 slides
OOPs, OOMs, oh my! Containerizing JVM apps by
OOPs, OOMs, oh my! Containerizing JVM appsOOPs, OOMs, oh my! Containerizing JVM apps
OOPs, OOMs, oh my! Containerizing JVM appsSematext Group, Inc.
1.5K views25 slides
Is observability good for your brain? by
Is observability good for your brain?Is observability good for your brain?
Is observability good for your brain?Sematext Group, Inc.
751 views28 slides
Introducing log analysis to your organization by
Introducing log analysis to your organization Introducing log analysis to your organization
Introducing log analysis to your organization Sematext Group, Inc.
3.5K views106 slides
Solr Search Engine: Optimize Is (Not) Bad for You by
Solr Search Engine: Optimize Is (Not) Bad for YouSolr Search Engine: Optimize Is (Not) Bad for You
Solr Search Engine: Optimize Is (Not) Bad for YouSematext Group, Inc.
10K views94 slides
Solr on Docker - the Good, the Bad and the Ugly by
Solr on Docker - the Good, the Bad and the UglySolr on Docker - the Good, the Bad and the Ugly
Solr on Docker - the Good, the Bad and the UglySematext Group, Inc.
15.5K views21 slides

More from Sematext Group, Inc. (20)

Tweaking the Base Score: Lucene/Solr Similarities Explained by Sematext Group, Inc.
Tweaking the Base Score: Lucene/Solr Similarities ExplainedTweaking the Base Score: Lucene/Solr Similarities Explained
Tweaking the Base Score: Lucene/Solr Similarities Explained
Building Resilient Log Aggregation Pipeline with Elasticsearch & Kafka by Sematext Group, Inc.
Building Resilient Log Aggregation Pipeline with Elasticsearch & KafkaBuilding Resilient Log Aggregation Pipeline with Elasticsearch & Kafka
Building Resilient Log Aggregation Pipeline with Elasticsearch & Kafka
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker by Sematext Group, Inc.
Running High Performance & Fault-tolerant Elasticsearch Clusters on DockerRunning High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Sematext Group, Inc. 10.5K views
Running High Performance and Fault Tolerant Elasticsearch Clusters on Docker by Sematext Group, Inc.
Running High Performance and Fault Tolerant Elasticsearch Clusters on DockerRunning High Performance and Fault Tolerant Elasticsearch Clusters on Docker
Running High Performance and Fault Tolerant Elasticsearch Clusters on Docker
Sematext Group, Inc. 38.1K views
Large Scale Log Analytics with Solr (from Lucene Revolution 2015) by Sematext Group, Inc.
Large Scale Log Analytics with Solr (from Lucene Revolution 2015)Large Scale Log Analytics with Solr (from Lucene Revolution 2015)
Large Scale Log Analytics with Solr (from Lucene Revolution 2015)
Sematext Group, Inc. 11.8K views
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ... by Sematext Group, Inc.
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
From Zero to Production Hero: Log Analysis with Elasticsearch (from Velocity ...
Sematext Group, Inc. 14.1K views
Metrics, Logs, Transaction Traces, Anomaly Detection at Scale by Sematext Group, Inc.
Metrics, Logs, Transaction Traces, Anomaly Detection at ScaleMetrics, Logs, Transaction Traces, Anomaly Detection at Scale
Metrics, Logs, Transaction Traces, Anomaly Detection at Scale

Side by Side with Elasticsearch & Solr, Part 2

  • 1. Side  by  Side  with Elasticsearch &  Solr Part  2  -­ Performance  &  Scalability Radu  Gheorghe Rafał  Kuć
  • 2. Who  are  we? Radu Rafał Logsene cftweia
  • 5. One  year  progress Facet  by  function https://issues.apache.org/jira/browse/SOLR-­1581 Analytics  component https://issues.apache.org/jira/browse/SOLR-­5302 Solr  as  standalone  application https://issues.apache.org/jira/browse/SOLR-­4792 top_hits  aggregation https://github.com/elastic/elasticsearch/pull/6124 minimum_should_match on  has_child https://github.com/elastic/elasticsearch/pull/6019 filters  aggregation https://github.com/elastic/elasticsearch/pull/6118
  • 6. That's  not  all JSON  facets https://issues.apache.org/jira/browse/SOLR-­7214 Backup  +  restore https://issues.apache.org/jira/browse/SOLR-­5750 Streaming  aggregations https://issues.apache.org/jira/browse/SOLR-­7082 Moving  averages  aggregation https://github.com/elastic/elasticsearch/pull/10002 Computation  on  aggregations https://github.com/elastic/elasticsearch/pull/9876 Cluster  state  diff  support https://github.com/elastic/elasticsearch/pull/6295 Cross  data  center  replication https://issues.apache.org/jira/browse/SOLR-­6273 Shadow  replicas https://github.com/elastic/elasticsearch/pull/8976
  • 7. This year’s agenda Horizontal scaling Products use-­case Logs use-­case
  • 8. Horizontal scaling in  theory Node shard
  • 9. Horizontal scaling  in  theory Node shard Node shard
  • 10. Horizontal scaling  in  theory Node shard Node shard Node shard
  • 11. Horizontal scaling  in  theory Node shard shard shard shard Node shard shard shard shard Node shard shard shard shard
  • 12. Horizontal scaling  in  theory Node shard shard shard shard replica replica replica replica Node shard shard shard shard replica replica replica replica Node shard shard shard shard replica replica replica replica
  • 13. Horizontal scaling  -­ the  API Create /  remove replicas  on  the  fly  -­ Collections  API Moving  shards  around the  cluster  using   add  /  delete  replica Create /  remove replicas  on  the  fly  -­ Update  Indices  Settings Moving  shards  around the  cluster  using   Cluster  Reroute  API Shard  splitting using   Collections  API Automatic  shard  balancing by  default Migrating  data with  a  given  routing  key to  another  collection  using  API Shard  allocation  awareness &  rule   based  shard  placement
  • 14. The  products  -­ assumptions Steady  data  growth Common,  known   data  structure Large  QPS Spikes  in  traffic
  • 15. Hardware  and  data 2  x  EC2  c3.large  instances (2vCPU,  3.5GB  RAM, 2x16GB  SSD  in  RAID0) vs Wikipedia
  • 16. Test  requests One,  common query https://github.com/sematext/berlin-­buzzwords-­samples/tree/master/2015 Dictionary  of  common and   uncommon terms JMeter hammering
  • 17. Product  search  @  5 threads
  • 18. The  products  -­ summary prepare for  high QPS plan  for   data   growth Both are fast,  but  with  wikipedia <
  • 19. The  products  -­ summary prepare for  high QPS plan  for   data   growth Both are fast,  but  with  wikipedia <
  • 20. Hardware  and  data (2nd  try) 2  x  EC2  c3.large  instances (2vCPU,  3.5GB  RAM, 2x16GB  SSD  in  RAID0) vs Video search video video video video video video video video
  • 21. Real product search  @  20 threads
  • 22. Real product search  @  20 threads
  • 23. The  products  – real summary prepare for  high QPS plan  for   data   growth With  video  both are fast and   configuration matters
  • 24. The  logs  -­ assumptions Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Lots  of  data No  updates Low  query  count Time  oriented   data
  • 25. Hardware  and  data 2  x  EC2  c3.large  instances (2vCPU,  3.5GB  RAM, 2x16GB  SSD  in  RAID0) vs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Logs Apache  logs
  • 26. Tuning refresh_interval:  5s doc_values:  truedocValues:  true soft  autocommit: 5s catch  all  field:  on _all:  enabled hard autocommit:  200mb flush_threshold_size:  200mb
  • 27. Test  requests Filters Aggregations/Facets filter  by  client    IP date  histogram filter  by  word  in  user   agent top  10  response  codes wildcard  filter  on  domain #  of  unique  IPs top  IPs  per  response  per  time https://github.com/sematext/berlin-­buzzwords-­samples/tree/master/2015
  • 28. Test  runs 1. Write  throughput 2. Capacity of  a  single  index 3. Capacity with  time-­based indices on   hot/cold setup
  • 29. Single  index  write  throughput
  • 30. Single  index  @  max EPS
  • 31. Single  index  @  400 EPS
  • 32. Time-­based indices smaller  indices lighter  indexing easier  to  isolate  hot  data  from  cold  data easier  to  relocate bigger  indices less  RAM less  management  overhead smaller  cluster  state
  • 33. Hot  /  Cold in  practice cron job does everything creates indices in  advance,  on  the  hot   nodes (createNodeSet property) Uses node properties (e.g.  node.tag) index templates +  shard allocation awareness =  new indices go  to  hot   nodes automagically Optimizes old indices,  creates N  new replicas of  each shard on  the  cold nodes Removes all the  replicas from  the  hot   nodes Cron job optimizes old indices and   changes shard allocation attributes =>   shards get moved and  Do on  the  cold nodes
  • 34. Time-­based:  2  hot and  2  cold Before AfterAfter Before
  • 35. Time-­based:  2  hot and  2  cold
  • 36. The  logs  -­ summary Faceting use  time   based  indices use  hot  /  cold   nodes  policy Filtering
  • 37. One  summary to  rule them all Differences in  configuration often matter more than differences in  products Before the  tests we  expected results to  be   totally opposite in  both use cases Do  your own tests with  your data and   queries before jumping  into conclusions
  • 38. We  are  hiring Dig  Search? Dig  Analytics? Dig  Big  Data? Dig  Performance? Dig  Logging? Dig  working  with  and  in  open  – source? We’re  hiring  world  – wide! http://sematext.com/about/jobs.html
  • 39. Call  me,  maybe? Radu Gheorghe @radu0gheorghe radu.gheorghe@sematext.com Rafał Kuć @kucrafal rafal.kuc@sematext.com Sematext @sematext http://sematext.com