Imagine you have a fixed sized resource. Imagine you can completely consume that resource from 1 client.
Now make this two clients, and completely consume the resource. Which is of fixed size. Each client will get 1/2 (on average) of the resource.
Now make this four clients, and completely consume the resource. Which is of fixed size. Each client will get 1/4 (on average) of the resource.
Don’tcha just love that anti-scaling behavior?
I don’t have a good answer on how to tackle this at the moment. Expanding the resource pool will cost lots of money. My current thoughts (not well formed, so not good) are to break the resource up into smaller individual resources. This might work, but I need to think on how to do this in a way that does (almost) shared nothing so it can scale.