Browse Source

modify report.md

master
王雪飞 8 months ago
parent
commit
adadda7130
1 changed files with 7 additions and 11 deletions
  1. +7
    -11
      report.md

+ 7
- 11
report.md View File

@ -41,11 +41,9 @@ using Field = std::pair; // field_name:field_value
using FieldArray = std::vector<std::pair<std::string, std::string>>;
````
##### 编码函数:
`void DBImpl::SerializeValue(const FieldArray& fields, std::string &value, size_t slot_num)`
`void DBImpl::SerializeValue(const FieldArray& fields, std::string &value)`
**功能:** 将传入的字段数组和 slot_num 序列化为字符串,并存到 value
注:slot_num 字段用于实现KV分离
**功能:** 将传入的字段数组序列化为字符串,并存到 value
**字符串形式:**
@ -57,7 +55,7 @@ using FieldArray = std::vector>;
**具体实现如下:**
````
void DBImpl::SerializeValue(const FieldArray& fields, std::string &value, size_t slot_num) {
void DBImpl::SerializeValue(const FieldArray& fields, std::string &value) {
// 先构建 slot_num 之后的字符串,存到 tmp_value 中
std::string tmp_value;
// slot_num 之后的总长度
@ -290,10 +288,6 @@ struct executor_param {
- [`/db/vlog_cache.cpp`](./db/vlog_cache.cpp):实现 VlogCache 类中的函数
- [`/db/vlog_set.cpp`](./db/vlog_set.cpp):
定义函数: get_value, get_writable_vlog_info, put_value, del_value, register_new_vlog, remove_old_vlog, vlog_need_gc, register_inconfig_file, remove_from_config_file, create_vlog, restore_vlog_inmaps, register_vlog_inmaps, remove_vlog_from_maps, read_vlog_value, write_vlog_value, mark_del_value
- [`/test/db_test3.cc`](./test/db_test3.cc):测试 value 的字段功能
- [`/test/db_test4.cc`](./test/db_test4.cc)
- [`/test/db_test5.cc`](./test/db_test5.cc)
-
- [`CMakeLists.txt`](CMakeLists.txt):添加可执行文件
**数据结构设计:**
@ -350,7 +344,8 @@ return DB::Put(opt, key, slot_val);
**实现步骤:**
1. 获取互斥锁;
2. 判断当前 bitmap 是否有空闲槽位,就是遍历 bitmap,找到第一个为 0 的位,然后设置该位为 1,返回该位对应的 slot_num。
**具体实现如下:**
**具体实现如下:**
````
size_t alloc_slot() {
// 获取互斥锁
@ -742,7 +737,8 @@ void VlogSet::del_value(const struct slot_content &sc) {
2. 调用 delete_vlog_value 函数删除 vlog 中的条目,并返回被删除的日志项的大小;
3. 更新信息;
4. 判断是否需要 GC
**具体实现如下:**
**具体实现如下:**
````
void VlogSet::mark_del_value(const struct slot_content &sc) {
// 根据 sc.vlog_num 获取 vlog 文件信息

Loading…
Cancel
Save