From: Ben Pfaff Date: Fri, 22 Oct 2010 17:19:13 +0000 (-0700) Subject: vswitch: Make unique "name" columns immutable, to simplify transactions. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a9a2e4b2d12581b13d6faf29892266796f1126a;p=openvswitch vswitch: Make unique "name" columns immutable, to simplify transactions. OVSDB has transactions but not locking, so a transaction that must maintain an invariant must check that the starting state is what it expects. For example, to add a bridge a client must verify that the new bridge's name does not conflict with any existing bridge's name, given that the set of bridges might have changed. One way to do that is for the client to verify that that the set of bridges is the same and that none of the bridges has been renamed to the new bridge's name. By making bridge names immutable, the latter part of the check can be omitted. Mirror names are not required to be unique so this commit does not make them immutable. CC: Jeremy Stribling --- diff --git a/vswitchd/vswitch.ovsschema b/vswitchd/vswitch.ovsschema index d872fdc5..0be1b176 100644 --- a/vswitchd/vswitch.ovsschema +++ b/vswitchd/vswitch.ovsschema @@ -36,7 +36,8 @@ "Bridge": { "columns": { "name": { - "type": "string"}, + "type": "string", + "mutable": false}, "datapath_type": { "type": "string"}, "datapath_id": { @@ -78,7 +79,8 @@ "Port": { "columns": { "name": { - "type": "string"}, + "type": "string", + "mutable": false}, "interfaces": { "type": {"key": {"type": "uuid", "refTable": "Interface"}, @@ -115,7 +117,8 @@ "Interface": { "columns": { "name": { - "type": "string"}, + "type": "string", + "mutable": false}, "type": { "type": "string"}, "options": {