You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Now that every AWX node has a local independent redis server, we can probably just get rid of our memcached usage (and just use redis instead).
In modern versions of AWX, memcached is used specifically for:
a local cache for AWX settings access (see: awx.conf.settings); any time django.conf.settings is accessed (e.g., settings.TOWER_URL_BASE), we first query memcached via Django's cache framework (https://docs.djangoproject.com/en/3.0/topics/cache/) to see if the value exists in memcached (if not, we pull the value from the database and then place it in the cache)
any time a setting value is changed via the API, we run a task on every AWX node, which removes the old value from that nodes' local memcached
there are various other places where AWX code interacts with memcached, but it generally does so using Django's cache interface i.e., cache.get(), cache.set()
AWX used to use memcached as a holding space for in-flight playbook event data, and for fact gathering, but we've removed this type of usage
PLAN OF ACTION
I highly suspect that all of the above interactions are implemented only through Django's cache interface (i.e., I don't think we've got code that directly accesses memcached using the python-memcached library), so replacing memcached with redis should be as simple as just swapping out the dependency and the Django caching configuration.
Now that every AWX node has a local independent redis server, we can probably just get rid of our memcached usage (and just use redis instead).
In modern versions of AWX, memcached is used specifically for:
awx.conf.settings
); any timedjango.conf.settings
is accessed (e.g.,settings.TOWER_URL_BASE
), we first query memcached via Django's cache framework (https://docs.djangoproject.com/en/3.0/topics/cache/) to see if the value exists in memcached (if not, we pull the value from the database and then place it in the cache)cache.get()
,cache.set()
PLAN OF ACTION
I highly suspect that all of the above interactions are implemented only through Django's cache interface (i.e., I don't think we've got code that directly accesses memcached using the
python-memcached
library), so replacing memcached with redis should be as simple as just swapping out the dependency and the Django caching configuration../requirements
python-memcached
library from our list of dependencies in./requirements
CACHES
underawx.settings
to point at the redis Unix domain socket instead of memcachedThe text was updated successfully, but these errors were encountered: