[ovs-dev] [bug15983 3/4] ovs-ctl: Connect to remote OVSDB managers only after ovs-vswitchd starts.

Ansis Atteka aatteka at nicira.com
Wed Apr 10 20:23:48 UTC 2013


On Wed, Apr 10, 2013 at 10:35 AM, Ben Pfaff <blp at nicira.com> wrote:

> Until now, ovs-ctl has started ovsdb-server with the full set of remote
> managers configured.  This means that ovsdb-server immediately connects to
> these managers, before ovs-vswitchd even starts.  Because the Open vSwitch
> schema has several ephemeral columns, there will be considerable startup
> churn in the database.   For example, ovs-vswitchd will initially fill in
> the datapath-id and ofport columns as it starts and sets up the initial
> configuration.  This churn wastes bandwidth to the remote managers and has
> potential for confusing them.
>
> This commit reduces the churn by changing ovs-ctl so that ovsdb-server
> connects to the remote managers only after ovs-vswitchd has finished its
> initial configuration.  This means that remote managers will initially
> see a filled-in database, not one that has its ephemeral columns empty.
>
> This commit does not mean that managers can ignore the possibility that
> some columns have not yet been filled in.  For example, some columns will
> still be briefly blank after a new bridge or a new port is added at
> runtime, because adding a bridge or port occurs in one transaction (made by
> the client adding the port, e.g. ovs-vsctl) and filling in those columns
> happens in a different transaction (made by ovs-vswitchd).  But this commit
> does reduce the quantity of empty columns that I would expect a database
> client to observe in practice.
>
> Reported-by: Jeff Merrick <jmerrick at vmware.com>
> CC: Amar Padmanabhan <amar at nicira.com>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> Bug #15983.
> ---
>  AUTHORS              |    1 +
>  utilities/ovs-ctl.in |   12 +++++++++++-
>  2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/AUTHORS b/AUTHORS
> index 68bcf01..07dce20 100644
> --- a/AUTHORS
> +++ b/AUTHORS
> @@ -101,6 +101,7 @@ Alan Shieh              ashieh at nicira.com
>  Alban Browaeys          prahal at yahoo.com
>  Alex Yip                alex at nicira.com
>  Alexey I. Froloff       raorn at altlinux.org
> +Amar Padmanabhan        amar at nicira.com
>  Amey Bhide              abhide at nicira.com
>  André Ruß               andre.russ at hybris.com
>  Andreas Beckmann        debian at abeckmann.de
> diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
> index 5ad5f26..933c5d7 100755
> --- a/utilities/ovs-ctl.in
> +++ b/utilities/ovs-ctl.in
> @@ -188,7 +188,6 @@ start_ovsdb () {
>          done
>          set "$@" -vconsole:emer -vsyslog:err -vfile:info
>          set "$@" --remote=punix:"$DB_SOCK"
> -        set "$@" --remote=db:Open_vSwitch,Open_vSwitch,manager_options
>          set "$@" --private-key=db:Open_vSwitch,SSL,private_key
>          set "$@" --certificate=db:Open_vSwitch,SSL,certificate
>          set "$@" --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert
> @@ -229,6 +228,17 @@ start_forwarding () {
>             fi
>             start_daemon "$OVS_VSWITCHD_PRIORITY" "$OVS_VSWITCHD_WRAPPER"
> "$@"
>      fi
> +
> +    # Now that ovs-vswitchd has started and completed its initial
> +    # configuration, tell ovsdb-server to conenct to the remote managers.
>  We
> +    # used to do this at ovsdb-server startup time, but waiting for
> +    # ovs-vswitchd to finish configuring means that remote managers see
> less
> +    # churn in the database at startup or restart.  (For example, managers
> +    # won't briefly see empty datapath-id or ofport columns for records
> that
> +    # exist at startup.)
> +    action "Enabling remote OVSDB managers" \
> +       ovs-appctl -t ovsdb-server ovsdb-server/add-remote \
> +           db:Open_vSwitch,Open_vSwitch,manager_options
>  }
>

Looks good to me.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20130410/cdc57c45/attachment-0003.html>


More information about the dev mailing list