Migrate actioncable workload to redis-pubsub
ActionCable workload is a large portion of the Redis pub/sub usage in Gitlab Rails. We can use a MultiStore
to toggle writes. Reads will require a restart as explained in &1066 (comment 1478950070).
As pub/sub is a long-polling operation, there is a thread that listens to subscriptions. Meanwhile, Rails uses the ._client
in the Redis
instance to perform send extra subscribe
commands so that the background thread will start receiving messages from the new subscriptions.
To toggle reads, a pod restart is required. This can be done by triggering a k8s-workload/gitlab-com pipeline.
Edited by Sylvester Chin