I am learning about consistent hashing and I understand that provided the number of servers do not change, a load balancer using consistent hashing will always send the same request to the same backend server. I can see how this could be troublesome if one user is more CPU intensive than the others - he will continue to get mapped to the same server and it may cause performance issues for others. IMO, it makes more sense to use something like least connections or a mix of consistent hashing and least connections together.
For database partitions I am running into the same issue. I know a cache that is centralized for all the databases could solve this issue as intense queries only need to be executed once - is that an acceptable approach? Load balancer which uses consistent hashing to select databases, and no database is ever hit too much because we cache the results in a Redis cluster.
It appears like consistent hashing and sticky sessions go hand in hand, and sticky sessions add a lot of overhead. Am I wrong in this assumption?