mirror of https://github.com/aptly-dev/aptly
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package ssdb
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
|
|
"github.com/aptly-dev/aptly/database"
|
|
"github.com/seefan/gossdb/v2"
|
|
"github.com/seefan/gossdb/v2/conf"
|
|
"github.com/seefan/gossdb/v2/pool"
|
|
)
|
|
|
|
var defaultBufSize = 102400
|
|
var defaultPoolSize = 1
|
|
|
|
func internalOpen(cfg *conf.Config) (*pool.Client, error) {
|
|
ssdbLog("internalOpen")
|
|
|
|
cfg.ReadBufferSize = defaultBufSize
|
|
cfg.WriteBufferSize = defaultBufSize
|
|
cfg.MaxPoolSize = defaultPoolSize
|
|
cfg.PoolSize = defaultPoolSize
|
|
cfg.MinPoolSize = defaultPoolSize
|
|
cfg.MaxWaitSize = 100 * defaultPoolSize
|
|
cfg.RetryEnabled = true
|
|
|
|
//override by env
|
|
if os.Getenv("SSDB_READBUFFERSIZE") != "" {
|
|
readBufSize, err := strconv.Atoi(os.Getenv("SSDB_READBUFFERSIZE"))
|
|
if err != nil {
|
|
cfg.ReadBufferSize = readBufSize
|
|
}
|
|
}
|
|
|
|
if os.Getenv("SSDB_WRITEBUFFERSIZE") != "" {
|
|
writeBufSize, err := strconv.Atoi(os.Getenv("SSDB_WRITEBUFFERSIZE"))
|
|
if err != nil {
|
|
cfg.WriteBufferSize = writeBufSize
|
|
}
|
|
}
|
|
|
|
var cfgs = []*conf.Config{cfg}
|
|
err := gossdb.Start(cfgs...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return gossdb.NewClient()
|
|
}
|
|
|
|
func NewDB(cfg *conf.Config) (database.Storage, error) {
|
|
return &Storage{cfg: cfg}, nil
|
|
}
|
|
|
|
func NewOpenDB(cfg *conf.Config) (database.Storage, error) {
|
|
db, err := NewDB(cfg)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return db, db.Open()
|
|
}
|