
Rally is not having locking mechanism to control rally processes simultaneous access to the same OSP resource. For example, we don't want two different rally processes to delete the same floating ip. In this implementation we create a "RallyLock" table in rally DB which can store a unique UUID. When a user wants only one process to modify a OSP resource at a time, take a lock by inserting resource's (for example floating ip) uuid into this table. If another process wants to take lock, it will get error as table won't allow duplicate values for uuid. Sqlalchemy is throwing errors when this DB code is implemented as a rally plugin. So we needed to find the alternate option i.e python package to make this DB changes working. To acquire and release a lock, rally scenario has to call the api like from browbeat_rally.db import api as db_api from oslo_db import exception as db_exc net_id = net['network']['id'] try: db_api.acquire_lock(net_id) except db_exc.DBDuplicateEntry: LOG.info("This uuid {} is already in use".format(net_id)) db_api.release_lock(net_id) Change-Id: I0c14a3c0ddb3e2d4e3478e763d2ee4066440b9ac
Browbeat
Browbeat is a performance tuning and analysis tool for OpenStack. Browbeat is free, Open Source software.
- Analyze and tune your Cloud for optimal performance.
- Create Rally workloads for performance and scale testing.
- Automate deployment of common data analysis tools.
Documentation
Browbeat documentation is available at https://browbeat.readthedocs.io/
Resources
- Blog
- Code Review
- Git Web
- IRC -- #openstack-browbeat (irc.freenode.net)
- Issue tracker
- Browse code
Description
Languages
Jinja
49.2%
Python
46.7%
Shell
3.7%
Dockerfile
0.4%