跳转至

LevelDB 类

时间:2022-10-21 16:52:52

参考:

LevelDB 类#

FileMetaData:文件信息

struct FileMetaData {
  //文件被引用的次数  
  int refs;
  //允许无效访问的次数  
  int allowed_seeks;  // Seeks allowed until compaction
  //文件大小  
  uint64_t file_size;    // File size in bytes
  //最小key
  InternalKey smallest;  // Smallest internal key served by table
  //最大key
  InternalKey largest;   // Largest internal key served by table
};

Compaction 记录执行压缩的信息

class Compaction {
 private:
  friend class Version;
  friend class VersionSet;
  // 层级
  int level_;
  //最大输出文件大小,用于压缩向上优化时限制总文件大小  
  uint64_t max_output_file_size_;
  //当前版本信息  
  Version* input_version_;
  //压缩变更的信息
  VersionEdit edit_;

  // 当前层文件和下一层文件
  std::vector<FileMetaData*> inputs_[2];  // The two sets of inputs

  size_t level_ptrs_[config::kNumLevels];
};