From af0e85ce43827238e1a3944986d25e36b34b05a8 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Mon, 19 Feb 2018 16:17:21 +0100 Subject: [PATCH] Tune rocksdb options --- db/rocksdb.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/db/rocksdb.go b/db/rocksdb.go index c83617aa..43446bb6 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -44,10 +44,11 @@ const ( var cfNames = []string{"default", "height", "outputs", "inputs"} func openDB(path string, bulk bool) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error) { + c := gorocksdb.NewLRUCache(8 << 30) // 8 gb fp := gorocksdb.NewBloomFilter(10) bbto := gorocksdb.NewDefaultBlockBasedTableOptions() - bbto.SetBlockSize(16 << 10) // 16kb - bbto.SetBlockCache(gorocksdb.NewLRUCache(8 << 30)) // 8 gb + bbto.SetBlockSize(16 << 10) // 16kb + bbto.SetBlockCache(c) bbto.SetFilterPolicy(fp) opts := gorocksdb.NewDefaultOptions() @@ -62,7 +63,12 @@ func openDB(path string, bulk bool) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHan // opts for outputs are different: // no bloom filter - from documentation: If most of your queries are executed using iterators, you shouldn't set bloom filter + bbtoOutputs := gorocksdb.NewDefaultBlockBasedTableOptions() + bbtoOutputs.SetBlockSize(16 << 10) // 16kb + bbtoOutputs.SetBlockCache(c) // 8 gb + optsOutputs := gorocksdb.NewDefaultOptions() + optsOutputs.SetBlockBasedTableFactory(bbtoOutputs) optsOutputs.SetCreateIfMissing(true) optsOutputs.SetCreateIfMissingColumnFamilies(true) optsOutputs.SetMaxBackgroundCompactions(4)