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

#include <db_impl.h>

Inheritance diagram for leveldb::DBImpl:
leveldb::DB

Classes

struct  CompactionState
 
struct  CompactionStats
 
struct  ManualCompaction
 
struct  Writer
 

Public Member Functions

 DBImpl (const Options &options, const std::string &dbname)
 
virtual ~DBImpl ()
 
virtual Status Put (const WriteOptions &, const Slice &key, const Slice &value)
 
virtual Status Delete (const WriteOptions &, const Slice &key)
 
virtual Status Write (const WriteOptions &options, WriteBatch *updates)
 
virtual Status Get (const ReadOptions &options, const Slice &key, std::string *value)
 
virtual IteratorNewIterator (const ReadOptions &)
 
virtual const SnapshotGetSnapshot ()
 
virtual void ReleaseSnapshot (const Snapshot *snapshot)
 
virtual bool GetProperty (const Slice &property, std::string *value)
 
virtual void GetApproximateSizes (const Range *range, int n, uint64_t *sizes)
 
virtual void CompactRange (const Slice *begin, const Slice *end)
 
void TEST_CompactRange (int level, const Slice *begin, const Slice *end)
 
Status TEST_CompactMemTable ()
 
IteratorTEST_NewInternalIterator ()
 
int64_t TEST_MaxNextLevelOverlappingBytes ()
 
void RecordReadSample (Slice key)
 
- Public Member Functions inherited from leveldb::DB
 DB ()
 
virtual ~DB ()
 

Private Member Functions

IteratorNewInternalIterator (const ReadOptions &, SequenceNumber *latest_snapshot, uint32_t *seed)
 
Status NewDB ()
 
Status Recover (VersionEdit *edit, bool *save_manifest) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
void MaybeIgnoreError (Status *s) const
 
void DeleteObsoleteFiles ()
 
void CompactMemTable () EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
Status RecoverLogFile (uint64_t log_number, bool last_log, bool *save_manifest, VersionEdit *edit, SequenceNumber *max_sequence) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
Status WriteLevel0Table (MemTable *mem, VersionEdit *edit, Version *base) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
Status MakeRoomForWrite (bool force) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
WriteBatchBuildBatchGroup (Writer **last_writer)
 
void RecordBackgroundError (const Status &s)
 
void MaybeScheduleCompaction () EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
void BackgroundCall ()
 
void BackgroundCompaction () EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
void CleanupCompaction (CompactionState *compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
Status DoCompactionWork (CompactionState *compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
Status OpenCompactionOutputFile (CompactionState *compact)
 
Status FinishCompactionOutputFile (CompactionState *compact, Iterator *input)
 
Status InstallCompactionResults (CompactionState *compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
 
 DBImpl (const DBImpl &)
 
void operator= (const DBImpl &)
 
const Comparatoruser_comparator () const
 

Static Private Member Functions

static void BGWork (void *db)
 

Private Attributes

Env *const env_
 
const InternalKeyComparator internal_comparator_
 
const InternalFilterPolicy internal_filter_policy_
 
const Options options_
 
bool owns_info_log_
 
bool owns_cache_
 
const std::string dbname_
 
TableCachetable_cache_
 
FileLockdb_lock_
 
port::Mutex mutex_
 
port::AtomicPointer shutting_down_
 
port::CondVar bg_cv_
 
MemTablemem_
 
MemTableimm_
 
port::AtomicPointer has_imm_
 
WritableFilelogfile_
 
uint64_t logfile_number_
 
log::Writerlog_
 
uint32_t seed_
 
std::deque< Writer * > writers_
 
WriteBatchtmp_batch_
 
SnapshotList snapshots_
 
std::set< uint64_tpending_outputs_
 
bool bg_compaction_scheduled_
 
ManualCompactionmanual_compaction_
 
VersionSetversions_
 
Status bg_error_
 
CompactionStats stats_ [config::kNumLevels]
 

Friends

class DB
 

Additional Inherited Members

- Static Public Member Functions inherited from leveldb::DB
static Status Open (const Options &options, const std::string &name, DB **dbptr)
 

Constructor & Destructor Documentation

◆ DBImpl() [1/2]

leveldb::DBImpl::DBImpl ( const Options options,
const std::string &  dbname 
)

◆ ~DBImpl()

leveldb::DBImpl::~DBImpl ( )
virtual

◆ DBImpl() [2/2]

leveldb::DBImpl::DBImpl ( const DBImpl )
private

Member Function Documentation

◆ BackgroundCall()

void leveldb::DBImpl::BackgroundCall ( )
private

◆ BackgroundCompaction()

void leveldb::DBImpl::BackgroundCompaction ( )
private

◆ BGWork()

void leveldb::DBImpl::BGWork ( void *  db)
staticprivate

◆ BuildBatchGroup()

WriteBatch * leveldb::DBImpl::BuildBatchGroup ( Writer **  last_writer)
private

◆ CleanupCompaction()

void leveldb::DBImpl::CleanupCompaction ( CompactionState compact)
private

◆ CompactMemTable()

void leveldb::DBImpl::CompactMemTable ( )
private

◆ CompactRange()

void leveldb::DBImpl::CompactRange ( const Slice begin,
const Slice end 
)
virtual

Implements leveldb::DB.

◆ Delete()

Status leveldb::DBImpl::Delete ( const WriteOptions options,
const Slice key 
)
virtual

Implements leveldb::DB.

◆ DeleteObsoleteFiles()

void leveldb::DBImpl::DeleteObsoleteFiles ( )
private

◆ DoCompactionWork()

Status leveldb::DBImpl::DoCompactionWork ( CompactionState compact)
private

◆ FinishCompactionOutputFile()

Status leveldb::DBImpl::FinishCompactionOutputFile ( CompactionState compact,
Iterator input 
)
private

◆ Get()

Status leveldb::DBImpl::Get ( const ReadOptions options,
const Slice key,
std::string *  value 
)
virtual

Implements leveldb::DB.

◆ GetApproximateSizes()

void leveldb::DBImpl::GetApproximateSizes ( const Range range,
int  n,
uint64_t sizes 
)
virtual

Implements leveldb::DB.

◆ GetProperty()

bool leveldb::DBImpl::GetProperty ( const Slice property,
std::string *  value 
)
virtual

Implements leveldb::DB.

◆ GetSnapshot()

const Snapshot * leveldb::DBImpl::GetSnapshot ( )
virtual

Implements leveldb::DB.

◆ InstallCompactionResults()

Status leveldb::DBImpl::InstallCompactionResults ( CompactionState compact)
private

◆ MakeRoomForWrite()

Status leveldb::DBImpl::MakeRoomForWrite ( bool  force)
private

◆ MaybeIgnoreError()

void leveldb::DBImpl::MaybeIgnoreError ( Status s) const
private

◆ MaybeScheduleCompaction()

void leveldb::DBImpl::MaybeScheduleCompaction ( )
private

◆ NewDB()

Status leveldb::DBImpl::NewDB ( )
private

◆ NewInternalIterator()

Iterator * leveldb::DBImpl::NewInternalIterator ( const ReadOptions options,
SequenceNumber latest_snapshot,
uint32_t seed 
)
private

◆ NewIterator()

Iterator * leveldb::DBImpl::NewIterator ( const ReadOptions options)
virtual

Implements leveldb::DB.

◆ OpenCompactionOutputFile()

Status leveldb::DBImpl::OpenCompactionOutputFile ( CompactionState compact)
private

◆ operator=()

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

◆ Put()

Status leveldb::DBImpl::Put ( const WriteOptions o,
const Slice key,
const Slice value 
)
virtual

Implements leveldb::DB.

◆ RecordBackgroundError()

void leveldb::DBImpl::RecordBackgroundError ( const Status s)
private

◆ RecordReadSample()

void leveldb::DBImpl::RecordReadSample ( Slice  key)

◆ Recover()

Status leveldb::DBImpl::Recover ( VersionEdit edit,
bool *  save_manifest 
)
private

◆ RecoverLogFile()

Status leveldb::DBImpl::RecoverLogFile ( uint64_t  log_number,
bool  last_log,
bool *  save_manifest,
VersionEdit edit,
SequenceNumber max_sequence 
)
private

◆ ReleaseSnapshot()

void leveldb::DBImpl::ReleaseSnapshot ( const Snapshot snapshot)
virtual

Implements leveldb::DB.

◆ TEST_CompactMemTable()

Status leveldb::DBImpl::TEST_CompactMemTable ( )

◆ TEST_CompactRange()

void leveldb::DBImpl::TEST_CompactRange ( int  level,
const Slice begin,
const Slice end 
)

◆ TEST_MaxNextLevelOverlappingBytes()

int64_t leveldb::DBImpl::TEST_MaxNextLevelOverlappingBytes ( )

◆ TEST_NewInternalIterator()

Iterator * leveldb::DBImpl::TEST_NewInternalIterator ( )

◆ user_comparator()

const Comparator* leveldb::DBImpl::user_comparator ( ) const
inlineprivate

◆ Write()

Status leveldb::DBImpl::Write ( const WriteOptions options,
WriteBatch updates 
)
virtual

Implements leveldb::DB.

◆ WriteLevel0Table()

Status leveldb::DBImpl::WriteLevel0Table ( MemTable mem,
VersionEdit edit,
Version base 
)
private

Friends And Related Function Documentation

◆ DB

friend class DB
friend

Member Data Documentation

◆ bg_compaction_scheduled_

bool leveldb::DBImpl::bg_compaction_scheduled_
private

◆ bg_cv_

port::CondVar leveldb::DBImpl::bg_cv_
private

◆ bg_error_

Status leveldb::DBImpl::bg_error_
private

◆ db_lock_

FileLock* leveldb::DBImpl::db_lock_
private

◆ dbname_

const std::string leveldb::DBImpl::dbname_
private

◆ env_

Env* const leveldb::DBImpl::env_
private

◆ has_imm_

port::AtomicPointer leveldb::DBImpl::has_imm_
private

◆ imm_

MemTable* leveldb::DBImpl::imm_
private

◆ internal_comparator_

const InternalKeyComparator leveldb::DBImpl::internal_comparator_
private

◆ internal_filter_policy_

const InternalFilterPolicy leveldb::DBImpl::internal_filter_policy_
private

◆ log_

log::Writer* leveldb::DBImpl::log_
private

◆ logfile_

WritableFile* leveldb::DBImpl::logfile_
private

◆ logfile_number_

uint64_t leveldb::DBImpl::logfile_number_
private

◆ manual_compaction_

ManualCompaction* leveldb::DBImpl::manual_compaction_
private

◆ mem_

MemTable* leveldb::DBImpl::mem_
private

◆ mutex_

port::Mutex leveldb::DBImpl::mutex_
private

◆ options_

const Options leveldb::DBImpl::options_
private

◆ owns_cache_

bool leveldb::DBImpl::owns_cache_
private

◆ owns_info_log_

bool leveldb::DBImpl::owns_info_log_
private

◆ pending_outputs_

std::set<uint64_t> leveldb::DBImpl::pending_outputs_
private

◆ seed_

uint32_t leveldb::DBImpl::seed_
private

◆ shutting_down_

port::AtomicPointer leveldb::DBImpl::shutting_down_
private

◆ snapshots_

SnapshotList leveldb::DBImpl::snapshots_
private

◆ stats_

CompactionStats leveldb::DBImpl::stats_[config::kNumLevels]
private

◆ table_cache_

TableCache* leveldb::DBImpl::table_cache_
private

◆ tmp_batch_

WriteBatch* leveldb::DBImpl::tmp_batch_
private

◆ versions_

VersionSet* leveldb::DBImpl::versions_
private

◆ writers_

std::deque<Writer*> leveldb::DBImpl::writers_
private

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