Disable paranoid checks and expose max FDs option.

We shouldn't need paranoid checks now.  We also shouldn't need
too many FDs being open due to rule evaluator hitting in-memory
values stream.
This commit is contained in:
Matt T. Proud 2013-06-24 12:10:14 +02:00
parent 4137c75523
commit b811ccc161

View file

@ -29,7 +29,8 @@ import (
var ( var (
leveldbFlushOnMutate = flag.Bool("leveldbFlushOnMutate", false, "Whether LevelDB should flush every operation to disk upon mutation before returning (bool).") leveldbFlushOnMutate = flag.Bool("leveldbFlushOnMutate", false, "Whether LevelDB should flush every operation to disk upon mutation before returning (bool).")
leveldbUseSnappy = flag.Bool("leveldbUseSnappy", true, "Whether LevelDB attempts to use Snappy for compressing elements (bool).") leveldbUseSnappy = flag.Bool("leveldbUseSnappy", true, "Whether LevelDB attempts to use Snappy for compressing elements (bool).")
leveldbUseParanoidChecks = flag.Bool("leveldbUseParanoidChecks", true, "Whether LevelDB uses expensive checks (bool).") leveldbUseParanoidChecks = flag.Bool("leveldbUseParanoidChecks", false, "Whether LevelDB uses expensive checks (bool).")
maximumOpenFiles = flag.Int("leveldb.maximumOpenFiles", 128, "The maximum number of files each LevelDB may maintain.")
) )
// LevelDBPersistence is a disk-backed sorted key-value store. // LevelDBPersistence is a disk-backed sorted key-value store.
@ -168,7 +169,7 @@ func (i levigoIterator) GetError() (err error) {
return i.iterator.GetError() return i.iterator.GetError()
} }
func NewLevelDBPersistence(storageRoot string, cacheCapacity, bitsPerBloomFilterEncoded int) (p *LevelDBPersistence, err error) { func NewLevelDBPersistence(storageRoot string, cacheCapacity, bitsPerBloomFilterEncoded int) (*LevelDBPersistence, error) {
options := levigo.NewOptions() options := levigo.NewOptions()
options.SetCreateIfMissing(true) options.SetCreateIfMissing(true)
options.SetParanoidChecks(*leveldbUseParanoidChecks) options.SetParanoidChecks(*leveldbUseParanoidChecks)
@ -184,18 +185,19 @@ func NewLevelDBPersistence(storageRoot string, cacheCapacity, bitsPerBloomFilter
filterPolicy := levigo.NewBloomFilter(bitsPerBloomFilterEncoded) filterPolicy := levigo.NewBloomFilter(bitsPerBloomFilterEncoded)
options.SetFilterPolicy(filterPolicy) options.SetFilterPolicy(filterPolicy)
options.SetMaxOpenFiles(*maximumOpenFiles)
storage, err := levigo.Open(storageRoot, options) storage, err := levigo.Open(storageRoot, options)
if err != nil { if err != nil {
return return nil, err
} }
var ( readOptions := levigo.NewReadOptions()
readOptions = levigo.NewReadOptions()
writeOptions = levigo.NewWriteOptions()
)
writeOptions := levigo.NewWriteOptions()
writeOptions.SetSync(*leveldbFlushOnMutate) writeOptions.SetSync(*leveldbFlushOnMutate)
p = &LevelDBPersistence{
return &LevelDBPersistence{
path: storageRoot, path: storageRoot,
cache: cache, cache: cache,
@ -206,9 +208,7 @@ func NewLevelDBPersistence(storageRoot string, cacheCapacity, bitsPerBloomFilter
writeOptions: writeOptions, writeOptions: writeOptions,
storage: storage, storage: storage,
} }, nil
return
} }
func (l *LevelDBPersistence) Close() { func (l *LevelDBPersistence) Close() {