forked from mirror/ledisdb
update config
This commit is contained in:
parent
80689cb3fd
commit
f95494386a
|
@ -3,11 +3,9 @@ package main
|
|||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"github.com/siddontang/copier"
|
||||
"github.com/siddontang/ledisdb/ledis"
|
||||
"github.com/siddontang/ledisdb/leveldb"
|
||||
"io/ioutil"
|
||||
"path"
|
||||
)
|
||||
|
||||
var fileName = flag.String("config", "/etc/ledis.json", "ledisdb config file")
|
||||
|
@ -37,13 +35,7 @@ func main() {
|
|||
return
|
||||
}
|
||||
|
||||
dbPath := path.Join(cfg.DataDir, "data")
|
||||
|
||||
dbCfg := new(leveldb.Config)
|
||||
copier.Copy(dbCfg, &cfg.DB)
|
||||
dbCfg.Path = dbPath
|
||||
|
||||
if err = leveldb.Repair(dbCfg); err != nil {
|
||||
if err = leveldb.Repair(cfg.NewDBConfig()); err != nil {
|
||||
println("repair error: ", err.Error())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package ledis
|
||||
|
||||
import (
|
||||
"github.com/siddontang/copier"
|
||||
"github.com/siddontang/ledisdb/leveldb"
|
||||
"path"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
DataDir string `json:"data_dir"`
|
||||
|
||||
|
@ -17,3 +23,20 @@ type Config struct {
|
|||
MaxFileNum int `json:"max_file_num"`
|
||||
} `json:"binlog"`
|
||||
}
|
||||
|
||||
func (cfg *Config) NewDBConfig() *leveldb.Config {
|
||||
dbPath := path.Join(cfg.DataDir, "data")
|
||||
|
||||
dbCfg := new(leveldb.Config)
|
||||
copier.Copy(dbCfg, &cfg.DB)
|
||||
dbCfg.Path = dbPath
|
||||
return dbCfg
|
||||
}
|
||||
|
||||
func (cfg *Config) NewBinLogConfig() *BinLogConfig {
|
||||
binLogPath := path.Join(cfg.DataDir, "bin_log")
|
||||
c := new(BinLogConfig)
|
||||
copier.Copy(c, &cfg.BinLog)
|
||||
c.Path = binLogPath
|
||||
return c
|
||||
}
|
||||
|
|
|
@ -3,10 +3,8 @@ package ledis
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/siddontang/copier"
|
||||
"github.com/siddontang/go-log/log"
|
||||
"github.com/siddontang/ledisdb/leveldb"
|
||||
"path"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
@ -49,31 +47,12 @@ func OpenWithJsonConfig(configJson json.RawMessage) (*Ledis, error) {
|
|||
return Open(&cfg)
|
||||
}
|
||||
|
||||
func openDB(cfg *Config) (*leveldb.DB, error) {
|
||||
dbPath := path.Join(cfg.DataDir, "data")
|
||||
|
||||
dbCfg := new(leveldb.Config)
|
||||
copier.Copy(dbCfg, &cfg.DB)
|
||||
dbCfg.Path = dbPath
|
||||
|
||||
return leveldb.Open(dbCfg)
|
||||
}
|
||||
|
||||
func openBinLog(cfg *Config) (*BinLog, error) {
|
||||
binLogPath := path.Join(cfg.DataDir, "bin_log")
|
||||
c := new(BinLogConfig)
|
||||
copier.Copy(c, &cfg.BinLog)
|
||||
c.Path = binLogPath
|
||||
|
||||
return NewBinLog(c)
|
||||
}
|
||||
|
||||
func Open(cfg *Config) (*Ledis, error) {
|
||||
if len(cfg.DataDir) == 0 {
|
||||
return nil, fmt.Errorf("must set correct data_dir")
|
||||
}
|
||||
|
||||
ldb, err := openDB(cfg)
|
||||
ldb, err := leveldb.Open(cfg.NewDBConfig())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -86,7 +65,7 @@ func Open(cfg *Config) (*Ledis, error) {
|
|||
l.ldb = ldb
|
||||
|
||||
if cfg.BinLog.Use {
|
||||
l.binlog, err = openBinLog(cfg)
|
||||
l.binlog, err = NewBinLog(cfg.NewBinLogConfig())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package server
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/siddontang/copier"
|
||||
"github.com/siddontang/ledisdb/ledis"
|
||||
"net"
|
||||
"path"
|
||||
|
@ -63,7 +62,7 @@ func NewApp(cfg *Config) (*App, error) {
|
|||
}
|
||||
}
|
||||
|
||||
if app.ldb, err = openLedis(cfg); err != nil {
|
||||
if app.ldb, err = ledis.Open(cfg.NewLedisConfig()); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
@ -72,19 +71,6 @@ func NewApp(cfg *Config) (*App, error) {
|
|||
return app, nil
|
||||
}
|
||||
|
||||
func openLedis(cfg *Config) (*ledis.Ledis, error) {
|
||||
c := new(ledis.Config)
|
||||
|
||||
c.DataDir = cfg.DataDir
|
||||
|
||||
copier.Copy(&c.DB, &cfg.DB)
|
||||
copier.Copy(&c.BinLog, &cfg.BinLog)
|
||||
|
||||
println("max open files", c.DB.MaxOpenFiles)
|
||||
|
||||
return ledis.Open(c)
|
||||
}
|
||||
|
||||
func (app *App) Close() {
|
||||
if app.closed {
|
||||
return
|
||||
|
|
|
@ -2,6 +2,8 @@ package server
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/siddontang/copier"
|
||||
"github.com/siddontang/ledisdb/ledis"
|
||||
"io/ioutil"
|
||||
)
|
||||
|
||||
|
@ -50,3 +52,14 @@ func NewConfigWithFile(fileName string) (*Config, error) {
|
|||
|
||||
return NewConfig(data)
|
||||
}
|
||||
|
||||
func (cfg *Config) NewLedisConfig() *ledis.Config {
|
||||
c := new(ledis.Config)
|
||||
|
||||
c.DataDir = cfg.DataDir
|
||||
|
||||
copier.Copy(&c.DB, &cfg.DB)
|
||||
copier.Copy(&c.BinLog, &cfg.BinLog)
|
||||
|
||||
return c
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue