pedro-r-marques opened a new pull request, #27899:
URL: https://github.com/apache/superset/pull/27899

   ### SUMMARY
   As per issue #27897,  SqlAlchemy recommends that 
   
   """
   The typical usage of 
[create_engine()](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine)
 is once per particular database URL, held globally for the lifetime of a 
single application process. A single 
[Engine](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine)
 manages many individual 
[DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI) connections 
on behalf of the process and is intended to be called upon in a concurrent 
fashion. The 
[Engine](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine)
 is not synonymous to the DBAPI connect() function, which represents just one 
connection resource - the 
[Engine](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine)
 is most efficient when created just once at the module level of an 
application, not per-object or per-function call.
   """
   
   The superset.models.core::Database class is currently allocating Engine 
objects whenever a Database object is instantiated which happens twice(?) per 
'api/v1/chart/data' API access. This is not the intended usage of the SQL 
Alchemy API and causes mechanisms such as connection pooling not to work 
correctly.
   
   Connection pooling is an important feature in order to control access to 
databases. For instance when using 'duckdb', it is recommended that one uses a 
small number of concurrent requests (or a single concurrent request) and 
instead take advantage of the inherent parallelism in the database engine. 
Other engines will have other ideal settings.
   
   ### TESTING INSTRUCTIONS
   <!--- Required! What steps can be taken to manually verify the changes? -->
   Configure a connection pool using the `DB_CONNECTION_MUTATOR` hook.
   
   ### ADDITIONAL INFORMATION
   <!--- Check any relevant boxes with "x" -->
   <!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org
For additional commands, e-mail: notifications-h...@superset.apache.org

Reply via email to