专栏
天翼云开发者社区

Rocks DB的version管理简介

2023-05-23 09:48:17 25阅读


 1. versionSet:一个db一个versionSet,记录当前version_number包含这个db的所有ColumnFamily
           ColumnFamilySet
           WalSet:protected by db mutex
           current_version_number:维护version number
2. versionStorageInfo:
            user_comparator_
            files_
 3. version:
        cfd_:版本所属的columnFamilyData
        table_cache_
       storage_info_ : 保存当前版本关联的,构造时通过传入的cfd_生成,传入一个cfd_->current()->sotrage_info()作为ref_vstorage指针
       vset:所属的versionSet
       next_:保存version链表上下一个版本
       prev_
       version(cfd, vset, file_opt, mutable_cf_opt, version_number,..)
4. versionEdit:
         对一个version的修改记录,成为一个versionEdit, versionEdit里的操作会被写入Manifest;
         version+versionEdit ==》new version
        versionEdit提供addFile和deleteFile接口
5. VersionEditHandler:
         version_set_ : 构造一个新version时使用
 6. superversion:指向当前最新version和关联的memtable, superversion是访问当前版本数据的入口。
         cfd: 所属columnFamily
         mem:持有的mem
         imm:all immutable memtables
         current:当前最新version
         static int dummy:kSVInUse指向dummy
         static void* const kSVInUse
         static void* const kSVObsolete
 7. ColumnFamilyData:
             dummy_versions_: head of version_list
             current_ :dummy_versions→prev_
             super_version_
             local_sv_ :local_copy of SuperVersion pr

 

  • 0
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
王****威

王****威

4 篇文章 0 粉丝
关注

Rocks DB的version管理简介

2023-05-23 09:48:17 25阅读


 1. versionSet:一个db一个versionSet,记录当前version_number包含这个db的所有ColumnFamily
           ColumnFamilySet
           WalSet:protected by db mutex
           current_version_number:维护version number
2. versionStorageInfo:
            user_comparator_
            files_
 3. version:
        cfd_:版本所属的columnFamilyData
        table_cache_
       storage_info_ : 保存当前版本关联的,构造时通过传入的cfd_生成,传入一个cfd_->current()->sotrage_info()作为ref_vstorage指针
       vset:所属的versionSet
       next_:保存version链表上下一个版本
       prev_
       version(cfd, vset, file_opt, mutable_cf_opt, version_number,..)
4. versionEdit:
         对一个version的修改记录,成为一个versionEdit, versionEdit里的操作会被写入Manifest;
         version+versionEdit ==》new version
        versionEdit提供addFile和deleteFile接口
5. VersionEditHandler:
         version_set_ : 构造一个新version时使用
 6. superversion:指向当前最新version和关联的memtable, superversion是访问当前版本数据的入口。
         cfd: 所属columnFamily
         mem:持有的mem
         imm:all immutable memtables
         current:当前最新version
         static int dummy:kSVInUse指向dummy
         static void* const kSVInUse
         static void* const kSVObsolete
 7. ColumnFamilyData:
             dummy_versions_: head of version_list
             current_ :dummy_versions→prev_
             super_version_
             local_sv_ :local_copy of SuperVersion pr

 

文章来自专栏

KV存储

4 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 0
    点赞
  • 0
    收藏
  • 0
    评论