From d6e9b5caa46693b93755d144e88e9ab9432743c4 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Mon, 5 Feb 2018 17:12:32 +0100 Subject: [PATCH] Use special RocksDB options for outputs --- db/rocksdb.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/db/rocksdb.go b/db/rocksdb.go index 726f3fd9..4d2b5f46 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -55,18 +55,30 @@ func openDB(path string, bulk bool) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHan opts.SetBytesPerSync(1 << 20) // 1mb opts.SetWriteBufferSize(2 << 30) // 2 gb opts.SetMaxOpenFiles(25000) + + // 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 + optsOutputs := gorocksdb.NewDefaultOptions() + optsOutputs.SetCreateIfMissing(true) + optsOutputs.SetCreateIfMissingColumnFamilies(true) + optsOutputs.SetMaxBackgroundCompactions(4) + optsOutputs.SetMaxBackgroundFlushes(2) + optsOutputs.SetBytesPerSync(1 << 20) // 1mb + optsOutputs.SetWriteBufferSize(2 << 30) // 2 gb + optsOutputs.SetMaxOpenFiles(25000) + if bulk { opts.PrepareForBulkLoad() + optsOutputs.PrepareForBulkLoad() } - fcOptions := []*gorocksdb.Options{opts, opts, opts, opts} + fcOptions := []*gorocksdb.Options{opts, opts, optsOutputs, opts} db, cfh, err := gorocksdb.OpenDbColumnFamilies(opts, path, cfNames, fcOptions) if err != nil { return nil, nil, err } return db, cfh, nil - } // NewRocksDB opens an internal handle to RocksDB environment. Close