Bitcoin
Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
leveldb::VersionSet Class Reference

#include <version_set.h>

Classes

class  Builder
 
struct  LevelSummaryStorage
 

Public Member Functions

 VersionSet (const std::string &dbname, const Options *options, TableCache *table_cache, const InternalKeyComparator *)
 
 ~VersionSet ()
 
Status LogAndApply (VersionEdit *edit, port::Mutex *mu) EXCLUSIVE_LOCKS_REQUIRED(mu)
 
Status Recover (bool *save_manifest)
 
Versioncurrent () const
 
uint64_t ManifestFileNumber () const
 
uint64_t NewFileNumber ()
 
void ReuseFileNumber (uint64_t file_number)
 
int NumLevelFiles (int level) const
 
int64_t NumLevelBytes (int level) const
 
uint64_t LastSequence () const
 
void SetLastSequence (uint64_t s)
 
void MarkFileNumberUsed (uint64_t number)
 
uint64_t LogNumber () const
 
uint64_t PrevLogNumber () const
 
CompactionPickCompaction ()
 
CompactionCompactRange (int level, const InternalKey *begin, const InternalKey *end)
 
int64_t MaxNextLevelOverlappingBytes ()
 
IteratorMakeInputIterator (Compaction *c)
 
bool NeedsCompaction () const
 
void AddLiveFiles (std::set< uint64_t > *live)
 
uint64_t ApproximateOffsetOf (Version *v, const InternalKey &key)
 
const char * LevelSummary (LevelSummaryStorage *scratch) const
 

Private Member Functions

bool ReuseManifest (const std::string &dscname, const std::string &dscbase)
 
void Finalize (Version *v)
 
void GetRange (const std::vector< FileMetaData * > &inputs, InternalKey *smallest, InternalKey *largest)
 
void GetRange2 (const std::vector< FileMetaData * > &inputs1, const std::vector< FileMetaData * > &inputs2, InternalKey *smallest, InternalKey *largest)
 
void SetupOtherInputs (Compaction *c)
 
Status WriteSnapshot (log::Writer *log)
 
void AppendVersion (Version *v)
 
 VersionSet (const VersionSet &)
 
void operator= (const VersionSet &)
 

Private Attributes

Env *const env_
 
const std::string dbname_
 
const Options *const options_
 
TableCache *const table_cache_
 
const InternalKeyComparator icmp_
 
uint64_t next_file_number_
 
uint64_t manifest_file_number_
 
uint64_t last_sequence_
 
uint64_t log_number_
 
uint64_t prev_log_number_
 
WritableFiledescriptor_file_
 
log::Writerdescriptor_log_
 
Version dummy_versions_
 
Versioncurrent_
 
std::string compact_pointer_ [config::kNumLevels]
 

Friends

class Compaction
 
class Version
 

Constructor & Destructor Documentation

◆ VersionSet() [1/2]

leveldb::VersionSet::VersionSet ( const std::string &  dbname,
const Options options,
TableCache table_cache,
const InternalKeyComparator cmp 
)

◆ ~VersionSet()

leveldb::VersionSet::~VersionSet ( )

◆ VersionSet() [2/2]

leveldb::VersionSet::VersionSet ( const VersionSet )
private

Member Function Documentation

◆ AddLiveFiles()

void leveldb::VersionSet::AddLiveFiles ( std::set< uint64_t > *  live)

◆ AppendVersion()

void leveldb::VersionSet::AppendVersion ( Version v)
private

◆ ApproximateOffsetOf()

uint64_t leveldb::VersionSet::ApproximateOffsetOf ( Version v,
const InternalKey key 
)

◆ CompactRange()

Compaction * leveldb::VersionSet::CompactRange ( int  level,
const InternalKey begin,
const InternalKey end 
)

◆ current()

Version* leveldb::VersionSet::current ( ) const
inline

◆ Finalize()

void leveldb::VersionSet::Finalize ( Version v)
private

◆ GetRange()

void leveldb::VersionSet::GetRange ( const std::vector< FileMetaData * > &  inputs,
InternalKey smallest,
InternalKey largest 
)
private

◆ GetRange2()

void leveldb::VersionSet::GetRange2 ( const std::vector< FileMetaData * > &  inputs1,
const std::vector< FileMetaData * > &  inputs2,
InternalKey smallest,
InternalKey largest 
)
private

◆ LastSequence()

uint64_t leveldb::VersionSet::LastSequence ( ) const
inline

◆ LevelSummary()

const char * leveldb::VersionSet::LevelSummary ( LevelSummaryStorage scratch) const

◆ LogAndApply()

Status leveldb::VersionSet::LogAndApply ( VersionEdit edit,
port::Mutex mu 
)

◆ LogNumber()

uint64_t leveldb::VersionSet::LogNumber ( ) const
inline

◆ MakeInputIterator()

Iterator * leveldb::VersionSet::MakeInputIterator ( Compaction c)

◆ ManifestFileNumber()

uint64_t leveldb::VersionSet::ManifestFileNumber ( ) const
inline

◆ MarkFileNumberUsed()

void leveldb::VersionSet::MarkFileNumberUsed ( uint64_t  number)

◆ MaxNextLevelOverlappingBytes()

int64_t leveldb::VersionSet::MaxNextLevelOverlappingBytes ( )

◆ NeedsCompaction()

bool leveldb::VersionSet::NeedsCompaction ( ) const
inline

◆ NewFileNumber()

uint64_t leveldb::VersionSet::NewFileNumber ( )
inline

◆ NumLevelBytes()

int64_t leveldb::VersionSet::NumLevelBytes ( int  level) const

◆ NumLevelFiles()

int leveldb::VersionSet::NumLevelFiles ( int  level) const

◆ operator=()

void leveldb::VersionSet::operator= ( const VersionSet )
private

◆ PickCompaction()

Compaction * leveldb::VersionSet::PickCompaction ( )

◆ PrevLogNumber()

uint64_t leveldb::VersionSet::PrevLogNumber ( ) const
inline

◆ Recover()

Status leveldb::VersionSet::Recover ( bool *  save_manifest)

◆ ReuseFileNumber()

void leveldb::VersionSet::ReuseFileNumber ( uint64_t  file_number)
inline

◆ ReuseManifest()

bool leveldb::VersionSet::ReuseManifest ( const std::string &  dscname,
const std::string &  dscbase 
)
private

◆ SetLastSequence()

void leveldb::VersionSet::SetLastSequence ( uint64_t  s)
inline

◆ SetupOtherInputs()

void leveldb::VersionSet::SetupOtherInputs ( Compaction c)
private

◆ WriteSnapshot()

Status leveldb::VersionSet::WriteSnapshot ( log::Writer log)
private

Friends And Related Function Documentation

◆ Compaction

friend class Compaction
friend

◆ Version

friend class Version
friend

Member Data Documentation

◆ compact_pointer_

std::string leveldb::VersionSet::compact_pointer_[config::kNumLevels]
private

◆ current_

Version* leveldb::VersionSet::current_
private

◆ dbname_

const std::string leveldb::VersionSet::dbname_
private

◆ descriptor_file_

WritableFile* leveldb::VersionSet::descriptor_file_
private

◆ descriptor_log_

log::Writer* leveldb::VersionSet::descriptor_log_
private

◆ dummy_versions_

Version leveldb::VersionSet::dummy_versions_
private

◆ env_

Env* const leveldb::VersionSet::env_
private

◆ icmp_

const InternalKeyComparator leveldb::VersionSet::icmp_
private

◆ last_sequence_

uint64_t leveldb::VersionSet::last_sequence_
private

◆ log_number_

uint64_t leveldb::VersionSet::log_number_
private

◆ manifest_file_number_

uint64_t leveldb::VersionSet::manifest_file_number_
private

◆ next_file_number_

uint64_t leveldb::VersionSet::next_file_number_
private

◆ options_

const Options* const leveldb::VersionSet::options_
private

◆ prev_log_number_

uint64_t leveldb::VersionSet::prev_log_number_
private

◆ table_cache_

TableCache* const leveldb::VersionSet::table_cache_
private

The documentation for this class was generated from the following files: