[ovs-dev] OVN - Pluggable Distributed DB Infrastructure for OVSDB

Gal Sagie gal.sagie at gmail.com
Thu Jun 25 11:21:07 UTC 2015


Hello All,

Currently OVN uses centralized ovsdb-server to serve the Northbound and the
Southbound DB to all the local controllers (sitting at each of the compute
nodes).

It is a single point of failure and probably a major bottleneck to the
operation of OVN in scale.
I know there are efforts to make ovsdb-server distributed using Raft, while
i think this is an important effort i believe that open source is about
being open to alternative and choices while reusing other open and reliable
solutions, this is why i want to suggest the following idea:

Design the DB distribution layer in a pluggable manner, doing so, users can
pick alternate distributed DB options that are reliable and have been in
the market for some time which also have performance optimizations. (Of
course that the default plugin will use the ovsdb-server implementation)
I think an important aspect in this regards is that different
environments/setups with different scale needs can have different solutions
that fits them, the ability to choose which back end to use can help in
these scenarios.

If we analyze OVSDB, there are 3 major areas an alternate solution needs to
support:

1) The DB JSON schema itself
     Should be the same between all solutions

2) The OVSDB protocol features
    like: monitor (publish-subscribe) / transactions / garbage collection /
locking
           sync-verify (multi writes/reads for same values)

    It is important to note that any pluggable solution must support all
these features

3) The connection between the client and the server
     This i believe can be pluggable as long as the messages that are
exchanged (the protocol
     features) are still exchanged

Then the only thing that needs to be modified is basically the client
library which can map
the API's to the client requests depending on the picked solution.

Looking forward hearing your opinions.

Thanks



More information about the dev mailing list