On Wed, Jun 01, 2016 at 12:49:53AM +0800, Haomai Wang wrote: > Hi Sage and Mark, > > As mentioned in BlueStore standup, I found rocksdb iterator *Seek* > won't use bloom filter like *Get*. > > *Get* impl: it will look at filter firstly > https://github.com/facebook/rocksdb/blob/master/table/block_based_table_reader.cc#L1369 > > Iterator *Seek*: it will do binary search, by default we don't specify > prefix feature(https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes). > https://github.com/facebook/rocksdb/blob/master/table/block.cc#L94 > > [..] > --- a/db/db_bench.cc > +++ b/db/db_bench.cc > @@ -2923,14 +2923,12 @@ class Benchmark { > int64_t key_rand = thread->rand.Next() & (pot - 1); > GenerateKeyFromInt(key_rand, FLAGS_num, &key); > ++read; > - auto status = db->Get(options, key, &value); > - if (status.ok()) { > - ++found; > - } else if (!status.IsNotFound()) { > - fprintf(stderr, "Get returned an error: %s\n", > - status.ToString().c_str()); > - abort(); > - } > + Iterator* iter = db->NewIterator(options); > + iter->Seek(key); > + if (iter->Valid() && iter->key().compare(key) == 0) { > + found++; > + } > + > if (key_rand >= FLAGS_num) { > ++nonexist; > } Aren't you missing "delete iter" here? -- Piotr Dałek branch@xxxxxxxxxxxxxxxx http://blog.predictor.org.pl -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html