Hello - this approach not only solves the problem but also allows me to run different processing threads on other nodes.
Thanks! Markus -----Original message----- > From:Chris Hostetter <[email protected]> > Sent: Saturday 18th July 2015 1:00 > To: solr-user <[email protected]> > Subject: Re: Programmatically find out if node is overseer > > > : Hello - i need to run a thread on a single instance of a cloud so need > : to find out if current node is the overseer. I know we can already > : programmatically find out if this replica is the leader of a shard via > : isLeader(). I have looked everywhere but i cannot find an isOverseer. I > > At one point, i woked up a utility method to give internal plugins > access to an "isOverseer()" type utility method... > > https://issues.apache.org/jira/browse/SOLR-5823 > > ...but ultimately i abandoned this because i was completley forgetting > (until much much too late) that there's really no reason to assume that > any/all collections will have a single shard on the same node as the > overseer -- so having a plugin that only does stuff if it's running on the > overseer node is a really bad idea, because it might not run at all. (even > if it's configured in every collection) > > > what i ultimately wound up doing (see SOLR-5795) is implementing a > solution where every core (of each collection configured to want this > functionality) has a thread running (a TimedExecutor) which would do > nothing unless... > * my slice is active? (ie: not in the process of being shut down) > * my slice is 'first' in a sorted list of slices? > * i am currently the leader of my slice? > > ...that way when the timer goes off ever X minutes, at *most* one thread > fires (we might sporadically get no evens triggered if/when there is > leader election in progress for the slice that matters) > > the choice of "first" slice name alphabetically is purely becuase it's > something cheap to compute and garunteeded to be unique. > > > If you truly want exactly one thread for the entire cluster, regardless of > collection, you could do the same basic idea by just adding a "my > collection is 'first' in a sorted list of collection names?" > > > > -Hoss > http://www.lucidworks.com/ >
