OpenStack Block Storage (Cinder)
Go to file
Gorka Eguileor 7dd5b5ce7f Improve ChunkedBackupDriver hashlib calls
Currently we have 2 hashlib calls withing the ChunkedBackupDriver, one
to calculate the MD5 of the chunk and another to calculate the SHA256 of
the blocks within each chunk.

This patch improve interactions between cinder and the hashlib library
method calls by making sure MD5 and SHA256 related calls are execute in
a native thread to improve context switching responsiveness within
eventlet.

The MD5 of a 1GB chunk could take around 4 seconds, so the overhead of
creating a native thread is acceptable, and for the SHA256 instead of
creating a thread for each call we create a single thread to do the
calculations of all the blocks, thus making it cost effective.

Current code slices the data into blocks, which means that the data is being
copied, but this has now been switched to a memoryview object to take advantage
of the buffer protocol so copying of data is no longer necesary.

Change-Id: Ifb65b8008f30bc9cc4b6cd9b867a726ec4ed4707
(cherry picked from commit 671b02b504)
Conflicts:
	cinder/backup/chunkeddriver.py
(cherry picked from commit 2ec114d3c7)
(cherry picked from commit acfdbb62f7)
2018-05-03 15:18:38 +02:00
api-ref/source Merge "[api-ref]Add volumes/summary API doc" 2017-02-05 22:26:59 +00:00
cinder Improve ChunkedBackupDriver hashlib calls 2018-05-03 15:18:38 +02:00
doc Prepare for using standard python tests 2017-02-07 06:48:13 +01:00
etc/cinder Adds missing entries for Quobyte driver to rootwrap 2017-07-31 15:04:00 +02:00
rally-jobs Disable Rally backup-related scenarios 2016-02-15 20:44:52 +02:00
releasenotes Merge "Kaminario K2: Support duplicated FQDN in network" into stable/ocata 2018-04-27 05:38:42 +00:00
tools Prepare for using standard python tests 2017-02-07 06:48:13 +01: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 Update .gitreview for stable/ocata 2017-02-06 23:32:48 +00:00
.testr.conf Move integrated tests to 'functional' directory 2016-02-09 23:28:27 +02: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
README.rst Show team and repo badges on README 2016-11-25 13:39:11 +01:00
babel.cfg 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
requirements.txt Updated from global requirements 2017-05-15 23:29:29 +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 Add psycopg2 and PyMySQL to test-requirements 2016-12-26 17:50:55 +02:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/ocata 2017-02-06 23:32:49 +00:00

README.rst

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