I think a main thing here is a pluggable api.If someone already has etcd,
zookeeper, consul etc. In their infrastructure they should be able to
reuse.Like wise if you have multiple bulkheaded broker sets it be useful to be
able to reuse the same quorum compontent e.g. in ZK that would be a different
base root on the tree path per broker set.Likewise that said we should have
some out the box support plugins from the community. Obviously what ever we do
whilst it maybe a break change e.g. a 3.0 release there must be a migration
solution (accepted that it may need outage) for existing brokers that works via
the pluggable api not to a specific solution.Also anything from a management
api pov should also be visible in the web management console. Sent from my
Samsung Galaxy smartphone.
-------- Original message --------From: Clebert Suconic
<clebert.suco...@gmail.com> Date: 09/03/2020 14:55 (GMT+00:00) To:
dev@activemq.apache.org Subject: Re: Re: [DISCUSSION] New Quorum vote pluggable
implementation I think we should have a management component, that runs outside
ofthe broker and would manage quorum.That way you can have the quorum running
outside of the broker itself.which would improve the need of multiple brokers
to manage the quorum.You just need Quorum Managers in distinct places.I had
recently worked with a software called Ceph... And Ceph has theconcept of
managers working away from their "broker" (it's not abroker.. it's a DB, but in
a sense it's the same concept here). Ithink we should do the same.I have talked
to Franz and other guys in private.. and it seemseverybody these days mention
raft consensus algorithm. Perhaps weshould look into it.. and make it
pluggable. I believe there's JRaftworking on top of JGroups already.If we make
this pluggable and make it a manager a separate process,this will be a big win
IMO.On Tue, Mar 3, 2020 at 9:55 AM Andy Taylor <andy.tayl...@gmail.com>
wrote:>> Personally I wouldn't use Zookeeper, I think there are better options.
Also> looks like Kafka are replacing it as well. Saying that, it doesn't
really> matter what is used, the main thing is we need to remove the burden of>
providing consensus away from the broker.>> It would make sense to make it
pluggable.>> A>> On Mon, 2 Mar 2020 at 19:19, KimmKing <kimmk...@apache.org>
wrote:>> > Can't agree any more.> > The HA&Replication is more and more
important for a modern messaging> > system.> > Other apache opensource mq,
kafka/rocketmq/pulsar maybe referred to.> >> >> > And In my experience this
also bring some extra-complexity about> > performance/brainsplitting issues
when rebalance data.> >> > At 2020-03-02 20:33:31, "Martyn Taylor"
<m...@martyntaylor.me> wrote:> > >I think this is a great idea Franz. The HA
and replication components> > have> > >been a source of issues over the years.
Two problems I see are that 1)> > >there isn't a clean separation between the
consensus mechanism and the> > >replication, and 2) the consensus algorithm
used in Artemis isn't based on> > >any standard algorithm or a research paper.
Hence, all the issues that> > >were caught over the years due to various edge
cases. Integration with> > >ZooKeeper seems like the obvious solution (i.e.
push the consensus logic> > >off to a third party lib). I suspect though, this
will be a considerable> > >amount of work and is likely to introduce new
issues, so I'd proceed with> > >caution.> > >> > >Cheers> > >> > >> > >> > >On
Mon, Mar 2, 2020 at 8:28 AM nigro_franz <nigro....@gmail.com> wrote:> > >> > >>
Hi folks,> > >>> > >> especially due to the requirements of the current Artemis
quorum vote> > >> algorithm, we've thought to re-implementing it with a
different focus in> > >> mind:> > >> 1) to make it pluggable (eg by using the
many Raft implementations,> > >> ZooKeeper or others)> > >> 2) to cleanly
separate the election phase and cluster member states (ie> > it> > >> should be
the Topology shared between them)> > >> 3) to simplify most common setups in
both amount of configuration and> > >> requirements (eg "witness" nodes could
be implemented to get a minimum> > 2*n> > >> +1 quorum of nodes instead of
forcing 2*n + 1 master-backup pairs)> > >> 4) [OPTIONALLY] to reduce/eliminate
implicit "good practices" in term of> > >> order of actions to be performed on
nodes in "special states" eg proper> > >> restart sequence after failover or
similar cases> > >> 5) [OPTIONALLY] to make shared-store and replication
behaviour more> > >> similar:> > >> journal's presence should be the only
difference between the 2s> > >>> > >> A proposal of steps to be followed to get
this:> > >> 1) abstract away the current quorum vote: it requires extra-care
because> > >> the> > >> logic is melted together with the
replication/clustering behaviour> > >> 2) refactor it in order to separate
election phase and cluster member> > >> states> > >> 3) implement a RI version
of such APIs> > >>> > >> Post-actions to help people adopt it, but need to be
thought upfront:> > >> 1) a clean upgrade path for current HA replication
users> > >> 2) deprecate or integrate the current HA replication into the new>
> version> > >>> > >> I've opened this here because many of the HA replication
users are devs> > too> > >> and given that this isn't yet implemented: we're
stull in the> > >> design/proposal phase, so anyone that want to express their>
> >> ideas/opinions/POC on this, is invited to talk here ;)> > >>> > >>
Cheers,> > >> Franz> > >>> > >>> > >>> > >>> > >>> > >> --> > >> Sent from:> >
>> http://activemq.2283324.n4.nabble.com/ActiveMQ-Dev-f2368404.html> > >>> >--
Clebert Suconic