In the process of moving from 0.16.5 to the latest 0.19.x release.
Loving all the new features and functionality.
One piece of functionality that I thought would enable me to improve
performance is the search preference behavior. Using the
_primary_first behavior, my thought was that this would allow only one
of the replicas to be warmed up and take care of handling all the
searches. Basically, achieving the performance of no replicas while
keeping the high availability.
In practice, however, the least recently rebooted machine ends up
holding all of the primary replicas which pretty much means you end
up with one server handling all the queries.
I've seen the primary shard balancing discussion before and the
consensus was that it didn't make sense because there isn't much
overhead for a primary shard. Perhaps allowing primary shard balancing
would make sense for this use case?