Thanks for writing these up.  Both incrementals look good.  Two very
minor aesthetic comments.  Go ahead and push.

+    If "isRoot" is omitted or specified as false, then any given row
+    in the table may exist only when it there is at least one
"only when there is"

-    def to_json(self):
+    def to_json(self, default_is_root=False):
+        """Returns this table schema serialized into JSON.
+
+        The "isRoot" member is included in the JSON only if its value would
Trailing whitespace here.

Ethan

On Wed, Mar 9, 2011 at 3:56 PM, Ben Pfaff <[email protected]> wrote:
> Here's an additional incremental that should be applied on top.  I
> haven't tested it yet.
>
> diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init
> index 92ab775..8ea5866 100755
> --- a/debian/openvswitch-switch.init
> +++ b/debian/openvswitch-switch.init
> @@ -232,6 +232,18 @@ case "$1" in
>             cksum=`ovsdb-tool db-cksum "$conf_file" | awk '{print $1}'`
>             cp "$conf_file" "$conf_file.backup$version-$cksum"
>
> +            # Compact database.  This is important if the old schema did not
> +            # enable garbage collection (i.e. if it did not have any tables
> +            # with "isRoot": true) but the new schema does.  In that 
> situation
> +            # the old database may contain a transaction that creates a 
> record
> +            # followed by a transaction that creates the first use of the
> +            # record.  Replaying that series of transactions against the new
> +            # database schema (as "convert" does) would cause the record to 
> be
> +            # dropped by the first transaction, then the second transaction
> +            # would cause a referential integrity failure (for a strong
> +            # reference).
> +            ovsdb-tool -vANY:console:emer compact $conf_file
> +
>             # Upgrade or downgrade schema and compact database.
>             ovsdb-tool -vANY:console:emer convert $conf_file $schema_file
>         fi
> diff --git a/xenserver/etc_init.d_openvswitch 
> b/xenserver/etc_init.d_openvswitch
> index 13b9d40..7300981 100755
> --- a/xenserver/etc_init.d_openvswitch
> +++ b/xenserver/etc_init.d_openvswitch
> @@ -341,7 +341,18 @@ function start {
>         cksum=`$ovsdb_tool db-cksum "$OVSDB_SERVER_DB" | awk '{print $1}'`
>         cp "$OVSDB_SERVER_DB" "$OVSDB_SERVER_DB.backup$version-$cksum"
>
> -        # Upgrade or downgrade schema and compact database.
> +        # Compact database.  This is important if the old schema did not 
> enable
> +        # garbage collection (i.e. if it did not have any tables with 
> "isRoot":
> +        # true) but the new schema does.  In that situation the old database
> +        # may contain a transaction that creates a record followed by a
> +        # transaction that creates the first use of the record.  Replaying 
> that
> +        # series of transactions against the new database schema (as 
> "convert"
> +        # does) would cause the record to be dropped by the first 
> transaction,
> +        # then the second transaction would cause a referential integrity
> +        # failure (for a strong reference).
> +        $ovsdb_tool -vANY:console:emer compact "$OVSDB_SERVER_DB"
> +
> +        # Upgrade or downgrade schema.
>         $ovsdb_tool -vANY:console:emer convert "$OVSDB_SERVER_DB" 
> "$VSWITCHD_OVSDB_SCHEMA"
>     fi
>
>
> _______________________________________________
> dev mailing list
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to