Skip to content

Commit

Permalink
chore: tune shared db connection pooling (#4213)
Browse files Browse the repository at this point in the history
  • Loading branch information
atzoum committed Dec 7, 2023
1 parent a894473 commit 01c90fc
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/apphandlers/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ func rudderCoreWorkSpaceTableSetup() error {
// NewRsourcesService produces a rsources.JobService through environment configuration (env variables & config file)
func NewRsourcesService(deploymentType deployment.Type) (rsources.JobService, error) {
var rsourcesConfig rsources.JobServiceConfig
rsourcesConfig.MaxPoolSize = config.GetInt("Rsources.PoolSize", 5)
rsourcesConfig.MaxPoolSize = config.GetInt("Rsources.MaxPoolSize", 3)
rsourcesConfig.MinPoolSize = config.GetInt("Rsources.MinPoolSize", 1)
rsourcesConfig.LocalConn = misc.GetConnectionString(config.Default)
rsourcesConfig.LocalHostname = config.GetString("DB.host", "localhost")
rsourcesConfig.SharedConn = config.GetString("SharedDB.dsn", "")
Expand Down
2 changes: 2 additions & 0 deletions internal/drain-config/drainConfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,5 +192,7 @@ func setupDBConn(conf *config.Config) (*sql.DB, error) {
if err := db.Ping(); err != nil {
return nil, fmt.Errorf("db ping: %v", err)
}
db.SetMaxIdleConns(conf.GetInt("drainConfig.maxIdleConns", 1))
db.SetMaxOpenConns(conf.GetInt("drainConfig.maxOpenConns", 2))
return db, nil
}
5 changes: 5 additions & 0 deletions services/rsources/rsources.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ type JobServiceConfig struct {
LocalHostname string
LocalConn string
MaxPoolSize int
MinPoolSize int
SharedConn string
SubscriptionTargetConn string
SkipFailedRecordsCollection bool
Expand Down Expand Up @@ -202,6 +203,9 @@ func NewJobService(config JobServiceConfig) (JobService, error) {
if config.MaxPoolSize <= 2 {
config.MaxPoolSize = 2 // minimum 2 connections in the pool for proper startup
}
if config.MinPoolSize <= 0 {
config.MinPoolSize = 1
}
var (
localDB, sharedDB *sql.DB
err error
Expand All @@ -219,6 +223,7 @@ func NewJobService(config JobServiceConfig) (JobService, error) {
return nil, fmt.Errorf("failed to create shared postgresql connection pool: %w", err)
}
sharedDB.SetMaxOpenConns(config.MaxPoolSize)
sharedDB.SetMaxIdleConns(config.MinPoolSize)
}
handler := &sourcesHandler{
log: config.Log,
Expand Down

0 comments on commit 01c90fc

Please sign in to comment.