diff options
author | obscuren <geffobscura@gmail.com> | 2015-05-12 17:28:33 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-05-12 17:28:55 +0800 |
commit | 13f8f65a58bc9a31c8900e12ae2c3ed10003486f (patch) | |
tree | 6e03c6cb52ac2e6838df370079c1a23424b23fa0 | |
parent | 76215ca9f3c22b97d81b492026691a692cc2ce1a (diff) | |
download | go-tangerine-13f8f65a58bc9a31c8900e12ae2c3ed10003486f.tar.gz go-tangerine-13f8f65a58bc9a31c8900e12ae2c3ed10003486f.tar.zst go-tangerine-13f8f65a58bc9a31c8900e12ae2c3ed10003486f.zip |
eth, ethdb: lower the amount of open files & improve err messages for db
Closes #880
-rw-r--r-- | eth/backend.go | 9 | ||||
-rw-r--r-- | ethdb/database.go | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/eth/backend.go b/eth/backend.go index 6be871138..80da30086 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -207,21 +207,24 @@ func New(config *Config) (*Ethereum, error) { logger.NewJSONsystem(config.DataDir, config.LogJSON) } + const dbCount = 3 + ethdb.OpenFileLimit = 256 / (dbCount + 1) + newdb := config.NewDB if newdb == nil { newdb = func(path string) (common.Database, error) { return ethdb.NewLDBDatabase(path) } } blockDb, err := newdb(path.Join(config.DataDir, "blockchain")) if err != nil { - return nil, err + return nil, fmt.Errorf("blockchain db err: %v", err) } stateDb, err := newdb(path.Join(config.DataDir, "state")) if err != nil { - return nil, err + return nil, fmt.Errorf("state db err: %v", err) } extraDb, err := newdb(path.Join(config.DataDir, "extra")) if err != nil { - return nil, err + return nil, fmt.Errorf("extra db err: %v", err) } nodeDb := path.Join(config.DataDir, "nodes") diff --git a/ethdb/database.go b/ethdb/database.go index 15af02fdf..c351c024a 100644 --- a/ethdb/database.go +++ b/ethdb/database.go @@ -11,7 +11,7 @@ import ( "github.com/syndtr/goleveldb/leveldb/opt" ) -const openFileLimit = 128 +var OpenFileLimit = 64 type LDBDatabase struct { fn string @@ -26,7 +26,7 @@ type LDBDatabase struct { func NewLDBDatabase(file string) (*LDBDatabase, error) { // Open the db - db, err := leveldb.OpenFile(file, &opt.Options{OpenFilesCacheCapacity: openFileLimit}) + db, err := leveldb.OpenFile(file, &opt.Options{OpenFilesCacheCapacity: OpenFileLimit}) if err != nil { return nil, err } |