// NewIterator initializes a new iterator and returns it. func (s *Store) NewIterator() *rdb.Iterator { ro := rdb.NewDefaultReadOptions() // SetFillCache should be set to false for bulk reads to avoid caching data // while doing bulk scans. ro.SetFillCache(false) return s.db.NewIterator(ro) }
func (s *Store) setOpts() { s.opt = rdb.NewDefaultOptions() s.blockopt = rdb.NewDefaultBlockBasedTableOptions() s.opt.SetBlockBasedTableFactory(s.blockopt) // If you want to access blockopt.blockCache, you need to grab handles to them // as well. Otherwise, they will be nil. However, for now, we do not really need // to do this. // s.blockopt.SetBlockCache(rocksdb.NewLRUCache(blockCacheSize)) // s.blockopt.SetBlockCacheCompressed(rocksdb.NewLRUCache(blockCacheSize)) s.opt.SetCreateIfMissing(true) fp := rdb.NewBloomFilter(16) s.blockopt.SetFilterPolicy(fp) s.ropt = rdb.NewDefaultReadOptions() s.wopt = rdb.NewDefaultWriteOptions() s.wopt.SetSync(false) // We don't need to do synchronous writes. }