curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jordan Zimmerman <jor...@jordanzimmerman.com>
Subject Re: LeaderSelector Executor
Date Wed, 28 Aug 2013 16:32:29 GMT
This looks very broken to me. Please open an issue for this.

-Jordan

On Aug 28, 2013, at 7:44 AM, Henrik Nordvik <henrikno@gmail.com> wrote:

> Hi,
> 
> The LeaderSelector has a constructor which takes in ThreadFactory and Executor as parameters.
The "default" constructor uses MoreExecutors.sameThreadExecutor().
> I tried using my own ThreadPool with multiple threads, because I thought that was they
way of using multiple leaders. 
> When I did that, to my surprise, it started multiple leaders per path. After reading
the code it makes sense, it only guarantees that you are the leader when submitting the thread
to the executor.
> 
> It seems to me like using anything other than sameThreadExecutor makes little sense.
> When would you want to use it?
> 
> 
> Example snippet:
>     LeaderSelectorListener listener = new MyLeaderSelectorListener("1");
>     ExecutorService executorPool = Executors.newFixedThreadPool(20);
>     LeaderSelector leaderSelector = new LeaderSelector(client, path, threadFactory, executorPool,
listener);
>     leaderSelector.autoRequeue();
>     leaderSelector.start();
>     // MyLeaderSelectorListener.takeLeadership is called multiple times here, even though
it is in a sleep-loop.
> 
> 
> --
> Henrik Nordvik


Mime
View raw message