On Mon, Apr 18, 2016 at 10:02:34AM -0600, Marcelo E. Magallon wrote:
> On Mon, Apr 11, 2016 at 03:44:09PM -0700, Ben Pfaff wrote:
> > On Fri, Apr 01, 2016 at 10:52:26AM -0700, Ben Pfaff wrote:
> > > I don't think it makes sense to stack replication and Raft-based HA.
> > > 
> > > Thinking about OpenSwitch, I guess that your use case is something
> > > like this: an OpenSwitch instance maintains, on-box, an
> > > authoritative database instance, and then the replication feature
> > > allows that database's content to be backed up somewhere else.  I
> > > see how that differs from the use case for Raft, where there is no
> > > preference for a particular database server to be authoritative.
> > > What I don't see yet is how or why that's useful.  What is the use
> > > case?
> > 
> > In case it wasn't clear, I didn't mean my message above to sound like
> > a "no, we won't take this".  Instead, I'm trying to understand the use
> > case better.  Perhaps there is room for both replication and HA in
> > OVSDB, but before I say "yes" to that, I want to understand both
> > cases.
> 
>  Yes, that's totally fair.
> 
>  We do not have a need for only 1+1 redundancy. We have a need in which
>  we have to remain operational with less than a quantum of instances in
>  operation, which raft can’t do unless you introduce modifications to
>  the algorithm (e.g. etcd or consul, I can't remember which one
>  exactly).
> 
>  Also, raft assumes that everybody's vote is equal. If you’re treating
>  multiple instances of OVS as one large virtual switch, you are not
>  running a separate version of OSPF on each instance, each feeding its
>  own version of the routing table into the database.  You have one OSPF
>  instance on a "stack commander" feeding the entire routing table into
>  the database. This is the "correct" state, no matter how many raft
>  members have voted on it. We grow to more than 2 members by setting up
>  multiple one way replications, all originating from the "commander". In
>  future patches, we will also implement two way replication so that the
>  member can write to his local database to reflect state that the
>  commander cannot know about (like port state) ... until that happens
>  daemons on a "member" can connect directly to the commander's OVSDB
>  instance and update the commander's state directly.
> 
>  This work is done in the conetxt of OpenSwitch (http://openswitch.net/,
>  probaly http://openswitch.net/documents/user/architecture is more
>  relevant to this discussion).  With the proposed patch we can have two
>  OVSDB instances each running on a TOR switch. One of the switches is
>  active and the other is a stand-by. The stand-by instance is constantly
>  replicating the active one. In case of a failure in the active, the
>  stand-by can take over and the control plane can be rebuilt from the
>  state stored in the database.
> 
>  I don't think the two approaches are in conflict with each other,
>  actually the complement each other. What I'm trying to figure out is
>  where they overlap (from a code point of view).

OK, I think I understand the use case better now.  I'll try to take a
look at the patches this week.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to