ovs-vsctl: Replicate only tables and columns that are actually needed.
authorBen Pfaff <blp@nicira.com>
Tue, 16 Nov 2010 17:15:40 +0000 (09:15 -0800)
committerBen Pfaff <blp@nicira.com>
Tue, 16 Nov 2010 17:15:40 +0000 (09:15 -0800)
commite5e12280e1b6dbad79742ce43e9bb10545281f5e
treed831736f5a31e10570f867797f061b455f4d1cd2
parentef73f86cd4f7ec0cd2d3f9526167a0d0f6be4f63
ovs-vsctl: Replicate only tables and columns that are actually needed.

Until now, ovs-vsctl has always fetched a complete replica of the Open
vSwitch database at startup time.  This is a little expensive, but that is
not normally a problem because the database is small.   However, it can
cause problems when Open vSwitch is partially upgraded: if ovs-vsctl is
upgraded before the database, and new columns or tables were added to the
database schema in the newer version of Open vSwitch, then ovs-vsctl will
report an error and fail to work, because it cannot monitor the new
columns.  The same problem occurs if the database is upgraded before
ovs-vsctl and columns or tables were removed in the new version of Open
vSwitch.

This commit fixes the problem in the most common case, by making ovs-vsctl
only replicate the columns and tables in the database that it will actually
use during a given execution.  This will still fail if the database has
changed in major ways, but only if the changes would actually cause
problems for what ovs-vsctl is trying to do anyhow.

Bug #3388.
utilities/ovs-vsctl.c