2 Commits

Author SHA1 Message Date
  alexfisher 7c47db0ced update svg to png(shuishan can't read svg?) 8 months ago
  alexfisher b719beb9d3 update report 8 months ago
4 changed files with 5 additions and 5 deletions
Split View
  1. BIN
      设计文档.assets/prefetch.png
  2. BIN
      设计文档.assets/write_1.png
  3. BIN
      设计文档.assets/write_2.png
  4. +5
    -5
      设计文档.md

BIN
设计文档.assets/prefetch.png View File

Before After
Width: 1200  |  Height: 1238  |  Size: 106 KiB

BIN
设计文档.assets/write_1.png View File

Before After
Width: 1200  |  Height: 2134  |  Size: 121 KiB

BIN
设计文档.assets/write_2.png View File

Before After
Width: 1200  |  Height: 2134  |  Size: 143 KiB

+ 5
- 5
设计文档.md View File

@ -299,7 +299,7 @@ Value设计为:1字节标志位+Varint64文件ID+Varint64偏移量+Varint64长
- 有效的键值对会被重新 put 进入数据库(在此操作中自然的被插入到最新的ValueLog中),SSTable中无效的键值对则会在compaction过程中被自然的回收。
- 如果一条记录异常(读文件失败,或者CRC校验失败),则跳过整个ValueLog(已经GC的部分不影响)。该ValueLog不会进入后面的**延迟删除**环节。
4. **延迟清理GC完毕的ValueLog文件**
- 对ValueLog扫描完毕后,**延迟删除(Trick2)**该ValueLog。
- 对ValueLog扫描完毕后,**延迟删除(Trick2)** 该ValueLog。
#### Trick1:验证元数据/重新Put的正确性保证
@ -402,7 +402,7 @@ void CheckValid(){
经过perf火焰图测试发现,大多数时间仍用于系统调用read,IO仍然是瓶颈,因此未从本质上解决问题。
![prefetch](设计文档.assets/prefetch.svg)
![prefetch](设计文档.assets/prefetch.png)
**缺陷2:prefetch数组需要存放所有Value,实践中不可行**
@ -430,7 +430,7 @@ void CheckValid(){
#### 实现3.Unordered Iterator
**观察:**许多使用NoSQL scan功能的场景并不需求Iterator返回数据的有序性。并且使用Iterator时并不会用Prev和Next反复横跳,而是单向遍历。
**观察:** 许多使用NoSQL scan功能的场景并不需求Iterator返回数据的有序性。并且使用Iterator时并不会用Prev和Next反复横跳,而是单向遍历。
基于观察,我们提出了Unordered Iterator。即与原Iterator功能相同但不保证返回数据有序性的Iterator。
@ -1145,9 +1145,9 @@ getkeysbyfieldproportion=0.001
以下第一张图是fillRandom的火焰图,第二张图是overwrite的火焰图。
![write_1](设计文档.assets/write_1.svg)
![write_1](设计文档.assets/write_1.png)
![write_2](设计文档.assets/write_2.svg)
![write_2](设计文档.assets/write_2.png)
## 7. 分工和进度安排

Loading…
Cancel
Save