Ruby/Rails utilizing Solr in Master/Slave setup
Join the DZone community and get the full member experience.
Join For FreeApache Solr is a high-performance enterprise grade search server with a REST-like API. Documentation is provided to as xml, json or binary. It extends Lucene search library.
Ruby/Rails communicates with this awesome search server using the "Sunspot" (sunspot, sunspot_rails gem) library, to do a full-text search. This is a nice tutorial on how to use Solr in your Rails project using Sunspot.
Solr instances can be configured like a Slave and as a Master.
Configuration file 'solrconfig.xml' needs to be edited with a new RequestHandler for Replication to be configured:
{for Slave} :: to either poll at their Master's machine address at regular intervals
{for Master} :: or commit the changes and clone the mentioned configuration files when Slave asks for it
for detailed reference: http://wiki.apache.org/solr/SolrReplication
for optimizaed ways using ssh/rsync based replication: http://wiki.apache.org/solr/CollectionDistribution
Now, here you can even use a single configuration file with the 'Replication' node having fields for both Master and Slave with an 'enable' child-node with possible values 'true|false' set as per requirement for Master & Slave nodes.
Sunspot dealing with a master/slave Solr set-up, gets $ProjectRoot/config/sunspot.yml
If you have more than one slave, they need to be handled by a load-balancer and the DNS Entry for that Load Balancer comes here in slave's hostname field.
Also, the fields 'master_hostname' and 'master_port' below 'solr:' are not mandatory and supposed to be referred from the 'master_solr:' block, but it has been observed in some cases that mentioning them explicitly avoids non-picking of configuration.
By default, Sunspot configures Ruby/Rails applications to Write-Only, to Master, and to Read-Only from Slave.
Source: http://tekwalk.blogspot.com/2011/11/rubyrails-utilizing-solr-in-masterslave.html
Ruby/Rails communicates with this awesome search server using the "Sunspot" (sunspot, sunspot_rails gem) library, to do a full-text search. This is a nice tutorial on how to use Solr in your Rails project using Sunspot.
Solr: Slave and Master
Solr can perform as a standalone search server and even as master/slave instances collaborating with each other, with slaves polling master to sync-in their data.Solr instances can be configured like a Slave and as a Master.
Configuration file 'solrconfig.xml' needs to be edited with a new RequestHandler for Replication to be configured:
{for Slave} :: to either poll at their Master's machine address at regular intervals
{for Master} :: or commit the changes and clone the mentioned configuration files when Slave asks for it
for detailed reference: http://wiki.apache.org/solr/SolrReplication
for optimizaed ways using ssh/rsync based replication: http://wiki.apache.org/solr/CollectionDistribution
Now, here you can even use a single configuration file with the 'Replication' node having fields for both Master and Slave with an 'enable' child-node with possible values 'true|false' set as per requirement for Master & Slave nodes.
Sunspot
Sunspot dealing with a single Solr instance, gets $ProjectRoot/config/sunspot.ymlproduction: solr: hostname: standaloneSolr.mydomain.com port: 8983 log_level: WARNING
Sunspot dealing with a master/slave Solr set-up, gets $ProjectRoot/config/sunspot.yml
production: solr: hostname: slaveSolr.mydomain.com port: 8983 master_hostname: masterSolr.mydomain.com master_port: 8983 log_level: WARNING master_solr: hostname: masterSolr.mydomain.com port: 8983 log_level: WARNING
If you have more than one slave, they need to be handled by a load-balancer and the DNS Entry for that Load Balancer comes here in slave's hostname field.
Also, the fields 'master_hostname' and 'master_port' below 'solr:' are not mandatory and supposed to be referred from the 'master_solr:' block, but it has been observed in some cases that mentioning them explicitly avoids non-picking of configuration.
By default, Sunspot configures Ruby/Rails applications to Write-Only, to Master, and to Read-Only from Slave.
Source: http://tekwalk.blogspot.com/2011/11/rubyrails-utilizing-solr-in-masterslave.html
Master/slave (technology)
master
Opinions expressed by DZone contributors are their own.
Comments