There are workloads which require more vertical scaling due to required parallelism, so now the planner can take read and write parallelism into account.
For example, imagine that a Java process creates 4 concurrent futures in response to a read request, then it needs at least 4 cores for that workload to run in parallel (as opposed to concurrent). The defaults are 1+1 for read+write which means our minimum instance size is effectively 2 cores. Given that hyperthreading is the default for most AWS instances this is reasonable.
Python 3.7 is EOL so remove testing that and add in Python 3.10.
There are workloads which require more vertical scaling due to required parallelism, so now the planner can take read and write parallelism into account.
For example, imagine that a Java process creates 4 concurrent futures in response to a read request, then it needs at least 4 cores for that workload to run in parallel (as opposed to concurrent). The defaults are 1+1 for read+write which means our minimum instance size is effectively 2 cores. Given that hyperthreading is the default for most AWS instances this is reasonable.
Python 3.7 is EOL so remove testing that and add in Python 3.10.