выделение utils из async picopyn

для поддержки синхронного клиента необходимо выделить некоторые общие части в picopyn/utils.py. Важно: мы будем не просто выделять что угодно, что возможно, а выделять только необходимые, стабильные, независимые от интерфейса вещи, где легко можно допустить ошибку из-за дублирующего кода.

В частности это:

  • _parse_multihost_dsn() для поддержки мультихостов (см в pool.py)
  • выделить как константы тексты sql-запросов при discrovery (пример)
  • (возможно) парсинг из кластера alive_instances_info (см в pool.py тут и тут)

Важно: при выполнении данной задачи тесты не должны меняться

Также необходимо добавить внутреннюю документацию (wiki, схемы и тп) с описанием алгоритмов работы connection pool. в частности, необходимо описать:

  • принцип работы discovery
  • принцип выбора коннекта из пула
  • принцип работы с forbidden tiers

Данная документация необходима в том числе для упрощения разработки синхронной части драйвера

Edited by Asya Lomakina