Hi Han, That doc helps. I will run some tests and update here. The use case I want to cover is snapshot/rollback and backup/restore.
======== Actually, "at-least-once" consistency, because OVSDB does not have a session mechanism to drop duplicate transactions if a connection drops after the server commits it but before the client receives the result. ======== I saw duplicated datapath bindings for the same logical switch once, if you recall. This may explain that. The ovn-northd connection to sb-db is dropped before receiving the result. So ovn-northd initiates another transaction to create datapath binding for the same logical switch. I see two ways to improve it. 1) On client side, if the connection is broken while waiting for the result of a transaction, the client checks the transaction state, committed or not, when it reconnects to the leader (maybe a different node). Do we have such check today? 2) I see client connection is dropped by the leader when it's busy. I don't think this is a good way to control the traffic. The server can cache and hold the request when it's busy, or even push back. Dropping connection is not a good option. Any thoughts here? Thanks! Tony From: Han Zhou<mailto:hz...@ovn.org> Sent: Wednesday, July 29, 2020 11:38 PM To: Tony Liu<mailto:tonyliu0...@hotmail.com> Cc: ovs-discuss<mailto:ovs-discuss@openvswitch.org>; ovs-dev<mailto:ovs-...@openvswitch.org> Subject: Re: [ovs-discuss] [OVN] DB backup and restore On Wed, Jul 29, 2020 at 10:58 PM Tony Liu <tonyliu0...@hotmail.com<mailto:tonyliu0...@hotmail.com>> wrote: > > Hi, > > > > There is any guidance to backup and restore OVN nb-db and sb-db? > > > > Is /var/lib/openvswitch/ovn-[ns]b/ovn[ns]b.db the only database file? > > > > For 3-node DB cluster, is replication 3 (the data is replicated onto > > All 3 nodes)? > > > > Are DB files on 3 nodes identical? > > > > If I stop a DB follower and empty the DB file on the follower node, > > when I start it back, is the whole DB going to be replicated to it? > > > > To backup the DB, is it OK to copy the DB file from any node, assuming > > no transaction ongoing? > > > > Is the following going to work to restore the DB? > > * Stop all 3 DBs. > > * Copy backup DB file to one node, empty DB file on the rest two nodes. > > * Bootstrap the node with DB file. > > * Start the rest two nodes to join the cluster. > For ovsdb operations, please refer to "man 7 ovsdb", or here: https://github.com/openvswitch/ovs/blob/master/Documentation/ref/ovsdb.7.rst > > > Do I need to restore sb-db as well? Or restore nb-db only and let > > ovn-northd to sync data from nb-db to sb-db. Chassis data should be > > updated by onv-controller? > You don't have to restore sb-db. ovn-northd and ovn-controllers will sync the data in SB DB. However, it may take quite some time to sync if the scale is large. Also, remember that the mac_binding table in SB will not be restored by ovn-controller because it is populated as a result of ARP packets handling by ovn-controller. The entries will be generated again only if new ARP packets are observed by ovn-controller. > > > I am running scaling test. It takes quite a lot of time to build > > Configurations. Wondering if I can back and restore DB to rollback > > to some checkpoint to avoid restart all over. > > > > > > Thanks! > > > > Tony > > > > _______________________________________________ > discuss mailing list > disc...@openvswitch.org<mailto:disc...@openvswitch.org> > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
_______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss