выделение 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