RETIRED, further work has moved to Debian project infrastructure
Go to file
Gorka Eguileor 24bab6b7f6 Prevent claiming and updating races on worker
Current code for claiming and updating workers relays on the updated_at
field to determine when a DB record has changed.  This is usually enough
for any DB with sub-second resolution since the likeliness of us having
a race condition is very unlikely.

But not all DBs support sub-second resolution, and in those cases the
likeliness of a race condition increases considerable since we are
working with a 1 second granularity.

This patch completely removes the possibility of having race conditions
using a specific integer field that will be increased on each DB update.
It is compatible with both types of DBMs and will also work with rolling
upgrades.

The reason why we are not using the version counting provided by
SQLAlchemy [1] is because we require an ORM instance to use the feature,
and in some of our usages we don't have an instance to work with, and
adding an additional read query is unnecessarily inefficient.

Additionally we will no longer see spurious errors in unit test
test_do_cleanup_not_cleaning_already_claimed_by_us.

[1] http://docs.sqlalchemy.org/en/latest/orm/versioning.html

Implements: blueprint cinder-volume-active-active-support
Change-Id: Ief9333a2389d98f5d0a11d8da94d160de8ecce0e
2017-01-19 10:42:24 +01:00
api-ref/source Merge "Fix response bootable parameter type in api document" 2017-01-16 13:42:22 +00:00
cinder Prevent claiming and updating races on worker 2017-01-19 10:42:24 +01:00
doc Merge "Add prefix to user message event ids" 2017-01-18 16:31:23 +00:00
etc/cinder Allow triggering cleanup from API 2017-01-13 14:34:45 +01:00
rally-jobs Disable Rally backup-related scenarios 2016-02-15 20:44:52 +02:00
releasenotes Merge "Unity Driver: Backup volume via snapshot" 2017-01-19 06:04:38 +00:00
tools Prevent driver load failures from objects 2017-01-16 17:26:54 -06:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-10-17 19:09:37 +05:30
.gitignore Add driver list to doc build 2016-07-26 11:09:05 -05:00
.gitreview Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
.testr.conf Move integrated tests to 'functional' directory 2016-02-09 23:28:27 +02:00
babel.cfg Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
CONTRIBUTING.rst Update CONTRIBUTING.md to CONTRIBUTING.rst 2015-11-10 23:10:38 +08:00
HACKING.rst Hacking: Remove N333 oslo namespace import check 2016-12-12 10:08:31 -05:00
LICENSE Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
pylintrc Use six to fix imports on Python 3 2015-06-11 17:19:19 +02:00
README.rst Show team and repo badges on README 2016-11-25 13:39:11 +01:00
requirements.txt Updated from global requirements 2017-01-16 17:17:37 +00:00
setup.cfg Removing cinder-all binary 2016-10-02 15:46:57 -07:00
setup.py Updated from global requirements 2015-09-18 16:37:17 +00:00
test-requirements.txt Updated from global requirements 2016-12-15 09:01:48 +00:00
tox.ini Enable DeprecationWarning in test environments 2017-01-05 12:22:22 +00:00

Team and repository tags

image

CINDER

You have come across a storage service for an open cloud computing service. It has identified itself as Cinder. It was abstracted from the Nova project.

Getting Started

If you'd like to run from the master branch, you can clone the git repo:

git clone https://git.openstack.org/openstack/cinder.git

For developer information please see HACKING.rst

You can raise bugs here http://bugs.launchpad.net/cinder

Python client

https://git.openstack.org/cgit/openstack/python-cinderclient