summaryrefslogtreecommitdiff
path: root/utilities
diff options
context:
space:
mode:
authormrambacher <mrambach@gmail.com>2020-09-14 16:59:00 -0700
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>2020-09-14 17:01:01 -0700
commit7d472accdca996d7d83ae8ce78ad17f799696926 (patch)
tree1995138b9f6795f17ed07bbbffd67aef0fc195a8 /utilities
parent18a3227b122d528a45bae842a9bbbe3403fff100 (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.cc10
-rw-r--r--utilities/options/options_util.cc10
-rw-r--r--utilities/options/options_util_test.cc47
-rw-r--r--utilities/simulator_cache/sim_cache_test.cc6
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;