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
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss