Managing Connection Pools in Bold BI Multi-Tenant Deployments
Understanding Database Connection Pooling in a Multi-Tenant Bold BI Environment
Overview
In a Bold BI multi-tenant deployment where each site uses a separate database, customers may observe an increase in database connections. This behavior is expected because connection pooling is managed per database connection string.
How Connection Pooling Works
Each application instance maintains a separate connection pool for every unique database connection string.
In a multi-tenant architecture where:
1 Site = 1 Database
each site typically results in:
- Its own database connection pool
- Its own set of active database connections
As the number of sites increases, the total number of connection pools and database connections may also increase.
Is This a Concern?
Not necessarily.
Having multiple connection pools does not automatically create a scalability problem. The impact depends on factors such as:
- Connection pool configuration (minimum and maximum pool size)
- Database workload
- Number of simultaneously active sites
- Resource capacity of the database server
When It Is Manageable
The architecture generally remains manageable when:
- Connection pools are configured with appropriate limits.
- Database connections are reused through connection pooling.
- Not all sites are heavily active at the same time.
- Connections are properly closed after operations are completed, allowing them to be returned to the pool for reuse.
- Idle connections are cleaned up according to pool settings.
Best Practices for Bold BI Deployments
To ensure efficient database resource utilization:
- Configure appropriate pool size limits.
- Avoid unnecessarily high minimum pool sizes.
- Close database connections promptly after completing operations.
- Monitor database connection usage periodically.
- Scale database resources as the number of active sites grows.
Conclusion
In a Bold BI multi-tenant deployment with separate databases, the number of connection pools increases because each database connection string maintains its own pool. While this increases the overall connection count, it is generally not a significant issue when connection pools are configured appropriately, connections are properly reused, and database resources are sized according to the deployment requirements.