From 9d77f05d8ebb9b5643af2debbef85fb972a633b8 Mon Sep 17 00:00:00 2001 From: Tobias Henkel Date: Thu, 22 Nov 2018 07:05:58 +0100 Subject: [PATCH] Only setup zNode caches in launcher We currently only need to setup the zNode caches in the launcher. Within the commandline client and the builders this is just unneccessary work. Change-Id: I03aa2a11b75cab3932e4b45c5e964811a7e0b3d4 --- nodepool/builder.py | 2 +- nodepool/cmd/nodepoolcmd.py | 2 +- nodepool/tests/__init__.py | 2 +- nodepool/zk.py | 20 +++++++++++--------- tools/print-zk.py | 2 +- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/nodepool/builder.py b/nodepool/builder.py index bb00e6771..dce709e9e 100755 --- a/nodepool/builder.py +++ b/nodepool/builder.py @@ -1216,7 +1216,7 @@ class NodePoolBuilder(object): builder_id = self._getBuilderID(builder_id_file) # All worker threads share a single ZooKeeper instance/connection. - self.zk = zk.ZooKeeper() + self.zk = zk.ZooKeeper(enable_cache=False) self.zk.connect(list(self._config.zookeeper_servers.values())) self.log.debug('Starting listener for build jobs') diff --git a/nodepool/cmd/nodepoolcmd.py b/nodepool/cmd/nodepoolcmd.py index 522556f0d..f55da9852 100755 --- a/nodepool/cmd/nodepoolcmd.py +++ b/nodepool/cmd/nodepoolcmd.py @@ -373,7 +373,7 @@ class NodePoolCmd(NodepoolApp): 'image-delete', 'alien-image-list', 'list', 'delete', 'request-list', 'info', 'erase'): - self.zk = zk.ZooKeeper() + self.zk = zk.ZooKeeper(enable_cache=False) self.zk.connect(list(config.zookeeper_servers.values())) self.pool.setConfig(config) diff --git a/nodepool/tests/__init__.py b/nodepool/tests/__init__.py index 8ad99671d..1ab83ac29 100644 --- a/nodepool/tests/__init__.py +++ b/nodepool/tests/__init__.py @@ -539,7 +539,7 @@ class DBTestCase(BaseTestCase): self.zookeeper_host, self.zookeeper_port)) self.zookeeper_chroot = kz_fxtr.zookeeper_chroot - self.zk = zk.ZooKeeper() + self.zk = zk.ZooKeeper(enable_cache=False) host = zk.ZooKeeperConnectionConfig( self.zookeeper_host, self.zookeeper_port, self.zookeeper_chroot ) diff --git a/nodepool/zk.py b/nodepool/zk.py index d67342cb0..0bcd19078 100755 --- a/nodepool/zk.py +++ b/nodepool/zk.py @@ -693,7 +693,7 @@ class ZooKeeper(object): # Log zookeeper retry every 10 seconds retry_log_rate = 10 - def __init__(self): + def __init__(self, enable_cache=True): ''' Initialize the ZooKeeper object. ''' @@ -704,6 +704,7 @@ class ZooKeeper(object): self._request_cache = None self._cached_nodes = {} self._cached_node_requests = {} + self.enable_cache = enable_cache # ======================================================================= # Private Methods @@ -894,15 +895,16 @@ class ZooKeeper(object): except KazooTimeoutError: self.logConnectionRetryEvent() - self._node_cache = TreeCache(self.client, self.NODE_ROOT) - self._node_cache.listen_fault(self.cacheFaultListener) - self._node_cache.listen(self.nodeCacheListener) - self._node_cache.start() + if self.enable_cache: + self._node_cache = TreeCache(self.client, self.NODE_ROOT) + self._node_cache.listen_fault(self.cacheFaultListener) + self._node_cache.listen(self.nodeCacheListener) + self._node_cache.start() - self._request_cache = TreeCache(self.client, self.REQUEST_ROOT) - self._request_cache.listen_fault(self.cacheFaultListener) - self._request_cache.listen(self.requestCacheListener) - self._request_cache.start() + self._request_cache = TreeCache(self.client, self.REQUEST_ROOT) + self._request_cache.listen_fault(self.cacheFaultListener) + self._request_cache.listen(self.requestCacheListener) + self._request_cache.start() def disconnect(self): ''' diff --git a/tools/print-zk.py b/tools/print-zk.py index 13a52145f..a609eb80c 100644 --- a/tools/print-zk.py +++ b/tools/print-zk.py @@ -30,7 +30,7 @@ args = parser.parse_args() config = nodepool.config.loadConfig(args.config) -zk = nodepool.zk.ZooKeeper() +zk = nodepool.zk.ZooKeeper(enable_cache=False) zk.connect(config.zookeeper_servers.values()) def join(a, b):