From 1a9a2e4b2d12581b13d6faf29892266796f1126a Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 22 Oct 2010 10:19:13 -0700 Subject: [PATCH] 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 --- vswitchd/vswitch.ovsschema | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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": { -- 2.30.2