diff options
author | mrambacher <mrambach@gmail.com> | 2020-09-14 16:59:00 -0700 |
---|---|---|
committer | Facebook GitHub Bot <facebook-github-bot@users.noreply.github.com> | 2020-09-14 17:01:01 -0700 |
commit | 7d472accdca996d7d83ae8ce78ad17f799696926 (patch) | |
tree | 1995138b9f6795f17ed07bbbffd67aef0fc195a8 /utilities | |
parent | 18a3227b122d528a45bae842a9bbbe3403fff100 (diff) |
Bring the Configurable options together (#5753)
Summary:
This PR merges the functionality of making the ColumnFamilyOptions, TableFactory, and DBOptions into Configurable into a single PR, resolving any merge conflicts
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5753
Reviewed By: ajkr
Differential Revision: D23385030
Pulled By: zhichao-cao
fbshipit-source-id: 8b977a7731556230b9b8c5a081b98e49ee4f160a
Diffstat (limited to 'utilities')
-rw-r--r-- | utilities/memory/memory_test.cc | 10 | ||||
-rw-r--r-- | utilities/options/options_util.cc | 10 | ||||
-rw-r--r-- | utilities/options/options_util_test.cc | 47 | ||||
-rw-r--r-- | utilities/simulator_cache/sim_cache_test.cc | 6 |
4 files changed, 29 insertions, 44 deletions
diff --git a/utilities/memory/memory_test.cc b/utilities/memory/memory_test.cc index 914900362..d035afc03 100644 --- a/utilities/memory/memory_test.cc +++ b/utilities/memory/memory_test.cc @@ -38,12 +38,10 @@ class MemoryTest : public testing::Test { void GetCachePointersFromTableFactory( const TableFactory* factory, std::unordered_set<const Cache*>* cache_set) { - const BlockBasedTableFactory* bbtf = - dynamic_cast<const BlockBasedTableFactory*>(factory); - if (bbtf != nullptr) { - const auto bbt_opts = bbtf->table_options(); - cache_set->insert(bbt_opts.block_cache.get()); - cache_set->insert(bbt_opts.block_cache_compressed.get()); + const auto bbto = factory->GetOptions<BlockBasedTableOptions>(); + if (bbto != nullptr) { + cache_set->insert(bbto->block_cache.get()); + cache_set->insert(bbto->block_cache_compressed.get()); } } diff --git a/utilities/options/options_util.cc b/utilities/options/options_util.cc index 63feacdfd..2eb398ed5 100644 --- a/utilities/options/options_util.cc +++ b/utilities/options/options_util.cc @@ -47,11 +47,11 @@ Status LoadOptionsFromFile(const ConfigOptions& config_options, cf_descs->push_back({cf_names[i], cf_opts[i]}); if (cache != nullptr) { TableFactory* tf = cf_opts[i].table_factory.get(); - if (tf != nullptr && tf->GetOptions() != nullptr && - tf->Name() == BlockBasedTableFactory::kName) { - auto* loaded_bbt_opt = - reinterpret_cast<BlockBasedTableOptions*>(tf->GetOptions()); - loaded_bbt_opt->block_cache = *cache; + if (tf != nullptr) { + auto* opts = tf->GetOptions<BlockBasedTableOptions>(); + if (opts != nullptr) { + opts->block_cache = *cache; + } } } } diff --git a/utilities/options/options_util_test.cc b/utilities/options/options_util_test.cc index e9789e389..9bd736c1f 100644 --- a/utilities/options/options_util_test.cc +++ b/utilities/options/options_util_test.cc @@ -43,10 +43,6 @@ class OptionsUtilTest : public testing::Test { Random rnd_; }; -bool IsBlockBasedTableFactory(TableFactory* tf) { - return tf->Name() == BlockBasedTableFactory::kName; -} - TEST_F(OptionsUtilTest, SaveAndLoad) { const size_t kCFCount = 5; @@ -80,11 +76,9 @@ TEST_F(OptionsUtilTest, SaveAndLoad) { ASSERT_EQ(cf_names[i], loaded_cf_descs[i].name); ASSERT_OK(RocksDBOptionsParser::VerifyCFOptions( exact, cf_opts[i], loaded_cf_descs[i].options)); - if (IsBlockBasedTableFactory(cf_opts[i].table_factory.get())) { - ASSERT_OK(RocksDBOptionsParser::VerifyTableFactory( - exact, cf_opts[i].table_factory.get(), - loaded_cf_descs[i].options.table_factory.get())); - } + ASSERT_OK(RocksDBOptionsParser::VerifyTableFactory( + exact, cf_opts[i].table_factory.get(), + loaded_cf_descs[i].options.table_factory.get())); test::RandomInitCFOptions(&cf_opts[i], db_opt, &rnd_); ASSERT_NOK(RocksDBOptionsParser::VerifyCFOptions( exact, cf_opts[i], loaded_cf_descs[i].options)); @@ -137,13 +131,12 @@ TEST_F(OptionsUtilTest, SaveAndLoadWithCacheCheck) { ASSERT_OK(LoadOptionsFromFile(config_options, kFileName, &loaded_db_opt, &loaded_cf_descs, &cache)); for (size_t i = 0; i < loaded_cf_descs.size(); i++) { - if (IsBlockBasedTableFactory(cf_opts[i].table_factory.get())) { - auto* loaded_bbt_opt = reinterpret_cast<BlockBasedTableOptions*>( - loaded_cf_descs[i].options.table_factory->GetOptions()); - // Expect the same cache will be loaded - if (loaded_bbt_opt != nullptr) { - ASSERT_EQ(loaded_bbt_opt->block_cache.get(), cache.get()); - } + auto* loaded_bbt_opt = + loaded_cf_descs[i] + .options.table_factory->GetOptions<BlockBasedTableOptions>(); + // Expect the same cache will be loaded + if (loaded_bbt_opt != nullptr) { + ASSERT_EQ(loaded_bbt_opt->block_cache.get(), cache.get()); } } @@ -151,13 +144,12 @@ TEST_F(OptionsUtilTest, SaveAndLoadWithCacheCheck) { ASSERT_OK(LoadOptionsFromFile(kFileName, env_.get(), &loaded_db_opt, &loaded_cf_descs, false, &cache)); for (size_t i = 0; i < loaded_cf_descs.size(); i++) { - if (IsBlockBasedTableFactory(cf_opts[i].table_factory.get())) { - auto* loaded_bbt_opt = reinterpret_cast<BlockBasedTableOptions*>( - loaded_cf_descs[i].options.table_factory->GetOptions()); - // Expect the same cache will be loaded - if (loaded_bbt_opt != nullptr) { - ASSERT_EQ(loaded_bbt_opt->block_cache.get(), cache.get()); - } + auto* loaded_bbt_opt = + loaded_cf_descs[i] + .options.table_factory->GetOptions<BlockBasedTableOptions>(); + // Expect the same cache will be loaded + if (loaded_bbt_opt != nullptr) { + ASSERT_EQ(loaded_bbt_opt->block_cache.get(), cache.get()); } } } @@ -187,18 +179,13 @@ class DummyTableFactory : public TableFactory { return nullptr; } - Status SanitizeOptions( + Status ValidateOptions( const DBOptions& /*db_opts*/, const ColumnFamilyOptions& /*cf_opts*/) const override { return Status::NotSupported(); } - std::string GetPrintableTableOptions() const override { return ""; } - - Status GetOptionString(const ConfigOptions& /*opts*/, - std::string* /*opt_string*/) const override { - return Status::OK(); - } + std::string GetPrintableOptions() const override { return ""; } }; class DummyMergeOperator : public MergeOperator { diff --git a/utilities/simulator_cache/sim_cache_test.cc b/utilities/simulator_cache/sim_cache_test.cc index 7b181913a..2c21c66b6 100644 --- a/utilities/simulator_cache/sim_cache_test.cc +++ b/utilities/simulator_cache/sim_cache_test.cc @@ -35,7 +35,7 @@ class SimCacheTest : public DBTestBase { options.create_if_missing = true; // options.compression = kNoCompression; options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics(); - options.table_factory.reset(new BlockBasedTableFactory(table_options)); + options.table_factory.reset(NewBlockBasedTableFactory(table_options)); return options; } @@ -84,7 +84,7 @@ TEST_F(SimCacheTest, SimCache) { co.metadata_charge_policy = kDontChargeCacheMetadata; std::shared_ptr<SimCache> simCache = NewSimCache(NewLRUCache(co), 20000, 0); table_options.block_cache = simCache; - options.table_factory.reset(new BlockBasedTableFactory(table_options)); + options.table_factory.reset(NewBlockBasedTableFactory(table_options)); Reopen(options); RecordCacheCounters(options); @@ -151,7 +151,7 @@ TEST_F(SimCacheTest, SimCacheLogging) { co.metadata_charge_policy = kDontChargeCacheMetadata; std::shared_ptr<SimCache> sim_cache = NewSimCache(NewLRUCache(co), 20000, 0); table_options.block_cache = sim_cache; - options.table_factory.reset(new BlockBasedTableFactory(table_options)); + options.table_factory.reset(NewBlockBasedTableFactory(table_options)); Reopen(options); int num_block_entries = 20; |