aboutsummaryrefslogtreecommitdiff
path: root/unmaintained
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2019-05-17 17:33:49 -0700
committerChris Lu <chris.lu@gmail.com>2019-05-17 17:33:49 -0700
commit0fe286a6cac0dc2d7cb960645a4235c25516ea91 (patch)
treedeb232a9ecf8b202e00bc1307182f33200596bc9 /unmaintained
parent7e0c3bb73219e625016aed26dda5047478c58753 (diff)
downloadseaweedfs-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.go35
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)
+ }
+}