15 #ifndef STORAGE_LEVELDB_DB_VERSION_SET_H_ 16 #define STORAGE_LEVELDB_DB_VERSION_SET_H_ 28 namespace log {
class Writer; }
42 extern int FindFile(
const InternalKeyComparator& icmp,
43 const std::vector<FileMetaData*>&
files,
53 const InternalKeyComparator& icmp,
54 bool disjoint_sorted_files,
55 const std::vector<FileMetaData*>&
files,
56 const Slice* smallest_user_key,
57 const Slice* largest_user_key);
96 std::vector<FileMetaData*>* inputs);
103 const Slice* smallest_user_key,
104 const Slice* largest_user_key);
109 const Slice& largest_user_key);
277 bool ReuseManifest(
const std::string& dscname,
const std::string& dscbase);
281 void GetRange(
const std::vector<FileMetaData*>& inputs,
285 void GetRange2(
const std::vector<FileMetaData*>& inputs1,
286 const std::vector<FileMetaData*>& inputs2,
398 #endif // STORAGE_LEVELDB_DB_VERSION_SET_H_ FileMetaData * input(int which, int i) const
Definition: version_set.h:340
Version * next_
Definition: version_set.h:133
~Version()
Definition: version_set.cc:66
uint64_t ApproximateOffsetOf(Version *v, const InternalKey &key)
Definition: version_set.cc:1153
Definition: version_set.h:165
#define EXCLUSIVE_LOCKS_REQUIRED(...)
Definition: thread_annotations.h:13
size_t level_ptrs_[config::kNumLevels]
Definition: version_set.h:393
uint64_t log_number_
Definition: version_set.h:305
std::vector< FileMetaData * > files_[config::kNumLevels]
Definition: version_set.h:138
Definition: autocompact_test.cc:11
WritableFile * descriptor_file_
Definition: version_set.h:309
TableCache *const table_cache_
Definition: version_set.h:300
uint64_t PrevLogNumber() const
Definition: version_set.h:225
Version * current() const
Definition: version_set.h:185
uint64_t last_sequence_
Definition: version_set.h:304
bool ShouldStopBefore(const Slice &internal_key)
Definition: version_set.cc:1505
int PickLevelForMemTableOutput(const Slice &smallest_user_key, const Slice &largest_user_key)
Definition: version_set.cc:502
int level() const
Definition: version_set.h:330
Definition: version_set.cc:603
Iterator * NewConcatenatingIterator(const ReadOptions &, int level) const
Definition: version_set.cc:227
const std::string dbname_
Definition: version_set.h:298
static const int kNumLevels
Definition: dbformat.h:22
end
Definition: optimize-pngs.py:40
Definition: iterator.h:23
bool UpdateStats(const GetStats &stats)
Definition: version_set.cc:431
Definition: dbformat.h:113
Definition: table_cache.h:21
void Unref()
Definition: version_set.cc:486
Iterator * MakeInputIterator(Compaction *c)
Definition: version_set.cc:1258
Status LogAndApply(VersionEdit *edit, port::Mutex *mu) EXCLUSIVE_LOCKS_REQUIRED(mu)
Definition: version_set.cc:820
Version dummy_versions_
Definition: version_set.h:311
Version * prev_
Definition: version_set.h:134
Version(VersionSet *vset)
Definition: version_set.h:150
Status WriteSnapshot(log::Writer *log)
Definition: version_set.cc:1102
Definition: version_set.h:324
Definition: version_set.h:69
uint64_t MaxOutputFileSize() const
Definition: version_set.h:343
bool SomeFileOverlapsRange(const InternalKeyComparator &icmp, bool disjoint_sorted_files, const std::vector< FileMetaData * > &files, const Slice *smallest_user_key, const Slice *largest_user_key)
Definition: version_set.cc:121
VersionSet(const std::string &dbname, const Options *options, TableCache *table_cache, const InternalKeyComparator *)
Definition: version_set.cc:775
int refs_
Definition: version_set.h:135
int compaction_level_
Definition: version_set.h:148
double compaction_score_
Definition: version_set.h:147
~VersionSet()
Definition: version_set.cc:796
void SetupOtherInputs(Compaction *c)
Definition: version_set.cc:1345
VersionSet * vset_
Definition: version_set.h:132
int level_
Definition: version_set.h:371
dictionary iters
Definition: gen_key_io_test_vectors.py:236
Definition: version_set.h:59
uint64_t ManifestFileNumber() const
Definition: version_set.h:188
void Finalize(Version *v)
Definition: version_set.cc:1064
uint64_t next_file_number_
Definition: version_set.h:302
int64_t NumLevelBytes(int level) const
Definition: version_set.cc:1198
uint64_t max_output_file_size_
Definition: version_set.h:372
bool OverlapInLevel(int level, const Slice *smallest_user_key, const Slice *largest_user_key)
Definition: version_set.cc:495
uint64_t NewFileNumber()
Definition: version_set.h:191
int file_to_compact_level_
Definition: version_set.h:142
const InternalKeyComparator icmp_
Definition: version_set.h:301
void operator=(const VersionSet &)
FileMetaData * file_to_compact_
Definition: version_set.h:141
std::string DebugString() const
Definition: version_set.cc:574
bool NeedsCompaction() const
Definition: version_set.h:251
std::vector< FileMetaData * > inputs_[2]
Definition: version_set.h:377
int NumLevelFiles(int level) const
Definition: version_set.cc:1132
unsigned long long uint64_t
Definition: stdint.h:22
Compaction(const Options *options, int level)
Definition: version_set.cc:1448
log::Writer * descriptor_log_
Definition: version_set.h:310
void MarkFileNumberUsed(uint64_t number)
Definition: version_set.cc:1058
static char dbname[200]
Definition: c_test.c:15
std::string compact_pointer_[config::kNumLevels]
Definition: version_set.h:316
char buffer[100]
Definition: version_set.h:267
void operator=(const Version &)
Definition: version_set.cc:163
bool IsTrivialMove() const
Definition: version_set.cc:1466
void ReuseFileNumber(uint64_t file_number)
Definition: version_set.h:196
uint64_t LogNumber() const
Definition: version_set.h:221
int NumFiles(int level) const
Definition: version_set.h:111
Status Recover(bool *save_manifest)
Definition: version_set.cc:905
bool IsBaseLevelForKey(const Slice &user_key)
Definition: version_set.cc:1484
Version * input_version_
Definition: version_set.h:373
uint64_t LastSequence() const
Definition: version_set.h:209
void ForEachOverlapping(Slice user_key, Slice internal_key, void *arg, bool(*func)(void *, int, FileMetaData *))
Definition: version_set.cc:287
void ReleaseInputs()
Definition: version_set.cc:1528
bool seen_key_
Definition: version_set.h:383
~Compaction()
Definition: version_set.cc:1460
Definition: dbformat.h:189
Definition: options.h:161
void AddIterators(const ReadOptions &, std::vector< Iterator * > *iters)
Definition: version_set.cc:234
void AppendVersion(Version *v)
Definition: version_set.cc:803
bool RecordReadSample(Slice key)
Definition: version_set.cc:444
const char * LevelSummary(LevelSummaryStorage *scratch) const
Definition: version_set.cc:1138
int64_t overlapped_bytes_
Definition: version_set.h:384
bool ReuseManifest(const std::string &dscname, const std::string &dscbase)
Definition: version_set.cc:1027
void GetRange2(const std::vector< FileMetaData * > &inputs1, const std::vector< FileMetaData * > &inputs2, InternalKey *smallest, InternalKey *largest)
Definition: version_set.cc:1249
VersionEdit edit_
Definition: version_set.h:374
Compaction * CompactRange(int level, const InternalKey *begin, const InternalKey *end)
Definition: version_set.cc:1413
int seek_file_level
Definition: version_set.h:71
VersionEdit * edit()
Definition: version_set.h:334
Env *const env_
Definition: version_set.h:297
Compaction * PickCompaction()
Definition: version_set.cc:1291
Definition: version_edit.h:28
Version * current_
Definition: version_set.h:312
void Ref()
Definition: version_set.cc:482
signed long long int64_t
Definition: stdint.h:18
files
Definition: circular-dependencies.py:31
uint64_t manifest_file_number_
Definition: version_set.h:303
void SetLastSequence(uint64_t s)
Definition: version_set.h:212
Status Get(const ReadOptions &, const LookupKey &key, std::string *val, GetStats *stats)
Definition: version_set.cc:332
Definition: dbformat.h:144
Definition: version_set.h:266
void AddLiveFiles(std::set< uint64_t > *live)
Definition: version_set.cc:1185
std::vector< FileMetaData * > grandparents_
Definition: version_set.h:381
uint64_t prev_log_number_
Definition: version_set.h:306
int FindFile(const InternalKeyComparator &icmp, const std::vector< FileMetaData * > &files, const Slice &key)
Definition: version_set.cc:86
Definition: log_writer.h:19
Definition: port_example.h:26
void GetRange(const std::vector< FileMetaData * > &inputs, InternalKey *smallest, InternalKey *largest)
Definition: version_set.cc:1224
void AddInputDeletions(VersionEdit *edit)
Definition: version_set.cc:1476
const Options *const options_
Definition: version_set.h:299
size_t grandparent_index_
Definition: version_set.h:382
void GetOverlappingInputs(int level, const InternalKey *begin, const InternalKey *end, std::vector< FileMetaData * > *inputs)
Definition: version_set.cc:531
FileMetaData * seek_file
Definition: version_set.h:70
int64_t MaxNextLevelOverlappingBytes()
Definition: version_set.cc:1204
int num_input_files(int which) const
Definition: version_set.h:337