SlideShare a Scribd company logo
1 of 30
Demystifying SolrCloud
Autoscaling
Simulations and Testing
Andrzej Białecki
Senior Solr Engineer, Lucidworks
ab@lucidworks.com
Agenda
•Autoscaling Policy Overview
•Autoscaling Simulation Framework
•Using the bin/solr autoscaling tool
•Simulation-based Policy Tuning
Autoscaling Policy Overview
Autoscaling Policy
• Determines Solr core placement on SolrCloud nodes
• Preferences determine the sorting order of candidate nodes
{ minimize : cores },
{ maximize : freedisk, precision : 10 }
• Rules determine core placement limits on selected nodes
{ replica : <2, shard : #EACH, node : #ANY }
Example cluster policy
cluster-preferences : [
{ minimize : cores, precision : 1 }
{ maximize : freedisk, precision : 10 } ],
cluster-policy : [
{ replica : 0, nodeset : { nodeRole : overseer }},
{ replica : <2, shard : #EACH, node: #ANY } ]
Example cluster + named policies
cluster-preferences : [
{ minimize : cores, precision : 1 }
{ maximize : freedisk, precision : 20 } ],
cluster-policy : [
{ replica : 0, nodeset : { nodeRole : overseer }},
{ replica : <2, shard : #EACH, node : #ANY } ],
policies : {
policy1 : [
{ replica : <3, shard : #EACH, node : #ANY } ],
policy2 : [
{ replica : <5, shard : #EACH, nodeset: { diskType : ssd }} ] }
🤔
Effective policy
cluster-policy : [
{ replica : 0, nodeset : { nodeRole : overseer }},
{ replica : <2, shard : #EACH, node : #ANY } ],
policies : {
policy1 : [
{ replica : <3, shard : #EACH, node : #ANY } ] }
Effective policy1:
{ replica : <3, shard : #EACH, node : #ANY },
{ replica : 0, nodeset : { nodeRole : overseer }}
Effective policy
cluster-policy : [
{ replica : 0, nodeset : { nodeRole : overseer }},
{ replica : <2, shard : #EACH, node : #ANY } ],
policies : {
policy2 : [
{ replica : <5, shard : #EACH, nodeset : { diskType : ssd }} ] }
Effective policy2:
{ replica : <5, shard : #EACH, nodeset : { diskType : ssd }},
{ replica : 0, nodeset : { nodeRole : overseer }},
{ replica : <2, shard : #EACH, node : #ANY }
Challenges
• It’s not always easy to figure out the effective policy
• Actual replica placements may differ from expected
• How should I design the rules to get the desired layout?
• Will the suggested replica movements eventually lead to a stable
and balanced cluster?
– Can’t recklessly test this on a live cluster!
Autoscaling Simulation Framework
Autoscaling Simulation Framework
• Uses actual autoscaling code
• Supports testing large virtual clusters, using accelerated time
• Provides API for unit testing
• Provides API for saving / loading snapshots of autoscaling data
– Anonymized snapshots in 8.3
• Available as a command-line tool since Solr 8.1
bin/solr autoscaling
command-line tool
Tool functionality
• Does NOT require a Solr instance to run simulations
– Takes a snapshot of a live cluster’s state to initialize, save and load later
• Uses existing or provided autoscaling config
• Autoscaling data can be redacted before sharing
• “What if” exploration – iteratively applies autoscaling suggestions
Simulation-based Policy Tuning
Tuning workflow
1. Save a snapshot of a live cluster
2. Modify the Policy in autoscaling.json
3. Load a snapshot and apply the modified autoscaling.json
– Optionally, run several iterations to see if all suggestions / violations are eventually
resolved
4. Check the resulting layout of the simulated cluster
5. Repeat steps 2-4 as needed
…
6. Profit! 😀
Demo
Summary
•Autoscaling Policy Overview
•Autoscaling Simulation Framework
•Using the bin/solr autoscaling tool
•Simulation-based Policy Tuning
THANK YOUAndrzej Białecki
Senior Solr Engineer, Lucidworks
ab@lucidworks.com
Bonus slides
What’s in /autoscaling.json
Config?
• Autoscaling Policy:
– Cluster preferences – determine the priority of candidate nodes for replica placement
– Cluster-wide policy
– Named policies (for use in collection configs)
• Trigger configurations
– Events, actions and listener
Autoscaling Policy
• Global rules put constraints on cores (regardless of collection)
{ cores : <10, node : #ANY }
• Collection rules put constraints on replicas
{ replica: 33%, shard: #EACH, nodeset: { sysprop.zone: east }}
{ replica: 66%, shard: #EACH, nodeset: { sysprop.zone: west }}
• Named policies define additional rules to be used for specific
collections
– May not contain global rules
Effective collection policy
• Applied to collections that use the named policy
• Combination of the global cluster policy and a named policy
– Effective policy holds ONLY unique rules with regard to the node selector:
node, nodeset, nodeRole, heapUsage, sysprop.* …
• Global rules using a different node selector are appended
• Global rules using the same node selector are ignored
Autoscaling snapshot
• All data (JSON) to perform autoscaling calculations and simulate actions
– Cluster information (live nodes) and collection information (ClusterState)
– All ZooKeeper data
– Node information and metrics (relevant to the current Policy)
– Replica information and metrics (relevant to the current Policy)
– Additional diagnostics and statistics
• Optional consistent redaction
– http://my.secret.cluster:8000/solr/mySecretCollection 
http://N_0/solr/COLL_0
– … “node_name” : “my.secret.cluster_8000_solr”  “N_0_solr”
– … “core” : “mySecretCollection_shard1_replica_n2” 
$ bin/solr autoscaling -help
-zkHost <HOST> Address of the Zookeeper ensemble; defaults
to: localhost:9983
-a,--config <CONFIG> Autoscaling config file, defaults to the one
deployed in the cluster.
-c,--clusterState Show ClusterState (collections layout)
-d,--diagnostics Show calculated diagnostics
-s,--suggestions Show calculated suggestions
-stats Show summarized collection & node statistics.
-save <DIR> Store autoscaling snapshot of the current cluster.
-load <DIR> Load autoscaling snapshot of the cluster
instead of using the real one.
-r,--redact Redact node and collection names (original
names will be consistently randomized)
-simulate Simulate execution of all suggestions.
-ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of
simulated execution.
-i,--iterations <NUMBER> Max number of simulation iterations.
$ bin/solr autoscaling -help
-zkHost <HOST> Address of the Zookeeper ensemble; defaults
to: localhost:9983
-a,--config <CONFIG> Autoscaling config file, defaults to the one
deployed in the cluster.
-c,--clusterState Show ClusterState (collections layout)
-d,--diagnostics Show calculated diagnostics
-s,--suggestions Show calculated suggestions
-stats Show summarized collection & node statistics.
-save <DIR> Store autoscaling snapshot of the current cluster.
-load <DIR> Load autoscaling snapshot of the cluster
instead of using the real one.
-r,--redact Redact node and collection names (original
names will be consistently randomized)
-simulate Simulate execution of all suggestions.
-ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of
simulated execution.
-i,--iterations <NUMBER> Max number of simulation iterations.
$ bin/solr autoscaling -help
-zkHost <HOST> Address of the Zookeeper ensemble; defaults
to: localhost:9983
-a,--config <CONFIG> Autoscaling config file, defaults to the one
deployed in the cluster.
-c,--clusterState Show ClusterState (collections layout)
-d,--diagnostics Show calculated diagnostics
-s,--suggestions Show calculated suggestions
-stats Show summarized collection & node statistics.
-save <DIR> Store autoscaling snapshot of the current cluster.
-load <DIR> Load autoscaling snapshot of the cluster
instead of using the real one.
-r,--redact Redact node and collection names (original
names will be consistently randomized)
-simulate Simulate execution of all suggestions.
-ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of
simulated execution.
-i,--iterations <NUMBER> Max number of simulation iterations.
$ bin/solr autoscaling -help
-zkHost <HOST> Address of the Zookeeper ensemble; defaults
to: localhost:9983
-a,--config <CONFIG> Autoscaling config file, defaults to the one
deployed in the cluster.
-c,--clusterState Show ClusterState (collections layout)
-d,--diagnostics Show calculated diagnostics
-s,--suggestions Show calculated suggestions
-stats Show summarized collection & node statistics.
-save <DIR> Store autoscaling snapshot of the current cluster.
-load <DIR> Load autoscaling snapshot of the cluster
instead of using the real one.
-r,--redact Redact node and collection names (original
names will be consistently randomized)
-simulate Simulate execution of all suggestions.
-ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of
simulated execution.
-i,--iterations <NUMBER> Max number of simulation iterations.
$ bin/solr autoscaling -help
-zkHost <HOST> Address of the Zookeeper ensemble; defaults
to: localhost:9983
-a,--config <CONFIG> Autoscaling config file, defaults to the one
deployed in the cluster.
-c,--clusterState Show ClusterState (collections layout)
-d,--diagnostics Show calculated diagnostics
-s,--suggestions Show calculated suggestions
-stats Show summarized collection & node statistics.
-save <DIR> Store autoscaling snapshot of the current cluster.
-load <DIR> Load autoscaling snapshot of the cluster
instead of using the real one.
-r,--redact Redact node and collection names (original
names will be consistently randomized)
-simulate Simulate execution of all suggestions.
-ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of
simulated execution.
-i,--iterations <NUMBER> Max number of simulation iterations.

More Related Content

What's hot

Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced previewPatrick McFadin
 
Elasticsearch - Dynamic Nodes
Elasticsearch - Dynamic NodesElasticsearch - Dynamic Nodes
Elasticsearch - Dynamic NodesScott Davis
 
Solr Search Engine: Optimize Is (Not) Bad for You
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.
 
DataStax: An Introduction to DataStax Enterprise Search
DataStax: An Introduction to DataStax Enterprise SearchDataStax: An Introduction to DataStax Enterprise Search
DataStax: An Introduction to DataStax Enterprise SearchDataStax Academy
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingDataStax Academy
 
Cassandra for Python Developers
Cassandra for Python DevelopersCassandra for Python Developers
Cassandra for Python DevelopersTyler Hobbs
 
Call me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networksCall me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networksShalin Shekhar Mangar
 
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...thelabdude
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterprisePatrick McFadin
 
Cassandra 3.0 Awesomeness
Cassandra 3.0 AwesomenessCassandra 3.0 Awesomeness
Cassandra 3.0 AwesomenessJon Haddad
 
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph EnterpriseRed Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph EnterpriseRed_Hat_Storage
 
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...DataStax Academy
 
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
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 DockerSematext Group, Inc.
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusterslucenerevolution
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosJoe Stein
 
NYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / SolrNYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / Solrthelabdude
 

What's hot (20)

High Performance Solr
High Performance SolrHigh Performance Solr
High Performance Solr
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced preview
 
Elasticsearch - Dynamic Nodes
Elasticsearch - Dynamic NodesElasticsearch - Dynamic Nodes
Elasticsearch - Dynamic Nodes
 
Solr Search Engine: Optimize Is (Not) Bad for You
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 You
 
DataStax: An Introduction to DataStax Enterprise Search
DataStax: An Introduction to DataStax Enterprise SearchDataStax: An Introduction to DataStax Enterprise Search
DataStax: An Introduction to DataStax Enterprise Search
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra for Python Developers
Cassandra for Python DevelopersCassandra for Python Developers
Cassandra for Python Developers
 
Call me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networksCall me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networks
 
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
Lucene Revolution 2013 - Scaling Solr Cloud for Large-scale Social Media Anal...
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
 
Cassandra 3.0 Awesomeness
Cassandra 3.0 AwesomenessCassandra 3.0 Awesomeness
Cassandra 3.0 Awesomeness
 
Scaling search with SolrCloud
Scaling search with SolrCloudScaling search with SolrCloud
Scaling search with SolrCloud
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph EnterpriseRed Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise
 
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...
 
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
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
 
Scaling Solr with Solr Cloud
Scaling Solr with Solr CloudScaling Solr with Solr Cloud
Scaling Solr with Solr Cloud
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
 
NYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / SolrNYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / Solr
 

Similar to Demystifying Solr Cloud Autoscaling: Simulations and Testing

Autoscaling Suggestions: Simplifying Operations - Varun Thacker, Lucidworks
Autoscaling Suggestions: Simplifying Operations - Varun Thacker, LucidworksAutoscaling Suggestions: Simplifying Operations - Varun Thacker, Lucidworks
Autoscaling Suggestions: Simplifying Operations - Varun Thacker, LucidworksLucidworks
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scalethelabdude
 
Senlin deep dive 2015 05-20
Senlin deep dive 2015 05-20Senlin deep dive 2015 05-20
Senlin deep dive 2015 05-20Qiming Teng
 
Autoscaling Solr - Shalin Shekhar Mangar, Lucidworks
Autoscaling Solr - Shalin Shekhar Mangar, LucidworksAutoscaling Solr - Shalin Shekhar Mangar, Lucidworks
Autoscaling Solr - Shalin Shekhar Mangar, LucidworksLucidworks
 
Fortify aws aurora_proxy
Fortify aws aurora_proxyFortify aws aurora_proxy
Fortify aws aurora_proxyMarco Tusa
 
Percona Live 2017 ­- Sharded cluster tutorial
Percona Live 2017 ­- Sharded cluster tutorialPercona Live 2017 ­- Sharded cluster tutorial
Percona Live 2017 ­- Sharded cluster tutorialAntonios Giannopoulos
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephRongze Zhu
 
Fortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleuFortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleuMarco Tusa
 
Machine Learning for the Apache Spark Developer with Paige Liu
Machine Learning for the Apache Spark Developer with Paige LiuMachine Learning for the Apache Spark Developer with Paige Liu
Machine Learning for the Apache Spark Developer with Paige LiuDatabricks
 
Cassandra
CassandraCassandra
Cassandraexsuns
 
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014Amazon Web Services
 
Benchmarking Solr Performance
Benchmarking Solr PerformanceBenchmarking Solr Performance
Benchmarking Solr PerformanceLucidworks
 
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.Rahul Krishna Upadhyaya
 
Sharding - Seoul 2012
Sharding - Seoul 2012Sharding - Seoul 2012
Sharding - Seoul 2012MongoDB
 
Elastic101tutorial Percona Live Europe 2018
Elastic101tutorial Percona Live Europe 2018Elastic101tutorial Percona Live Europe 2018
Elastic101tutorial Percona Live Europe 2018Alex Cercel
 
Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Antonios Giannopoulos
 
Intro to Solr Cloud, Presented by Tim Potter at SolrExchage DC
Intro to Solr Cloud, Presented by Tim Potter at SolrExchage DCIntro to Solr Cloud, Presented by Tim Potter at SolrExchage DC
Intro to Solr Cloud, Presented by Tim Potter at SolrExchage DCLucidworks (Archived)
 
Solr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloudSolr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloudthelabdude
 

Similar to Demystifying Solr Cloud Autoscaling: Simulations and Testing (20)

Autoscaling Suggestions: Simplifying Operations - Varun Thacker, Lucidworks
Autoscaling Suggestions: Simplifying Operations - Varun Thacker, LucidworksAutoscaling Suggestions: Simplifying Operations - Varun Thacker, Lucidworks
Autoscaling Suggestions: Simplifying Operations - Varun Thacker, Lucidworks
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scale
 
Senlin deep dive 2015 05-20
Senlin deep dive 2015 05-20Senlin deep dive 2015 05-20
Senlin deep dive 2015 05-20
 
Autoscaling Solr - Shalin Shekhar Mangar, Lucidworks
Autoscaling Solr - Shalin Shekhar Mangar, LucidworksAutoscaling Solr - Shalin Shekhar Mangar, Lucidworks
Autoscaling Solr - Shalin Shekhar Mangar, Lucidworks
 
Fortify aws aurora_proxy
Fortify aws aurora_proxyFortify aws aurora_proxy
Fortify aws aurora_proxy
 
Percona Live 2017 ­- Sharded cluster tutorial
Percona Live 2017 ­- Sharded cluster tutorialPercona Live 2017 ­- Sharded cluster tutorial
Percona Live 2017 ­- Sharded cluster tutorial
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
 
Fortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleuFortify aws aurora_proxy_2019_pleu
Fortify aws aurora_proxy_2019_pleu
 
Solr4 nosql search_server_2013
Solr4 nosql search_server_2013Solr4 nosql search_server_2013
Solr4 nosql search_server_2013
 
Machine Learning for the Apache Spark Developer with Paige Liu
Machine Learning for the Apache Spark Developer with Paige LiuMachine Learning for the Apache Spark Developer with Paige Liu
Machine Learning for the Apache Spark Developer with Paige Liu
 
Cassandra
CassandraCassandra
Cassandra
 
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
(SDD402) Amazon ElastiCache Deep Dive | AWS re:Invent 2014
 
Benchmarking Solr Performance
Benchmarking Solr PerformanceBenchmarking Solr Performance
Benchmarking Solr Performance
 
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
 
Sharding - Seoul 2012
Sharding - Seoul 2012Sharding - Seoul 2012
Sharding - Seoul 2012
 
Elastic101tutorial Percona Live Europe 2018
Elastic101tutorial Percona Live Europe 2018Elastic101tutorial Percona Live Europe 2018
Elastic101tutorial Percona Live Europe 2018
 
Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018
 
Hot tutorials
Hot tutorialsHot tutorials
Hot tutorials
 
Intro to Solr Cloud, Presented by Tim Potter at SolrExchage DC
Intro to Solr Cloud, Presented by Tim Potter at SolrExchage DCIntro to Solr Cloud, Presented by Tim Potter at SolrExchage DC
Intro to Solr Cloud, Presented by Tim Potter at SolrExchage DC
 
Solr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloudSolr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloud
 

More from Lucidworks

Search is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategySearch is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategyLucidworks
 
Drive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceDrive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceLucidworks
 
How Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsHow Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsLucidworks
 
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks
 
Connected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesConnected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesLucidworks
 
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Lucidworks
 
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...Lucidworks
 
Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Lucidworks
 
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Lucidworks
 
AI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteAI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteLucidworks
 
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentThe Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentLucidworks
 
Webinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeWebinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeLucidworks
 
Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Lucidworks
 
Applying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchApplying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchLucidworks
 
Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Lucidworks
 
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyWebinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyLucidworks
 
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Lucidworks
 
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceApply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceLucidworks
 
Webinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchWebinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchLucidworks
 
Why Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondWhy Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondLucidworks
 

More from Lucidworks (20)

Search is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategySearch is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce Strategy
 
Drive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceDrive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in Salesforce
 
How Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsHow Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant Products
 
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
 
Connected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesConnected Experiences Are Personalized Experiences
Connected Experiences Are Personalized Experiences
 
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
 
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
 
Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020
 
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
 
AI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteAI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and Rosette
 
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentThe Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
 
Webinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeWebinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - Europe
 
Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19
 
Applying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchApplying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 Research
 
Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1
 
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyWebinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
 
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
 
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceApply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
 
Webinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchWebinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise Search
 
Why Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondWhy Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and Beyond
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Demystifying Solr Cloud Autoscaling: Simulations and Testing

  • 1. Demystifying SolrCloud Autoscaling Simulations and Testing Andrzej Białecki Senior Solr Engineer, Lucidworks ab@lucidworks.com
  • 2. Agenda •Autoscaling Policy Overview •Autoscaling Simulation Framework •Using the bin/solr autoscaling tool •Simulation-based Policy Tuning
  • 4. Autoscaling Policy • Determines Solr core placement on SolrCloud nodes • Preferences determine the sorting order of candidate nodes { minimize : cores }, { maximize : freedisk, precision : 10 } • Rules determine core placement limits on selected nodes { replica : <2, shard : #EACH, node : #ANY }
  • 5. Example cluster policy cluster-preferences : [ { minimize : cores, precision : 1 } { maximize : freedisk, precision : 10 } ], cluster-policy : [ { replica : 0, nodeset : { nodeRole : overseer }}, { replica : <2, shard : #EACH, node: #ANY } ]
  • 6. Example cluster + named policies cluster-preferences : [ { minimize : cores, precision : 1 } { maximize : freedisk, precision : 20 } ], cluster-policy : [ { replica : 0, nodeset : { nodeRole : overseer }}, { replica : <2, shard : #EACH, node : #ANY } ], policies : { policy1 : [ { replica : <3, shard : #EACH, node : #ANY } ], policy2 : [ { replica : <5, shard : #EACH, nodeset: { diskType : ssd }} ] }
  • 8. Effective policy cluster-policy : [ { replica : 0, nodeset : { nodeRole : overseer }}, { replica : <2, shard : #EACH, node : #ANY } ], policies : { policy1 : [ { replica : <3, shard : #EACH, node : #ANY } ] } Effective policy1: { replica : <3, shard : #EACH, node : #ANY }, { replica : 0, nodeset : { nodeRole : overseer }}
  • 9. Effective policy cluster-policy : [ { replica : 0, nodeset : { nodeRole : overseer }}, { replica : <2, shard : #EACH, node : #ANY } ], policies : { policy2 : [ { replica : <5, shard : #EACH, nodeset : { diskType : ssd }} ] } Effective policy2: { replica : <5, shard : #EACH, nodeset : { diskType : ssd }}, { replica : 0, nodeset : { nodeRole : overseer }}, { replica : <2, shard : #EACH, node : #ANY }
  • 10.
  • 11. Challenges • It’s not always easy to figure out the effective policy • Actual replica placements may differ from expected • How should I design the rules to get the desired layout? • Will the suggested replica movements eventually lead to a stable and balanced cluster? – Can’t recklessly test this on a live cluster!
  • 13. Autoscaling Simulation Framework • Uses actual autoscaling code • Supports testing large virtual clusters, using accelerated time • Provides API for unit testing • Provides API for saving / loading snapshots of autoscaling data – Anonymized snapshots in 8.3 • Available as a command-line tool since Solr 8.1
  • 15. Tool functionality • Does NOT require a Solr instance to run simulations – Takes a snapshot of a live cluster’s state to initialize, save and load later • Uses existing or provided autoscaling config • Autoscaling data can be redacted before sharing • “What if” exploration – iteratively applies autoscaling suggestions
  • 17. Tuning workflow 1. Save a snapshot of a live cluster 2. Modify the Policy in autoscaling.json 3. Load a snapshot and apply the modified autoscaling.json – Optionally, run several iterations to see if all suggestions / violations are eventually resolved 4. Check the resulting layout of the simulated cluster 5. Repeat steps 2-4 as needed … 6. Profit! 😀
  • 18. Demo
  • 19. Summary •Autoscaling Policy Overview •Autoscaling Simulation Framework •Using the bin/solr autoscaling tool •Simulation-based Policy Tuning
  • 20. THANK YOUAndrzej Białecki Senior Solr Engineer, Lucidworks ab@lucidworks.com
  • 22. What’s in /autoscaling.json Config? • Autoscaling Policy: – Cluster preferences – determine the priority of candidate nodes for replica placement – Cluster-wide policy – Named policies (for use in collection configs) • Trigger configurations – Events, actions and listener
  • 23. Autoscaling Policy • Global rules put constraints on cores (regardless of collection) { cores : <10, node : #ANY } • Collection rules put constraints on replicas { replica: 33%, shard: #EACH, nodeset: { sysprop.zone: east }} { replica: 66%, shard: #EACH, nodeset: { sysprop.zone: west }} • Named policies define additional rules to be used for specific collections – May not contain global rules
  • 24. Effective collection policy • Applied to collections that use the named policy • Combination of the global cluster policy and a named policy – Effective policy holds ONLY unique rules with regard to the node selector: node, nodeset, nodeRole, heapUsage, sysprop.* … • Global rules using a different node selector are appended • Global rules using the same node selector are ignored
  • 25. Autoscaling snapshot • All data (JSON) to perform autoscaling calculations and simulate actions – Cluster information (live nodes) and collection information (ClusterState) – All ZooKeeper data – Node information and metrics (relevant to the current Policy) – Replica information and metrics (relevant to the current Policy) – Additional diagnostics and statistics • Optional consistent redaction – http://my.secret.cluster:8000/solr/mySecretCollection  http://N_0/solr/COLL_0 – … “node_name” : “my.secret.cluster_8000_solr”  “N_0_solr” – … “core” : “mySecretCollection_shard1_replica_n2” 
  • 26. $ bin/solr autoscaling -help -zkHost <HOST> Address of the Zookeeper ensemble; defaults to: localhost:9983 -a,--config <CONFIG> Autoscaling config file, defaults to the one deployed in the cluster. -c,--clusterState Show ClusterState (collections layout) -d,--diagnostics Show calculated diagnostics -s,--suggestions Show calculated suggestions -stats Show summarized collection & node statistics. -save <DIR> Store autoscaling snapshot of the current cluster. -load <DIR> Load autoscaling snapshot of the cluster instead of using the real one. -r,--redact Redact node and collection names (original names will be consistently randomized) -simulate Simulate execution of all suggestions. -ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of simulated execution. -i,--iterations <NUMBER> Max number of simulation iterations.
  • 27. $ bin/solr autoscaling -help -zkHost <HOST> Address of the Zookeeper ensemble; defaults to: localhost:9983 -a,--config <CONFIG> Autoscaling config file, defaults to the one deployed in the cluster. -c,--clusterState Show ClusterState (collections layout) -d,--diagnostics Show calculated diagnostics -s,--suggestions Show calculated suggestions -stats Show summarized collection & node statistics. -save <DIR> Store autoscaling snapshot of the current cluster. -load <DIR> Load autoscaling snapshot of the cluster instead of using the real one. -r,--redact Redact node and collection names (original names will be consistently randomized) -simulate Simulate execution of all suggestions. -ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of simulated execution. -i,--iterations <NUMBER> Max number of simulation iterations.
  • 28. $ bin/solr autoscaling -help -zkHost <HOST> Address of the Zookeeper ensemble; defaults to: localhost:9983 -a,--config <CONFIG> Autoscaling config file, defaults to the one deployed in the cluster. -c,--clusterState Show ClusterState (collections layout) -d,--diagnostics Show calculated diagnostics -s,--suggestions Show calculated suggestions -stats Show summarized collection & node statistics. -save <DIR> Store autoscaling snapshot of the current cluster. -load <DIR> Load autoscaling snapshot of the cluster instead of using the real one. -r,--redact Redact node and collection names (original names will be consistently randomized) -simulate Simulate execution of all suggestions. -ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of simulated execution. -i,--iterations <NUMBER> Max number of simulation iterations.
  • 29. $ bin/solr autoscaling -help -zkHost <HOST> Address of the Zookeeper ensemble; defaults to: localhost:9983 -a,--config <CONFIG> Autoscaling config file, defaults to the one deployed in the cluster. -c,--clusterState Show ClusterState (collections layout) -d,--diagnostics Show calculated diagnostics -s,--suggestions Show calculated suggestions -stats Show summarized collection & node statistics. -save <DIR> Store autoscaling snapshot of the current cluster. -load <DIR> Load autoscaling snapshot of the cluster instead of using the real one. -r,--redact Redact node and collection names (original names will be consistently randomized) -simulate Simulate execution of all suggestions. -ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of simulated execution. -i,--iterations <NUMBER> Max number of simulation iterations.
  • 30. $ bin/solr autoscaling -help -zkHost <HOST> Address of the Zookeeper ensemble; defaults to: localhost:9983 -a,--config <CONFIG> Autoscaling config file, defaults to the one deployed in the cluster. -c,--clusterState Show ClusterState (collections layout) -d,--diagnostics Show calculated diagnostics -s,--suggestions Show calculated suggestions -stats Show summarized collection & node statistics. -save <DIR> Store autoscaling snapshot of the current cluster. -load <DIR> Load autoscaling snapshot of the cluster instead of using the real one. -r,--redact Redact node and collection names (original names will be consistently randomized) -simulate Simulate execution of all suggestions. -ss,--saveSimulated <DIR> Save autoscaling shapshots at each step of simulated execution. -i,--iterations <NUMBER> Max number of simulation iterations.

Editor's Notes

  1. Initial placement of replicas on nodes when a collection is created (or replicas added) Movements of replicas in response to events (node lost, added, or other trigger events) Suggested movements of replicas based on the current cluster state and the policy Unresolved violations – replicas that violate current policy given the current cluster state
  2. Are you confused yet? Did I manage to confuse you? That was my goal.