We currently have --enable-experimental-autoscaling for migrations when aurora is auto detected. I like that the initial implementation is more restrictive in functionality because it gives us an opportunity to test it, but there are a lot of opportunities to improve it:
- We should support targets other than aurora with a
--cpus option since we can't auto-detect.
- We should support
move and sync operations as well.
- We should consider that the read producers also might need scaling (and be careful for checksum that they are not excessive - I don't believe CPU throttlers work on checksum)
- The threads algorithm is currently using
Threads_running from global status. It should be possible to just task threads not blocked on the redo log and over-subscribe, since redo log threads are effectively parked and non runnable.
We currently have
--enable-experimental-autoscalingfor migrations when aurora is auto detected. I like that the initial implementation is more restrictive in functionality because it gives us an opportunity to test it, but there are a lot of opportunities to improve it:--cpusoption since we can't auto-detect.moveandsyncoperations as well.Threads_runningfrom global status. It should be possible to just task threads not blocked on the redo log and over-subscribe, since redo log threads are effectively parked and non runnable.