Throttle compaction on temporary DB

This commit is contained in:
Andrey Smirnov
2017-02-23 01:01:17 +03:00
parent f2dc4eeec9
commit 4c06e26d85
2 changed files with 15 additions and 5 deletions
+14 -4
View File
@@ -51,18 +51,24 @@ var (
_ Storage = &levelDB{}
)
func internalOpen(path string) (*leveldb.DB, error) {
func internalOpen(path string, throttleCompaction bool) (*leveldb.DB, error) {
o := &opt.Options{
Filter: filter.NewBloomFilter(10),
OpenFilesCacheCapacity: 256,
}
if throttleCompaction {
o.CompactionL0Trigger = 32
o.WriteL0PauseTrigger = 96
o.WriteL0SlowdownTrigger = 64
}
return leveldb.OpenFile(path, o)
}
// OpenDB opens (creates) LevelDB database
func OpenDB(path string) (Storage, error) {
db, err := internalOpen(path)
db, err := internalOpen(path, false)
if err != nil {
return nil, err
}
@@ -94,7 +100,11 @@ func (l *levelDB) CreateTemporary() (Storage, error) {
return nil, err
}
return OpenDB(tempdir)
db, err := internalOpen(tempdir, true)
if err != nil {
return nil, err
}
return &levelDB{db: db, path: tempdir}, nil
}
// Get key value from database
@@ -212,7 +222,7 @@ func (l *levelDB) ReOpen() error {
}
var err error
l.db, err = internalOpen(l.path)
l.db, err = internalOpen(l.path, false)
return err
}