OpenStack Networking (Neutron)
Go to file
Terry Wilson 26766963c6 Clean up ovsdb-native's use of verify()
When updating an ovsdb set-type column, the existing code does
the following:

1. Read the existing column value
2. Call verify() to cause a write failure if something else
   modifies the column before we commit
3. Append the value to our local copy of the column
4. Assign the local value to the object.column to trigger
   __setattr__ to write the value to the database

If verify() fails, which it *very* often does in a test
environment or a busy system, ovsdb-server will respond with a
TRY_AGAIN response which will cause the whole process to start
over.

In the 2.6 cycle, Row.addvalue()/delvalue() methods were added
which use OVDB's native 'mutate' methods to handle adding/deleting
from a set/map-type column. Using these means calling verify() is
no longer required and things will proceed *much* more efficiently.

Bug #1627106 where we get frequent TimeoutExceptions appears to be
related. Eliminating the frequent TRY_AGAIN responses, in my local
testing, also eliminates the TimeoutExceptions. This doesn't mean
that the underlying issue is resolved, but it may be avoided.
Related-Bug: #1627106

Change-Id: I26c7731f5dbd3bd2955dbfa18a7c41517da63e6e
2017-02-14 09:34:36 -06:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin XenAPI: add support for conntrack with XenServer 2016-09-23 02:34:25 +00:00
devstack Use gate_hook to enable q-trunk for rally. 2017-01-05 23:31:10 +09:00
doc Merge "Revert "Linux Bridge: driver support for QoS egress minimum bandwidth"" 2017-02-10 02:31:24 +00:00
etc Revert "Linux Bridge: driver support for QoS egress minimum bandwidth" 2017-02-09 19:11:00 +00:00
neutron Clean up ovsdb-native's use of verify() 2017-02-14 09:34:36 -06:00
rally-jobs rally trunk port list 2016-12-10 06:15:34 -08:00
releasenotes Merge "Terminate macvtap agent when physical_interface_mapping config not present" 2017-02-06 11:17:03 +00:00
tools Merge "configure_for_func_testing.sh: Remove neutron-legacy inclusion" 2017-02-03 21:02:24 +00:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Automatically generate neutron core configuration files 2015-11-27 15:22:59 +00:00
.gitreview Fix .gitreview to not point at a branch 2015-08-17 13:51:51 -06:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Fix typo in .pylintrc file 2017-02-09 01:07:07 +00:00
.testr.conf Allow more time for DB migration tests 2016-09-21 20:54:41 -04:00
CONTRIBUTING.rst Make crystal clear how to contribute/approach the neutron community 2016-10-28 11:49:44 -07:00
HACKING.rst Merge "Replace assertEqual(None, *) with assertIsNone in tests" 2016-11-22 02:15:19 +00:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
README.rst Show team and repo badges on README 2016-11-25 15:35:21 +01:00
TESTING.rst Merge "TrivialFix: Modify the spelling mistake" 2017-02-03 09:59:05 +00:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
bindep.txt Fix periodic jobs: Add databases to bindep.txt 2016-10-09 06:31:00 +02:00
requirements.txt Updated from global requirements 2017-02-03 00:19:33 +00:00
run_tests.sh Deprecate run_tests.sh 2016-11-08 03:50:20 +00:00
setup.cfg Merge "Remove python 3.4 support" 2017-02-08 05:09:55 +00:00
setup.py Updated from global requirements 2015-09-21 18:56:49 +00:00
test-requirements.txt Updated from global requirements 2016-12-28 09:11:12 +00:00
tox.ini Remove python 3.4 support 2017-01-08 05:37:48 -08:00

README.rst

Team and repository tags

image

Welcome!

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute:

CONTRIBUTING.rst