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: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=7662e18d822869347de6a5273e88fd0d7c1addb2 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 c8a4963af..0c2aaf42a 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": {