diff options
| author | Chris Lu <chris.lu@gmail.com> | 2019-05-17 17:33:49 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2019-05-17 17:33:49 -0700 |
| commit | 0fe286a6cac0dc2d7cb960645a4235c25516ea91 (patch) | |
| tree | deb232a9ecf8b202e00bc1307182f33200596bc9 /unmaintained | |
| parent | 7e0c3bb73219e625016aed26dda5047478c58753 (diff) | |
| download | seaweedfs-0fe286a6cac0dc2d7cb960645a4235c25516ea91.tar.xz seaweedfs-0fe286a6cac0dc2d7cb960645a4235c25516ea91.zip | |
filer: optimization for leveldb, add leveldb2
large filer db may see high CPU and disk usage due to background compaction
Diffstat (limited to 'unmaintained')
| -rw-r--r-- | unmaintained/compact_leveldb/compact_leveldb.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/unmaintained/compact_leveldb/compact_leveldb.go b/unmaintained/compact_leveldb/compact_leveldb.go new file mode 100644 index 000000000..317356c3f --- /dev/null +++ b/unmaintained/compact_leveldb/compact_leveldb.go @@ -0,0 +1,35 @@ +package main + +import ( + "flag" + "log" + + "github.com/syndtr/goleveldb/leveldb" + "github.com/syndtr/goleveldb/leveldb/opt" + "github.com/syndtr/goleveldb/leveldb/util" +) + +var ( + dir = flag.String("dir", ".", "data directory to store leveldb files") +) + +func main() { + + flag.Parse() + + opts := &opt.Options{ + BlockCacheCapacity: 32 * 1024 * 1024, // default value is 8MiB + WriteBuffer: 16 * 1024 * 1024, // default value is 4MiB + CompactionTableSizeMultiplier: 10, + OpenFilesCacheCapacity: -1, + } + + db, err := leveldb.OpenFile(*dir, opts) + if err != nil { + log.Fatal(err) + } + defer db.Close() + if err := db.CompactRange(util.Range{}); err != nil { + log.Fatal(err) + } +} |
