I created the first version of such class in the last patch for
https://issues.apache.org/jira/browse/ZOOKEEPER-784
One good thing to have in such class is peers partitioning. E.g. for 5-peers
ensemble, emulate a situation when 3 peers are in one datacenter, 2 are in
another, and datacenters become partitioned.
However this doesn't look easy. One solution is to abstract networking code
(leader-learner communication and leader election) and inject rules like if
i'm from datacenter 1, i'm not talking to datacenter 2 for testing.
I also posted generalized version of this question to stackoverflow:
http://bit.ly/clpq7u
Do you have some thoughts on how to better implement this?
On Fri, Jun 25, 2010 at 10:12 PM, Patrick Hunt ph...@apache.org wrote:
Sounds like a good idea to me, improving our ability to test quorum
configurations would be great.
Patrick
On 06/23/2010 11:46 AM, Sergey Doroshenko wrote:
While incorporating tests for read-only mode, I found I don't like how
QuorumBase, the main utility for quorum testing, is made -- it has 5
fields
for 5 QuorumPeers, also 5 fields for ports, 5 fields for directories. In
general, it's very inflexible (you can't easily shutdown particular peer
and
then bring up, etc) and hard-coded.
I think it would be nice to create a class which would setup 2n+1 peers,
and
it would be possible to start/stop all peers / particular peer / n+1 peers
etc. And make QuorumBase particular case of this class with n=2.
What do you think?
--
Regards, Sergey