Summary:
If users directly call OptimizeForPointLookup(), it is broken as the option isn't compatible with parallel memtable insert. Fix it by using memtable bloomo filter instead.
Closes https://github.com/facebook/rocksdb/pull/1791
Differential Revision:
D4442836
Pulled By: siying
fbshipit-source-id:
bf6c9cd
rocksdb::SyncPoint::GetInstance()->DisableProcessing();
}
+
+TEST_F(DBTest2, OptimizeForPointLookup) {
+ Options options = CurrentOptions();
+ Close();
+ options.OptimizeForPointLookup(2);
+ ASSERT_OK(DB::Open(options, dbname_, &db_));
+
+ ASSERT_OK(Put("foo", "v1"));
+ ASSERT_EQ("v1", Get("foo"));
+ Flush();
+ ASSERT_EQ("v1", Get("foo"));
+}
#endif // ROCKSDB_LITE
} // namespace rocksdb
block_based_options.block_cache =
NewLRUCache(static_cast<size_t>(block_cache_size_mb * 1024 * 1024));
table_factory.reset(new BlockBasedTableFactory(block_based_options));
- memtable_factory.reset(NewHashLinkListRepFactory());
+ memtable_prefix_bloom_size_ratio = 0.02;
return this;
}