I want to set up Solr replication between a master and slave, where no
automatic polling every X minutes happens, instead the slave only
replicates on command. [1]
So the basic question is: What's the best way to do that? But I'll
provide what I've been doing etc., for anyone interested.
Until recently, my appliation was running on Solr 1.4. I had a setup
that was working to accomplish this in Solr 1.4, but as I work on moving
it to Solr 4.3, it's unclear to me if it can/will work the same way.
In Solr 1.4, on slave, I supplied a masterUrl, but did NOT supply any
pollInterval at all on slave. I did NOT supply an "enable"
"false" in slave, because I think that would have prevented even manual
replication.
This seemed to result in the slave never polling, although I'm not sure
if that was just an accident of Solr implementation or not. Can anyone
say if the same thing would happen in Solr 4.3? If I look at the admin
screen for my slave set up this way in Solr 4.3, it does say "polling
enabled", but I realize that doesn't neccesarily mean any polling will
take place, since I've set no pollInterval.
In Solr 1.4 under this setup, I could go to the slave's
admin/replication, and there was a "replicate now" button that I could
use for manually triggered replication. This button seems to no longer
be there in 4.3 replication admin screen, although I suppose I could
still, somewhat less conveniently, issue a
`replication?command=fetchindex` to the slave, to manually trigger a
replication?
Thanks for any advice or ideas.
[1]: Why, you ask? The master is actually my 'indexing' server. Due to
business needs, indexing only happens in bulk/mass indexing, and only
happens periodically -- sometimes nightly, sometimes less. So I index on
master, at a periodic schedule, and then when indexing is complete and
verified, tell slave to replicate. I don't want slave accidentally
replicating in the middle of the bulk indexing process either, when the
index might be in an unfinished state.