remove all remaining references to cfd->options()

Summary:
The very last reference happens in DBImpl::GetOptions()
I built with both DBImpl::GetOptions() and ColumnFamilyData::options() commented out

Test Plan: make all check

Reviewers: sdong, yhchiang, igor

Reviewed By: igor

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D29073
This commit is contained in:
Lei Jin 2014-11-18 10:20:10 -08:00
parent 1e4a45aac8
commit 8d3f8f9696
15 changed files with 25 additions and 33 deletions

View File

@ -752,11 +752,6 @@ MemTable* ColumnFamilyMemTablesImpl::GetMemTable() const {
return current_->mem(); return current_->mem();
} }
const Options* ColumnFamilyMemTablesImpl::GetOptions() const {
assert(current_ != nullptr);
return current_->options();
}
ColumnFamilyHandle* ColumnFamilyMemTablesImpl::GetColumnFamilyHandle() { ColumnFamilyHandle* ColumnFamilyMemTablesImpl::GetColumnFamilyHandle() {
assert(current_ != nullptr); assert(current_ != nullptr);
return &handle_; return &handle_;

View File

@ -172,9 +172,10 @@ class ColumnFamilyData {
void SetLogNumber(uint64_t log_number) { log_number_ = log_number; } void SetLogNumber(uint64_t log_number) { log_number_ = log_number; }
uint64_t GetLogNumber() const { return log_number_; } uint64_t GetLogNumber() const { return log_number_; }
// thread-safe // !!! To be deprecated! Please don't not use this function anymore!
// To be deprecated! Please don't not use this function anymore!
const Options* options() const { return &options_; } const Options* options() const { return &options_; }
// thread-safe
const EnvOptions* soptions() const; const EnvOptions* soptions() const;
const ImmutableCFOptions* ioptions() const { return &ioptions_; } const ImmutableCFOptions* ioptions() const { return &ioptions_; }
// REQUIRES: DB mutex held // REQUIRES: DB mutex held
@ -444,10 +445,6 @@ class ColumnFamilyMemTablesImpl : public ColumnFamilyMemTables {
// REQUIRES: Seek() called first // REQUIRES: Seek() called first
virtual MemTable* GetMemTable() const override; virtual MemTable* GetMemTable() const override;
// Returns options for selected column family
// REQUIRES: Seek() called first
virtual const Options* GetOptions() const override;
// Returns column family handle for the selected column family // Returns column family handle for the selected column family
virtual ColumnFamilyHandle* GetColumnFamilyHandle() override; virtual ColumnFamilyHandle* GetColumnFamilyHandle() override;

View File

@ -81,8 +81,8 @@ Status DBImpl::TEST_CompactRange(int level, const Slice* begin,
cfd = cfh->cfd(); cfd = cfh->cfd();
} }
int output_level = int output_level =
(cfd->options()->compaction_style == kCompactionStyleUniversal || (cfd->ioptions()->compaction_style == kCompactionStyleUniversal ||
cfd->options()->compaction_style == kCompactionStyleFIFO) cfd->ioptions()->compaction_style == kCompactionStyleFIFO)
? level ? level
: level + 1; : level + 1;
return RunManualCompaction(cfd, level, output_level, 0, begin, end); return RunManualCompaction(cfd, level, output_level, 0, begin, end);

View File

@ -119,7 +119,7 @@ ForwardIterator::ForwardIterator(DBImpl* db, const ReadOptions& read_options,
: db_(db), : db_(db),
read_options_(read_options), read_options_(read_options),
cfd_(cfd), cfd_(cfd),
prefix_extractor_(cfd->options()->prefix_extractor.get()), prefix_extractor_(cfd->ioptions()->prefix_extractor),
user_comparator_(cfd->user_comparator()), user_comparator_(cfd->user_comparator()),
immutable_min_heap_(MinIterComparator(&cfd_->internal_comparator())), immutable_min_heap_(MinIterComparator(&cfd_->internal_comparator())),
sv_(current_sv), sv_(current_sv),

View File

@ -361,8 +361,8 @@ void InternalStats::DumpCFStats(std::string* value) {
const VersionStorageInfo* vstorage = cfd_->current()->storage_info(); const VersionStorageInfo* vstorage = cfd_->current()->storage_info();
int num_levels_to_check = int num_levels_to_check =
(cfd_->options()->compaction_style != kCompactionStyleUniversal && (cfd_->ioptions()->compaction_style != kCompactionStyleUniversal &&
cfd_->options()->compaction_style != kCompactionStyleFIFO) cfd_->ioptions()->compaction_style != kCompactionStyleFIFO)
? vstorage->num_levels() - 1 ? vstorage->num_levels() - 1
: 1; : 1;

View File

@ -222,7 +222,7 @@ class Repairer {
WriteBatch batch; WriteBatch batch;
MemTable* mem = new MemTable(icmp_, ioptions_, MemTable* mem = new MemTable(icmp_, ioptions_,
MutableCFOptions(options_, ioptions_)); MutableCFOptions(options_, ioptions_));
auto cf_mems_default = new ColumnFamilyMemTablesDefault(mem, &options_); auto cf_mems_default = new ColumnFamilyMemTablesDefault(mem);
mem->Ref(); mem->Ref();
int counter = 0; int counter = 0;
while (reader.ReadRecord(&record, &scratch)) { while (reader.ReadRecord(&record, &scratch)) {

View File

@ -2639,7 +2639,7 @@ Iterator* VersionSet::MakeInputIterator(Compaction* c) {
auto cfd = c->column_family_data(); auto cfd = c->column_family_data();
ReadOptions read_options; ReadOptions read_options;
read_options.verify_checksums = read_options.verify_checksums =
cfd->options()->verify_checksums_in_compaction; c->mutable_cf_options()->verify_checksums_in_compaction;
read_options.fill_cache = false; read_options.fill_cache = false;
// Level-0 files have to be merged together. For other levels, // Level-0 files have to be merged together. For other levels,

View File

@ -26,15 +26,14 @@ class ColumnFamilyMemTables {
// been processed) // been processed)
virtual uint64_t GetLogNumber() const = 0; virtual uint64_t GetLogNumber() const = 0;
virtual MemTable* GetMemTable() const = 0; virtual MemTable* GetMemTable() const = 0;
virtual const Options* GetOptions() const = 0;
virtual ColumnFamilyHandle* GetColumnFamilyHandle() = 0; virtual ColumnFamilyHandle* GetColumnFamilyHandle() = 0;
virtual void CheckMemtableFull() = 0; virtual void CheckMemtableFull() = 0;
}; };
class ColumnFamilyMemTablesDefault : public ColumnFamilyMemTables { class ColumnFamilyMemTablesDefault : public ColumnFamilyMemTables {
public: public:
ColumnFamilyMemTablesDefault(MemTable* mem, const Options* options) explicit ColumnFamilyMemTablesDefault(MemTable* mem)
: ok_(false), mem_(mem), options_(options) {} : ok_(false), mem_(mem) {}
bool Seek(uint32_t column_family_id) override { bool Seek(uint32_t column_family_id) override {
ok_ = (column_family_id == 0); ok_ = (column_family_id == 0);
@ -48,11 +47,6 @@ class ColumnFamilyMemTablesDefault : public ColumnFamilyMemTables {
return mem_; return mem_;
} }
const Options* GetOptions() const override {
assert(ok_);
return options_;
}
ColumnFamilyHandle* GetColumnFamilyHandle() override { return nullptr; } ColumnFamilyHandle* GetColumnFamilyHandle() override { return nullptr; }
void CheckMemtableFull() override {} void CheckMemtableFull() override {}
@ -60,7 +54,6 @@ class ColumnFamilyMemTablesDefault : public ColumnFamilyMemTables {
private: private:
bool ok_; bool ok_;
MemTable* mem_; MemTable* mem_;
const Options* const options_;
}; };
// WriteBatchInternal provides static methods for manipulating a // WriteBatchInternal provides static methods for manipulating a

View File

@ -32,7 +32,7 @@ static std::string PrintContents(WriteBatch* b) {
MutableCFOptions(options, ioptions)); MutableCFOptions(options, ioptions));
mem->Ref(); mem->Ref();
std::string state; std::string state;
ColumnFamilyMemTablesDefault cf_mems_default(mem, &options); ColumnFamilyMemTablesDefault cf_mems_default(mem);
Status s = WriteBatchInternal::InsertInto(b, &cf_mems_default); Status s = WriteBatchInternal::InsertInto(b, &cf_mems_default);
int count = 0; int count = 0;
Arena arena; Arena arena;

View File

@ -421,7 +421,10 @@ struct ColumnFamilyOptions {
// If true, compaction will verify checksum on every read that happens // If true, compaction will verify checksum on every read that happens
// as part of compaction // as part of compaction
//
// Default: true // Default: true
//
// Dynamically changeable through SetOptions() API
bool verify_checksums_in_compaction; bool verify_checksums_in_compaction;
// The options needed to support Universal Style compactions // The options needed to support Universal Style compactions

View File

@ -344,7 +344,7 @@ jbyteArray Java_org_rocksdb_test_WriteBatchTest_getContents(
rocksdb::ImmutableCFOptions(options))); rocksdb::ImmutableCFOptions(options)));
mem->Ref(); mem->Ref();
std::string state; std::string state;
rocksdb::ColumnFamilyMemTablesDefault cf_mems_default(mem, &options); rocksdb::ColumnFamilyMemTablesDefault cf_mems_default(mem);
rocksdb::Status s = rocksdb::Status s =
rocksdb::WriteBatchInternal::InsertInto(b, &cf_mems_default); rocksdb::WriteBatchInternal::InsertInto(b, &cf_mems_default);
int count = 0; int count = 0;

View File

@ -1879,7 +1879,7 @@ TEST(MemTableTest, Simple) {
batch.Put(std::string("k2"), std::string("v2")); batch.Put(std::string("k2"), std::string("v2"));
batch.Put(std::string("k3"), std::string("v3")); batch.Put(std::string("k3"), std::string("v3"));
batch.Put(std::string("largekey"), std::string("vlarge")); batch.Put(std::string("largekey"), std::string("vlarge"));
ColumnFamilyMemTablesDefault cf_mems_default(memtable, &options); ColumnFamilyMemTablesDefault cf_mems_default(memtable);
ASSERT_TRUE(WriteBatchInternal::InsertInto(&batch, &cf_mems_default).ok()); ASSERT_TRUE(WriteBatchInternal::InsertInto(&batch, &cf_mems_default).ok());
Arena arena; Arena arena;

View File

@ -128,6 +128,8 @@ void MutableCFOptions::Dump(Logger* log) const {
Log(log, "max_bytes_for_level_multiplier_additional: %s", result.c_str()); Log(log, "max_bytes_for_level_multiplier_additional: %s", result.c_str());
Log(log, " max_mem_compaction_level: %d", Log(log, " max_mem_compaction_level: %d",
max_mem_compaction_level); max_mem_compaction_level);
Log(log, " verify_checksums_in_compaction: %d",
verify_checksums_in_compaction);
Log(log, " max_sequential_skip_in_iterations: %" PRIu64, Log(log, " max_sequential_skip_in_iterations: %" PRIu64,
max_sequential_skip_in_iterations); max_sequential_skip_in_iterations);
} }

View File

@ -40,6 +40,7 @@ struct MutableCFOptions {
max_bytes_for_level_multiplier_additional( max_bytes_for_level_multiplier_additional(
options.max_bytes_for_level_multiplier_additional), options.max_bytes_for_level_multiplier_additional),
max_mem_compaction_level(options.max_mem_compaction_level), max_mem_compaction_level(options.max_mem_compaction_level),
verify_checksums_in_compaction(options.verify_checksums_in_compaction),
max_sequential_skip_in_iterations( max_sequential_skip_in_iterations(
options.max_sequential_skip_in_iterations) options.max_sequential_skip_in_iterations)
{ {
@ -69,6 +70,7 @@ struct MutableCFOptions {
max_bytes_for_level_base(0), max_bytes_for_level_base(0),
max_bytes_for_level_multiplier(0), max_bytes_for_level_multiplier(0),
max_mem_compaction_level(0), max_mem_compaction_level(0),
verify_checksums_in_compaction(false),
max_sequential_skip_in_iterations(0) max_sequential_skip_in_iterations(0)
{} {}
@ -114,6 +116,7 @@ struct MutableCFOptions {
int max_bytes_for_level_multiplier; int max_bytes_for_level_multiplier;
std::vector<int> max_bytes_for_level_multiplier_additional; std::vector<int> max_bytes_for_level_multiplier_additional;
int max_mem_compaction_level; int max_mem_compaction_level;
bool verify_checksums_in_compaction;
// Misc options // Misc options
uint64_t max_sequential_skip_in_iterations; uint64_t max_sequential_skip_in_iterations;

View File

@ -185,6 +185,8 @@ bool ParseCompactionOptions(const std::string& name, const std::string& value,
} }
} else if (name == "max_mem_compaction_level") { } else if (name == "max_mem_compaction_level") {
new_options->max_mem_compaction_level = ParseInt(value); new_options->max_mem_compaction_level = ParseInt(value);
} else if (name == "verify_checksums_in_compaction") {
new_options->verify_checksums_in_compaction = ParseBoolean(name, value);
} else { } else {
return false; return false;
} }
@ -330,9 +332,6 @@ bool GetColumnFamilyOptionsFromMap(
ParseBoolean(o.first, o.second); ParseBoolean(o.first, o.second);
} else if (o.first == "compaction_style") { } else if (o.first == "compaction_style") {
new_options->compaction_style = ParseCompactionStyle(o.second); new_options->compaction_style = ParseCompactionStyle(o.second);
} else if (o.first == "verify_checksums_in_compaction") {
new_options->verify_checksums_in_compaction =
ParseBoolean(o.first, o.second);
} else if (o.first == "compaction_options_universal") { } else if (o.first == "compaction_options_universal") {
// TODO(ljin): add support // TODO(ljin): add support
throw o.first; throw o.first;