[ovs-dev] [vsctl prereqs 2/5] vswitch: Make unique "name" columns immutable, to simplify transactions.
Ben Pfaff
blp at nicira.com
Fri Oct 22 19:55:36 UTC 2010
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 <strib at nicira.com>
---
vswitchd/vswitch.ovsschema | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/vswitchd/vswitch.ovsschema b/vswitchd/vswitch.ovsschema
index d872fdc..0be1b17 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": {
--
1.7.1
More information about the dev
mailing list