From f55d3009c0bd027936050514b4f05319caf11905 Mon Sep 17 00:00:00 2001 From: Islam AbdelRahman Date: Tue, 13 Oct 2015 17:33:23 -0700 Subject: [PATCH] Make db_test_util compile under ROCKSDB_LITE Summary: db_test_util is used in multiple test files but it dont compile under ROCKSDB_LITE Test Plan: make check make static_lib OPT=-DROCKSDB_LITE make db_wal_test Reviewers: igor, yhchiang, rven, sdong Reviewed By: sdong Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D48579 --- db/db_impl.cc | 34 +++++++++---------- db/db_test_util.cc | 81 ++++++++++++++++++++++++++++------------------ db/db_test_util.h | 10 +++--- 3 files changed, 72 insertions(+), 53 deletions(-) diff --git a/db/db_impl.cc b/db/db_impl.cc index e6b9d0353..fe10e2086 100644 --- a/db/db_impl.cc +++ b/db/db_impl.cc @@ -2168,6 +2168,23 @@ Status DBImpl::RunManualCompaction(ColumnFamilyData* cfd, int input_level, return manual.status; } +InternalIterator* DBImpl::NewInternalIterator( + Arena* arena, ColumnFamilyHandle* column_family) { + ColumnFamilyData* cfd; + if (column_family == nullptr) { + cfd = default_cf_handle_->cfd(); + } else { + auto cfh = reinterpret_cast(column_family); + cfd = cfh->cfd(); + } + + mutex_.Lock(); + SuperVersion* super_version = cfd->GetSuperVersion()->Ref(); + mutex_.Unlock(); + ReadOptions roptions; + return NewInternalIterator(roptions, cfd, super_version, arena); +} + Status DBImpl::FlushMemTable(ColumnFamilyData* cfd, const FlushOptions& flush_options) { Status s; @@ -3307,23 +3324,6 @@ Status DBImpl::AddFile(ColumnFamilyHandle* column_family, } return status; } - -InternalIterator* DBImpl::NewInternalIterator( - Arena* arena, ColumnFamilyHandle* column_family) { - ColumnFamilyData* cfd; - if (column_family == nullptr) { - cfd = default_cf_handle_->cfd(); - } else { - auto cfh = reinterpret_cast(column_family); - cfd = cfh->cfd(); - } - - mutex_.Lock(); - SuperVersion* super_version = cfd->GetSuperVersion()->Ref(); - mutex_.Unlock(); - ReadOptions roptions; - return NewInternalIterator(roptions, cfd, super_version, arena); -} #endif // ROCKSDB_LITE Status DBImpl::CreateColumnFamily(const ColumnFamilyOptions& cf_options, diff --git a/db/db_test_util.cc b/db/db_test_util.cc index 01fa979e4..4f4be7052 100644 --- a/db/db_test_util.cc +++ b/db/db_test_util.cc @@ -78,6 +78,19 @@ DBTestBase::~DBTestBase() { // test. Return false if there are no more configurations to test. bool DBTestBase::ChangeOptions(int skip_mask) { for (option_config_++; option_config_ < kEnd; option_config_++) { +#ifdef ROCKSDB_LITE + // These options are not supported in ROCKSDB_LITE + if (option_config_ == kHashSkipList || + option_config_ == kPlainTableFirstBytePrefix || + option_config_ == kPlainTableCappedPrefix || + option_config_ == kPlainTableCappedPrefixNonMmap || + option_config_ == kPlainTableAllBytesPrefix || + option_config_ == kVectorRep || option_config_ == kHashLinkList || + option_config_ == kHashCuckoo) { + continue; + } +#endif + if ((skip_mask & kSkipDeletesFilterFirst) && option_config_ == kDeletesFilterFirst) { continue; @@ -202,6 +215,7 @@ Options DBTestBase::CurrentOptions( BlockBasedTableOptions table_options; bool set_block_based_table_factory = true; switch (option_config_) { +#ifndef ROCKSDB_LITE case kHashSkipList: options.prefix_extractor.reset(NewFixedPrefixTransform(1)); options.memtable_factory.reset(NewHashSkipListRepFactory(16)); @@ -234,6 +248,19 @@ Options DBTestBase::CurrentOptions( options.max_sequential_skip_in_iterations = 999999; set_block_based_table_factory = false; break; + case kVectorRep: + options.memtable_factory.reset(new VectorRepFactory(100)); + break; + case kHashLinkList: + options.prefix_extractor.reset(NewFixedPrefixTransform(1)); + options.memtable_factory.reset( + NewHashLinkListRepFactory(4, 0, 3, true, 4)); + break; + case kHashCuckoo: + options.memtable_factory.reset( + NewHashCuckooRepFactory(options.write_buffer_size)); + break; +#endif // ROCKSDB_LITE case kMergePut: options.merge_operator = MergeOperators::CreatePutOperator(); break; @@ -270,18 +297,6 @@ Options DBTestBase::CurrentOptions( case kDeletesFilterFirst: options.filter_deletes = true; break; - case kVectorRep: - options.memtable_factory.reset(new VectorRepFactory(100)); - break; - case kHashLinkList: - options.prefix_extractor.reset(NewFixedPrefixTransform(1)); - options.memtable_factory.reset( - NewHashLinkListRepFactory(4, 0, 3, true, 4)); - break; - case kHashCuckoo: - options.memtable_factory.reset( - NewHashCuckooRepFactory(options.write_buffer_size)); - break; case kUniversalCompaction: options.compaction_style = kCompactionStyleUniversal; options.num_levels = 1; @@ -599,6 +614,7 @@ std::string DBTestBase::AllEntriesFor(const Slice& user_key, int cf) { return result; } +#ifndef ROCKSDB_LITE int DBTestBase::NumSortedRuns(int cf) { ColumnFamilyMetaData cf_meta; if (cf == 0) { @@ -625,20 +641,6 @@ uint64_t DBTestBase::TotalSize(int cf) { return cf_meta.size; } -int DBTestBase::NumTableFilesAtLevel(int level, int cf) { - std::string property; - if (cf == 0) { - // default cfd - EXPECT_TRUE(db_->GetProperty( - "rocksdb.num-files-at-level" + NumberToString(level), &property)); - } else { - EXPECT_TRUE(db_->GetProperty( - handles_[cf], "rocksdb.num-files-at-level" + NumberToString(level), - &property)); - } - return atoi(property.c_str()); -} - uint64_t DBTestBase::SizeAtLevel(int level) { std::vector metadata; db_->GetLiveFilesMetaData(&metadata); @@ -665,6 +667,27 @@ int DBTestBase::TotalLiveFiles(int cf) { return num_files; } +size_t DBTestBase::CountLiveFiles() { + std::vector metadata; + db_->GetLiveFilesMetaData(&metadata); + return metadata.size(); +} +#endif // ROCKSDB_LITE + +int DBTestBase::NumTableFilesAtLevel(int level, int cf) { + std::string property; + if (cf == 0) { + // default cfd + EXPECT_TRUE(db_->GetProperty( + "rocksdb.num-files-at-level" + NumberToString(level), &property)); + } else { + EXPECT_TRUE(db_->GetProperty( + handles_[cf], "rocksdb.num-files-at-level" + NumberToString(level), + &property)); + } + return atoi(property.c_str()); +} + int DBTestBase::TotalTableFiles(int cf, int levels) { if (levels == -1) { levels = CurrentOptions().num_levels; @@ -707,12 +730,6 @@ size_t DBTestBase::CountFiles() { return files.size() + logfiles.size(); } -size_t DBTestBase::CountLiveFiles() { - std::vector metadata; - db_->GetLiveFilesMetaData(&metadata); - return metadata.size(); -} - uint64_t DBTestBase::Size(const Slice& start, const Slice& limit, int cf) { Range r(start, limit); uint64_t size; diff --git a/db/db_test_util.h b/db/db_test_util.h index af228d5e6..9f1b96a71 100644 --- a/db/db_test_util.h +++ b/db/db_test_util.h @@ -566,16 +566,20 @@ class DBTestBase : public testing::Test { std::string AllEntriesFor(const Slice& user_key, int cf = 0); +#ifndef ROCKSDB_LITE int NumSortedRuns(int cf = 0); uint64_t TotalSize(int cf = 0); - int NumTableFilesAtLevel(int level, int cf = 0); - uint64_t SizeAtLevel(int level); int TotalLiveFiles(int cf = 0); + size_t CountLiveFiles(); +#endif // ROCKSDB_LITE + + int NumTableFilesAtLevel(int level, int cf = 0); + int TotalTableFiles(int cf = 0, int levels = -1); // Return spread of files per level @@ -583,8 +587,6 @@ class DBTestBase : public testing::Test { size_t CountFiles(); - size_t CountLiveFiles(); - uint64_t Size(const Slice& start, const Slice& limit, int cf = 0); void Compact(int cf, const Slice& start, const Slice& limit,