This speeds up node listing in the CLI ("nodepool list") and the webapp ("/node-list") significantly. The main culprit is that filling in the "locked" field is expensive because we attempt to lock each node. To make that faster, we now just query the lock contenders to determine whether it is locked (if there are contenders, it's locked). Further, in the webapp, we can use the cache more aggressively. First, we update the cache listener to watch lock contenders and cache those values on our Node objects. That means the webapp doesn't even need to use the optmization above. Further, we can have the webapp use cached node ids, at which point it doesn't need to make any ZK queries at all. With a local setup of 6000 nodes and a localhost ZK connection (real world times will be much higher due to network delays), this takes the web server node list from 3 seconds to 0.009 seconds. The CLI node list improves from 2.1 seconds to 0.8 seconds (excluding startup time). Change-Id: Id857556865b6ad75b9ec404bd7ef0c45e2a527bd
Nodepool
Nodepool is a system for managing test node resources. It supports launching single-use test nodes from cloud providers as well as managing access to pre-defined pre-existing nodes. Nodepool is part of a suite of tools that form a comprehensive test system, including Zuul.
The latest documentation for Nodepool is published at: https://zuul-ci.org/docs/nodepool/
The latest documentation for Zuul is published at: https://zuul-ci.org/docs/zuul/
Getting Help
There are two Zuul-related mailing lists:
- zuul-announce
-
A low-traffic announcement-only list to which every Zuul operator or power-user should subscribe.
- zuul-discuss
-
General discussion about Zuul, including questions about how to use it, and future development.
You will also find Zuul developers in the #zuul channel on Freenode IRC.
Contributing
To browse the latest code, see: https://opendev.org/zuul/nodepool To clone the latest code, use git clone https://opendev.org/zuul/nodepool
Bugs are handled at: https://storyboard.openstack.org/#!/project/zuul/nodepool
Code reviews are handled by gerrit at https://review.opendev.org
After creating a Gerrit account, use git review to submit patches. Example:
# Do your commits
$ git review
# Enter your username if prompted
Join #zuul on Freenode to discuss development or usage.
License
Nodepool is free software, licensed under the Apache License, version 2.0.
Python Version Support
Nodepool requires Python 3. It does not support Python 2.