diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..6965884 Binary files /dev/null and b/.DS_Store differ diff --git a/files.go b/files.go index 5407a0b..4c0adee 100755 --- a/files.go +++ b/files.go @@ -59,7 +59,11 @@ func (b *Files) Set(key string, value []byte, ns ...string) error { namespace := resolveNamespace(ns) dir := path.Join(b.root, namespace) if value == nil { - return os.Remove(path.Join(dir, key)) + err := os.Remove(path.Join(dir, key)) + if os.IsNotExist(err) { + err = nil + } + return err } if err := os.MkdirAll(dir, os.ModePerm); err != nil { return err diff --git a/leveldb.go b/leveldb.go index 8a59987..bb6843a 100755 --- a/leveldb.go +++ b/leveldb.go @@ -18,15 +18,18 @@ type LevelDB struct { func NewLevelDB(path string) (*LevelDB, error) { db, err := leveldb.OpenFile(path, &opt.Options{ - Filter: filter.NewBloomFilter(32), + Filter: filter.NewBloomFilter(32), + OpenFilesCacheCapacity: 25, }) if err != nil { db, err = leveldb.RecoverFile(path, &opt.Options{ - Filter: filter.NewBloomFilter(32), + Filter: filter.NewBloomFilter(32), + OpenFilesCacheCapacity: 25, }) if err == nil && db.Close() == nil { db, err = leveldb.OpenFile(path, &opt.Options{ - Filter: filter.NewBloomFilter(32), + Filter: filter.NewBloomFilter(32), + OpenFilesCacheCapacity: 25, }) } }