Open leveldb in recover on failure
This commit is contained in:
10
leveldb.go
10
leveldb.go
@@ -18,6 +18,16 @@ func NewLevelDB(path string) (*LevelDB, error) {
|
|||||||
db, err := leveldb.OpenFile(path, &opt.Options{
|
db, err := leveldb.OpenFile(path, &opt.Options{
|
||||||
Filter: filter.NewBloomFilter(32),
|
Filter: filter.NewBloomFilter(32),
|
||||||
})
|
})
|
||||||
|
if err != nil {
|
||||||
|
db, err = leveldb.RecoverFile(path, &opt.Options{
|
||||||
|
Filter: filter.NewBloomFilter(32),
|
||||||
|
})
|
||||||
|
if err == nil && db.Close() == nil {
|
||||||
|
db, err = leveldb.OpenFile(path, &opt.Options{
|
||||||
|
Filter: filter.NewBloomFilter(32),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
return &LevelDB{
|
return &LevelDB{
|
||||||
db: db,
|
db: db,
|
||||||
}, err
|
}, err
|
||||||
|
|||||||
Reference in New Issue
Block a user