This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new e8667b6  Add PGBouncer recommendation in "setup-database' doc. (#18399)
e8667b6 is described below

commit e8667b6ac1d5409acddf1ba2a382ed30ee12f53d
Author: Jarek Potiuk <[email protected]>
AuthorDate: Tue Sep 21 09:35:21 2021 +0200

    Add PGBouncer recommendation in "setup-database' doc. (#18399)
    
    We were recommending using PGBouncer for all Postgres installation
    for quite some time at least verbally but also in the Helm Chart
    documentation. However we missed such recommendation in the
    general Postgres area of 'Setting Up the database` doc.
    
    This PR adds a note that we can refer to when explaining
    problems with connections and stability to the users who
    use Postgres without PGBouncer proxy (which is known to help
    in such cases)
---
 docs/apache-airflow/howto/set-up-database.rst | 13 +++++++++++++
 docs/helm-chart/production-guide.rst          |  2 ++
 2 files changed, 15 insertions(+)

diff --git a/docs/apache-airflow/howto/set-up-database.rst 
b/docs/apache-airflow/howto/set-up-database.rst
index b781277..075e6c82 100644
--- a/docs/apache-airflow/howto/set-up-database.rst
+++ b/docs/apache-airflow/howto/set-up-database.rst
@@ -223,6 +223,19 @@ want to set a default schema for your role with a SQL 
statement similar to ``ALT
 
 For more information regarding setup of the PostgresSQL connection, see 
`PostgreSQL dialect 
<https://docs.sqlalchemy.org/en/13/dialects/postgresql.html>`__ in SQLAlchemy 
documentation.
 
+.. note::
+
+   Airflow is known - especially in high-performance setup - to open many 
connections to metadata database. This might cause problems for
+   Postgres resource usage, because in Postgres, each connection creates a new 
process and it makes Postgres resource-hungry when a lot
+   of connections are opened. Therefore we recommend to use `PGBouncer 
<https://www.pgbouncer.org/>`_ as database proxy for all Postgres
+   production installations. PGBouncer can handle connection pooling from 
multiple components, but also in case you have remote
+   database with potentially unstable connectivity, it will make your DB 
connectivity much more resilient to temporary network problems.
+   Example implementation of PGBouncer deployment can be found in the 
:doc:`helm-chart:index` where you can enable pre-configured
+   PGBouncer instance with flipping a boolean flag. You can take a look at the 
approach we have taken there and use it as
+   an inspiration, when you prepare your own Deployment, even if you do not 
use the Official Helm Chart.
+
+   See also :ref:`Helm Chart production guide <production-guide:pgbouncer>`
+
 .. spelling::
 
      hba
diff --git a/docs/helm-chart/production-guide.rst 
b/docs/helm-chart/production-guide.rst
index d3e3075..8f1b8e8 100644
--- a/docs/helm-chart/production-guide.rst
+++ b/docs/helm-chart/production-guide.rst
@@ -43,6 +43,8 @@ found on the :doc:`Set up a Database Backend 
<apache-airflow:howto/set-up-databa
       port: ...
       db: ...
 
+.. _production-guide:pgbouncer:
+
 PgBouncer
 ---------
 

Reply via email to