From 11debabe5e1d31612a6cf6eedc287d6bee6c4e51 Mon Sep 17 00:00:00 2001 From: wangxuefei <10225501435@stu.ecnu.edu.cn> Date: Wed, 6 Nov 2024 13:43:53 +0800 Subject: [PATCH] modify README.md --- README.md | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a9ce668..9e1da18 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,30 @@ +# LevelDB TTL 实验报告 +小组成员: -**本仓库提供TTL基本的测试用例** +王雪飞 10225501435 -克隆代码: - -```bash -git clone --recurse-submodules https://gitea.shuishan.net.cn/building_data_management_systems.Xuanzhou.2024Fall.DaSE/leveldb_base.git -``` +马也驰 10215501408 +## 1.实验目的 +1. 深入了解LevelDB的内部原理和数据结构。 +2. 掌握TTL(Time To Live,生存时间)功能的设计与实现方法。 +3. 学习如何在开源项目中添加新功能,提升代码阅读和修改能力。 +## 2.实验要求 +1. 在LevelDB中实现键值对的TTL功能,使得过期的数据在读取时自动失效,并在适当的时候被合并清理。 +2. 修改LevelDB的源码,实现对TTL的支持,包括数据的写入、读取和过期数据的清理。 +3. 编写测试用例,验证TTL功能的正确性和稳定性。 +## 3.实验内容 +### 3.1. TTL功能介绍 +TTL(Time To Live),即生存时间,是指数据在存储系统中的有效期。设置TTL可以使得过期的数据自动失效,减少存储空间占用,提高系统性能。 +为什么需要TTL功能: +1. 数据自动过期:无需手动删除过期数据,简化数据管理。 +2. 节省存储空间:定期清理无效数据,优化资源利用。 +3. 提高性能:减少无效数据的干扰,提升读写效率。 +### 3.2. 设计方案 +在LevelDB中添加TTL功能的方案: +1. 数据编码方式修改:在键或值中增加过期时间的信息。 +2. 读取时判断过期:在Get操作时,检查数据是否过期,过期则返回NotFound。 +3. Compaction清理:在数据压缩过程中,删除过期的数据。 +## 3.3. 实现步骤 +#### 3.3.1. 修改数据结构 +在Put操作中,将过期时间戳与值一起存储。 \ No newline at end of file