5 #ifndef STORAGE_LEVELDB_DB_DB_IMPL_H_ 6 #define STORAGE_LEVELDB_DB_DB_IMPL_H_ 15 #include "port/port.h" 16 #include "port/thread_annotations.h" 82 EXCLUSIVE_LOCKS_REQUIRED(
mutex_);
96 EXCLUSIVE_LOCKS_REQUIRED(mutex_);
99 EXCLUSIVE_LOCKS_REQUIRED(mutex_);
102 EXCLUSIVE_LOCKS_REQUIRED(mutex_);
108 static
void BGWork(
void* db);
112 EXCLUSIVE_LOCKS_REQUIRED(mutex_);
114 EXCLUSIVE_LOCKS_REQUIRED(mutex_);
119 EXCLUSIVE_LOCKS_REQUIRED(mutex_);
211 #endif // STORAGE_LEVELDB_DB_DB_IMPL_H_ CompactionStats stats_[config::kNumLevels]
void TEST_CompactRange(int level, const Slice *begin, const Slice *end)
Status RecoverLogFile(uint64_t log_number, bool last_log, bool *save_manifest, VersionEdit *edit, SequenceNumber *max_sequence) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
virtual const Snapshot * GetSnapshot()
Status Recover(VersionEdit *edit, bool *save_manifest) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
virtual Iterator * NewIterator(const ReadOptions &)
void RecordBackgroundError(const Status &s)
void CompactMemTable() EXCLUSIVE_LOCKS_REQUIRED(mutex_)
virtual Status Put(const WriteOptions &, const Slice &key, const Slice &value)
static const int kNumLevels
Status FinishCompactionOutputFile(CompactionState *compact, Iterator *input)
void Add(const CompactionStats &c)
TableCache * table_cache_
const InternalKeyComparator internal_comparator_
const Comparator * user_comparator() const
void MaybeIgnoreError(Status *s) const
void RecordReadSample(Slice key)
void DeleteObsoleteFiles()
virtual bool GetProperty(const Slice &property, std::string *value)
int64_t TEST_MaxNextLevelOverlappingBytes()
virtual void GetApproximateSizes(const Range *range, int n, uint64_t *sizes)
virtual void ReleaseSnapshot(const Snapshot *snapshot)
Iterator * TEST_NewInternalIterator()
WriteBatch * BuildBatchGroup(Writer **last_writer)
virtual void CompactRange(const Slice *begin, const Slice *end)
ManualCompaction * manual_compaction_
port::AtomicPointer has_imm_
Status TEST_CompactMemTable()
virtual Status Delete(const WriteOptions &, const Slice &key)
static void BGWork(void *db)
const std::string dbname_
Status DoCompactionWork(CompactionState *compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
void operator=(const DBImpl &)
Status MakeRoomForWrite(bool force) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
const InternalFilterPolicy internal_filter_policy_
Status OpenCompactionOutputFile(CompactionState *compact)
const Comparator * user_comparator() const
DBImpl(const Options &options, const std::string &dbname)
virtual Status Write(const WriteOptions &options, WriteBatch *updates)
Options SanitizeOptions(const std::string &dbname, const InternalKeyComparator *icmp, const InternalFilterPolicy *ipolicy, const Options &src)
void CleanupCompaction(CompactionState *compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
Status InstallCompactionResults(CompactionState *compact) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
const InternalKey * begin
std::set< uint64_t > pending_outputs_
bool bg_compaction_scheduled_
void MaybeScheduleCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_)
port::AtomicPointer shutting_down_
Status WriteLevel0Table(MemTable *mem, VersionEdit *edit, Version *base) EXCLUSIVE_LOCKS_REQUIRED(mutex_)
std::deque< Writer * > writers_
Iterator * NewInternalIterator(const ReadOptions &, SequenceNumber *latest_snapshot, uint32_t *seed)
void BackgroundCompaction() EXCLUSIVE_LOCKS_REQUIRED(mutex_)
virtual Status Get(const ReadOptions &options, const Slice &key, std::string *value)