Browse Source

更新 '实验报告.md'

master
曹可心 8 months ago
parent
commit
69b04590a2
1 changed files with 11 additions and 4 deletions
  1. +11
    -4
      实验报告.md

+ 11
- 4
实验报告.md View File

@ -608,7 +608,7 @@ Status TableBuilder::Read(const Slice& key, std::string* value) {
### 3.5 合并
#### (1) ST 文件合并
#### (1) SST 文件合并
在 LevelDB 的常规 SST 文件合并过程中,会涉及到多个 SST 文件的整合。在 KV 分离的情况下,需要额外处理 Blob 文件的引用。
@ -834,11 +834,18 @@ BlobFile* TableBuilder::GetBlobFile(int bfid) {
#### 功能设计示意图
<div align=center><img src="./images/c1.png"></div>
<div align=center><img src="./images/c1.1.png"></div>
<center>图12 插入键值对过程</center>
<center>图12 插入键值对过程(在插入memtable之前进行KV分离)</center>
向当前 vlog 的尾端插入 key 和 value ,将 vlog 的编号 (file_no) 和新条目在 vlog 中的偏移量 (file_offset) 整合成 vptr,向 memtable 中写入 key 和 vptr 。当 current vlog 的大小达到一定阈值时,创建新的 vlog 。
<div align=center><img src="./images/c1.2.png"></div>
<center>图12 插入键值对过程(在刷盘前进行KV分离)</center>
向当前 vlog 的尾端插入 key 和 value ,将 vlog 的编号 (file_no) 和新条目在 vlog 中的偏移量 (file_offset) 整合成 vptr,向 sstable 中写入 key 和 vptr 。当 current vlog 的大小达到一定阈值时,创建新的 vlog 。
向当前 vlog 的尾端插入 key 和 value ,将 vlog 的编号 (file_no) 和新条目在 vlog 中的偏移量 (file_offset) 整合成 vptr,向 memtable 中写入 key 和 vptr 。当 current vlog 的大小达到一定阈值且磁盘IO繁忙程度低于指定阈值时,创建新的 vlog 。
<div align=center><img src="./images/c2.png"></div>

Loading…
Cancel
Save