diff options
author | Alexander Makarov <amakarov@mirantis.com> | 2014-11-24 16:05:40 +0300 |
---|---|---|
committer | Eric Brown <browne@vmware.com> | 2015-03-21 02:44:54 +0000 |
commit | e3cfba873bf02c4d26e2e1a275b9412b7eb54fa0 (patch) | |
tree | 18a9d132a53c3c923e5f048a59932b9d43a93c14 | |
parent | 02917e381fecfe8cf7b39ccd4dce1b074c21ca0e (diff) | |
download | keystone-e3cfba873bf02c4d26e2e1a275b9412b7eb54fa0.tar.gz |
Speed up memcache lock
Simplify sleep timeouts calculation removing progressive scale.
Closes-bug: #1395688
Change-Id: I0f1b620df9631a4b081e8c0be93d8a9b2d60e105
(cherry picked from commit ee93b64af4f64e8e7b903e70d44eb021ab97c9ef)
-rw-r--r-- | keystone/common/kvs/backends/memcached.py | 12 |
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() |