Воздушный поток sql алхимический размер бассейна игнорируется - PullRequest
2 голосов
/ 12 марта 2019

Я использую локального исполнителя airlfow с базой данных postgres и получаю: (psycopg2.OperationalError) FATAL: remaining connection slots are reserved

Мои конфиги:

sql_alchemy_pool_size = 5 sql_alchemy_pool_recycle = 1800 sql_alchemy_reconnect_timeout = 300

Тем не менее я вижу, что воздушный поток всегда поддерживает больше открытых соединений, чем размер пула. postgres - nr active connections

Как мы можем ограничить поток воздуха до на самом деле ограничение пула?

airflow_version = 1.10.2; postgres_version = 9,6

1 Ответ

1 голос
/ 13 марта 2019

У вас есть рабочие ветвления основного процесса, каждый из которых управляет собственным пулом потоков.

Проверьте реализацию LocalExecutor ;как он использует многопроцессорность под капотом.SqlAlchemy закроет все открытые соединения после разветвления LocalWorker;но размер пула будет эквивалентен родительскому, поэтому при максимуме теоретически у вас будет k * (n + 1) соединений, где n - ваша константа параллелизма, а k - ваша sql_alchemy_pool_size.

...