mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-11-28 21:39:02 +08:00
Merge pull request #1743 from LazyDBA247-Anyvision/master
MYSQL - Better Connection Pool Control
This commit is contained in:
commit
ae812c07d6
@ -298,8 +298,10 @@ filer:
|
|||||||
WEED_MYSQL_HOSTNAME: "mysql-db-host"
|
WEED_MYSQL_HOSTNAME: "mysql-db-host"
|
||||||
WEED_MYSQL_PORT: "3306"
|
WEED_MYSQL_PORT: "3306"
|
||||||
WEED_MYSQL_DATABASE: "sw_database"
|
WEED_MYSQL_DATABASE: "sw_database"
|
||||||
WEED_MYSQL_CONNECTION_MAX_IDLE: "10"
|
WEED_MYSQL_CONNECTION_MAX_IDLE: "5"
|
||||||
WEED_MYSQL_CONNECTION_MAX_OPEN: "150"
|
WEED_MYSQL_CONNECTION_MAX_OPEN: "75"
|
||||||
|
# "refresh" connection every 10 minutes, eliminating mysql closing "old" connections
|
||||||
|
WEED_MYSQL_CONNECTION_MAX_LIFETIME_SECONDS: "600"
|
||||||
# enable usage of memsql as filer backend
|
# enable usage of memsql as filer backend
|
||||||
WEED_MYSQL_INTERPOLATEPARAMS: "true"
|
WEED_MYSQL_INTERPOLATEPARAMS: "true"
|
||||||
WEED_LEVELDB2_ENABLED: "false"
|
WEED_LEVELDB2_ENABLED: "false"
|
||||||
|
@ -118,6 +118,7 @@ password = ""
|
|||||||
database = "" # create or use an existing database
|
database = "" # create or use an existing database
|
||||||
connection_max_idle = 2
|
connection_max_idle = 2
|
||||||
connection_max_open = 100
|
connection_max_open = 100
|
||||||
|
connection_max_lifetime_seconds = 0
|
||||||
interpolateParams = false
|
interpolateParams = false
|
||||||
|
|
||||||
[postgres] # or cockroachdb
|
[postgres] # or cockroachdb
|
||||||
|
@ -35,12 +35,13 @@ func (store *MysqlStore) Initialize(configuration util.Configuration, prefix str
|
|||||||
configuration.GetString(prefix+"database"),
|
configuration.GetString(prefix+"database"),
|
||||||
configuration.GetInt(prefix+"connection_max_idle"),
|
configuration.GetInt(prefix+"connection_max_idle"),
|
||||||
configuration.GetInt(prefix+"connection_max_open"),
|
configuration.GetInt(prefix+"connection_max_open"),
|
||||||
|
configuration.GetInt(prefix+"connection_max_lifetime_seconds"),
|
||||||
configuration.GetBool(prefix+"interpolateParams"),
|
configuration.GetBool(prefix+"interpolateParams"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (store *MysqlStore) initialize(user, password, hostname string, port int, database string, maxIdle, maxOpen int,
|
func (store *MysqlStore) initialize(user, password, hostname string, port int, database string, maxIdle, maxOpen,
|
||||||
interpolateParams bool) (err error) {
|
maxLifetimeSeconds int, interpolateParams bool) (err error) {
|
||||||
//
|
//
|
||||||
store.SqlInsert = "INSERT INTO filemeta (dirhash,name,directory,meta) VALUES(?,?,?,?)"
|
store.SqlInsert = "INSERT INTO filemeta (dirhash,name,directory,meta) VALUES(?,?,?,?)"
|
||||||
store.SqlUpdate = "UPDATE filemeta SET meta=? WHERE dirhash=? AND name=? AND directory=?"
|
store.SqlUpdate = "UPDATE filemeta SET meta=? WHERE dirhash=? AND name=? AND directory=?"
|
||||||
@ -65,6 +66,7 @@ func (store *MysqlStore) initialize(user, password, hostname string, port int, d
|
|||||||
|
|
||||||
store.DB.SetMaxIdleConns(maxIdle)
|
store.DB.SetMaxIdleConns(maxIdle)
|
||||||
store.DB.SetMaxOpenConns(maxOpen)
|
store.DB.SetMaxOpenConns(maxOpen)
|
||||||
|
store.DB.SetConnMaxLifetime(maxLifetimeSeconds*time.Second)
|
||||||
|
|
||||||
if err = store.DB.Ping(); err != nil {
|
if err = store.DB.Ping(); err != nil {
|
||||||
return fmt.Errorf("connect to %s error:%v", sqlUrl, err)
|
return fmt.Errorf("connect to %s error:%v", sqlUrl, err)
|
||||||
|
Loading…
Reference in New Issue
Block a user