[ovs-dev] RFC: OVN database options

Ben Pfaff blp at ovn.org
Thu Mar 10 18:04:21 UTC 2016


On Thu, Mar 10, 2016 at 11:26:29AM +0100, Ivan Kelly wrote:
> >     - Zookeeper.  The issues here are similar to those for etcd.
> >       Also, Zookeeper transactions don't seem to be isolated.
> Zookeeper transactions can be isolated depending on what level of
> isolation you need.
> A setData on a node operation can contain a version, so that it fails
> if that node has changed since the version. This means with a multi[1]
> of setData operations, you can effectively get a snapshot isolation
> level of isolation. For serializable, you could probably shoehorn it
> in by rewriting all nodes that you've written.

Thanks, that helps.  (I couldn't spend too much time on each database
given the number I looked at.)

> Regarding the notification issue, it sounds like what you'd want is to
> access the transaction log. ZooKeeper kinda does this with observer
> nodes, where the transaction log is shipped to read only nodes to
> scale out reads. OVN could do something similar where by each replica
> tails the transaction log directly, and applies the updates to their
> local copy. Note that the transaction log isn't officially exposed
> right now, but it's easy to get at, since observers already do it.

Thanks.  I've updated the paragraph:

    - Zookeeper.  The ZK model is similar to etc so it may have
      similar issues.  Also, ZK makes the transaction log available,
      for use by observer nodes to scale out reads, and this may be
      another way for the clients to track table changes.

It sounds like you know ZK well, so maybe you can answer a question for
me.  The documentation I read for ZK talks about how it's often used to
manage pointers to other resources.  This implies, to my mind, that it's
not suitable for handling significant volumes of data but.  Is that a
true inference?



More information about the dev mailing list