Ok, thanks. I'll take a look into using the ADDREPLICA API.

I've found a few examples of the znode format. It seems to be IP:PORT_solr
(where I presume _solr is the name of the context or something?).

Is there a way to discover what a znode is? i.e. Can my new node determine
what it's znode is? Or is my only option to use the IP:PORT_solr convention?




On 20 December 2017 at 11:33, Erick Erickson <erickerick...@gmail.com>
wrote:

> Yes, ADDREPLICA is mostly equivalent, it's also supported going forward....
>
> LegacyCloud should work temporarily, I'd change it going forward though.
>
> Finally, you'll want to add a "node" parameter to insure your replica is
> placed on the exact node you want, see the livenodes znode for the
> format...
>
> On Dec 19, 2017 16:06, "Greg Roodt" <gro...@gmail.com> wrote:
>
> > Thanks for the reply. So it sounds like the method that I'm using to
> > automatically add replicas on Solr 6.2 is not recommended and not going
> to
> > be supported in future versions.
> >
> > A couple of follow up questions then:
> > * Do you know if running with legacyCloud=true will make this behaviour
> > work "for now" until I can find a better way of doing this?
> > * Will it be enough for my newly added nodes to then startup solr (with
> > correct ZK_HOST) and call the ADDREPLICA API as follows?
> > ```
> > curl http://localhost:port
> > /solr/admin/collections?action=ADDREPLICA&collection=blah&shard=*shard1*
> > ```
> > That seems mostly equivalent to writing that core.properties file that I
> am
> > using in 6.2
> >
> >
> >
> >
> >
> > On 20 December 2017 at 09:34, Shawn Heisey <apa...@elyograg.org> wrote:
> >
> > > On 12/19/2017 3:06 PM, Greg Roodt wrote:
> > > > Thanks for your reply Erick.
> > > >
> > > > This is what I'm doing at the moment with Solr 6.2 (I was mistaken,
> > > before
> > > > I said 6.1).
> > > >
> > > > 1. A new instance comes online
> > > > 2. Systemd starts solr with a custom start.sh script
> > > > 3. This script creates a core.properties file that looks like this:
> > > > ```
> > > > name=blah
> > > > shard=shard1
> > > > ```
> > > > 4. Script starts solr via the jar.
> > > > ```
> > > > java -DzkHost=....... -jar start.jar
> > > > ```
> > >
> > > The way that we would expect this to be normally done is a little
> > > different.  Adding a node to the cloud normally will NOT copy any
> > > indexes.  You have basically tricked SolrCloud into adding the replica
> > > automatically by creating a core before Solr starts.  SolrCloud
> > > incorporates the new core into the cluster according to the info that
> > > you have put in core.properties, notices that it has no index, and
> > > replicates it from the existing leader.
> > >
> > > Normally, what we would expect for adding a new node is this:
> > >
> > >  * Run the service installer script on the new machine
> > >  * Add a ZK_HOST variable to /etc/default/solr.in.sh
> > >  * Use "service solr restart"to get Solr to join the cloud
> > >  * Call the ADDREPLICA action on the Collections API
> > >
> > > The reason that your method works is that currently, the "truth" about
> > > the cluster is a mixture of what's in ZooKeeper and what's actually
> > > present on each Solr instance.
> > >
> > > There is an effort to change this so that ZooKeeper is the sole source
> > > of truth, and if a core is found that the ZK database doesn't know
> > > about, it won't be started, because it's not a known part of the
> > > cluster.  If this goal is realized in a future version of Solr, then
> the
> > > method you're currently using is not going to work like it does at the
> > > moment.  I do not know how much of this has been done, but I know that
> > > there have been people working on it.
> > >
> > > Thanks,
> > > Shawn
> > >
> > >
> >
>

Reply via email to