searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Rocks DB的version管理简介

2023-05-23 01:48:17
32
0


 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 / 1000
王****威
4文章数
0粉丝数
王****威
4 文章 | 0 粉丝
原创

Rocks DB的version管理简介

2023-05-23 01:48:17
32
0


 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 / 1000
请输入你的评论
0
0