I'm just not getting it. But then again it's late and the code is unfamiliar....

Anyway, I'm working on SOLR-6491 for which I want to have a
preferredLeader property in ZK.

I _think_ this fits best as a property in the same place as the
"leader" prop and it would be a boolean. I.e. the cluster state for
collection1/shards/shard1/replicas/core_node_2 might have a
"preferred_leader" attribute that could be set to "true". This would
be totally independent of whether or not "leader" was true, although
they would very often be the same. The "preferredLeader" is really
just supposed to be a hint at leader-election time.

Anyway, all this seems well and good but I don't see a convenient way
to set/clear a single property in a single node in clusterstate. What
I think I'm seeing is that the cluster state is only written by the
Overseer and the Overseer doesn't deal with this case yet. Things like
updateState seem like they have another purpose.

So I'm guessing that I need to write another command for Overseer to
implement, something like setnodeprop that takes a collection, shard,
node, and one or more (property/propval) pairs. Then, to change the
clusterstate I'd put together a ZkNodeProps and put it in the queue
returned from Overseer.getInQueue(zkClient). Then wait for it to be
processed before declaring victory (actually I'd only have to wait in
the test I think).

Mostly I'm looking for whether this is on the right track or
completely of base. Also giving folks a chance to object before I
invest the time and effort in something totally useless.

Thanks!
Erick

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to