уменьшение размера пула при ребалансе
В рамках #108 (closed) при уменьшение max_size лишние соединения закрываются на этапе release. При этом, если пул простаивает и свободные соединения не берутся пользователем, его фактический размер может долго оставаться больше заданного max_size.
- свободные лишние -> закрыть сразу -- предлагается сделать в рамках этой задачи
- занятые лишние -> дождаться release -- уже реализовано в #108 (closed)
Предлагается дополнительно учитывать уменьшение max_size на этапе rebalance для sync/async пулов.
- при уменьшении max_size вызывать TopologyTracker.trigger(), чтобы не ждать следующего refresh
- на этапе rebalance закрывать лишние свободные соединения, сохраняя равномерное распределение пула по инстансам
- удалять выбранные соединения из _pool под lock, а закрывать за его пределами