[ovs-git] Open vSwitch: bridge: Don't pay attention to columns that vswitchd doesn't need. (master)

dev at openvswitch.org dev at openvswitch.org
Wed Aug 11 22:42:15 UTC 2010

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  e85bbd75f7eafe06edcd3edf88bb685e1541bcfe (commit)
       via  c547535a7c25ce4717b965b77877062796f12a95 (commit)
      from  f2f7be8696e030dbe6f7c859c4e2bd76fd363036 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e85bbd75f7eafe06edcd3edf88bb685e1541bcfe
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=e85bbd75f7eafe06edcd3edf88bb685e1541bcfe
Author: Ben Pfaff <blp at nicira.com>
bridge: Don't pay attention to columns that vswitchd doesn't need.
Not replicating unneeded columns has some value in avoiding CPU time and
bandwidth to the database.  In ovs-vswitchd, setting cur_cfg as write-only
also have great value in avoiding extra reconfiguration steps.  When
ovs-vsctl is used in its default mode this essentially avoids half of the
reconfigurations that ovs-vswitchd currently does.  What happens now is:

    1. ovs-vsctl updates the database and increments next_cfg.
    2. ovs-vswitchd notices the change to the database, reconfigures
       itself, then increments cur_cfg to match next_cfg.
    3. The database sends the change to cur_cfg back to ovs-vswitchd.
    4. ovs-vswitchd reconfigures itself a second time.

By not replicating cur_cfg we avoid step 3 and save a whole reconfiguration

Also, now that the database contains interface statistics, this avoids
reconfiguring every time that statistics are updated.

commit c547535a7c25ce4717b965b77877062796f12a95
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c547535a7c25ce4717b965b77877062796f12a95
Author: Ben Pfaff <blp at nicira.com>
ovsdb-idl: Make it possible to omit or pay less attention to columns.
ovs-vswitchd has no need to replicate some parts of the database.  In
particular, it doesn't need to replicate the bits that it never reads,
such as the external_ids column in the Open_vSwitch table.  This saves
some memory, CPU time, and bandwidth to the database.

Another type of column that benefits from special treatment is "write-only
columns", that is, those that ovs-vswitchd writes and keeps up-to-date but
never expects another client to write, such as the cur_cfg column in the
Open_vSwitch table.  If the IDL reports that the database has changed when
ovs-vswitchd updates such a column, then ovs-vswitchd reconfigures itself
for no reason, wasting CPU time.  This commit also adds support for such


Summary of changes:
 lib/ovsdb-idl-provider.h |   23 ++++++++
 lib/ovsdb-idl.c          |  125 +++++++++++++++++++++++++++++++++++++++------
 lib/ovsdb-idl.h          |    4 ++
 vswitchd/bridge.c        |   13 +++++
 4 files changed, 148 insertions(+), 17 deletions(-)

Open vSwitch

More information about the git mailing list