summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-04-06 19:42:51 +0000
committerGerrit Code Review <review@openstack.org>2015-04-06 19:42:51 +0000
commit579aad0c4162296288393fe28abdb6b2784d6e50 (patch)
tree775c213d75174fc6069ed4da7a508fb168d83c09
parent0c7535b233f14fb6788c79b739d7d3b737191904 (diff)
parente3cfba873bf02c4d26e2e1a275b9412b7eb54fa0 (diff)
downloadkeystone-579aad0c4162296288393fe28abdb6b2784d6e50.tar.gz
Merge "Speed up memcache lock" into stable/juno
-rw-r--r--keystone/common/kvs/backends/memcached.py12
1 files changed, 4 insertions, 8 deletions
diff --git a/keystone/common/kvs/backends/memcached.py b/keystone/common/kvs/backends/memcached.py
index 0d8eeb8b5..463243db8 100644
--- a/keystone/common/kvs/backends/memcached.py
+++ b/keystone/common/kvs/backends/memcached.py
@@ -57,20 +57,16 @@ class MemcachedLock(object):
def acquire(self, wait=True):
client = self.client_fn()
- i = 0
- while True:
+ for i in range(self.max_lock_attempts):
if client.add(self.key, 1, self.lock_timeout):
return True
elif not wait:
return False
else:
- sleep_time = (((i + 1) * random.random()) + 2 ** i) / 2.5
+ sleep_time = random.random()
time.sleep(sleep_time)
- if i <= self.max_lock_attempts:
- i += 1
- else:
- raise exception.UnexpectedError(
- _('Maximum lock attempts on %s occurred.') % self.key)
+ raise exception.UnexpectedError(
+ _('Maximum lock attempts on %s occurred.') % self.key)
def release(self):
client = self.client_fn()