You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
王雪飞 11debabe5e modify README.md 10 months ago
.github/workflows initialize 删除 10 months ago
benchmarks initialize 删除 10 months ago
cmake initialize 删除 10 months ago
db initialize 删除 10 months ago
doc initialize 删除 10 months ago
helpers/memenv initialize 删除 10 months ago
include/leveldb test db_test2.cc 删除 10 months ago
issues initialize 删除 10 months ago
port initialize 删除 10 months ago
table initialize 删除 10 months ago
test initialize 删除 10 months ago
third_party initialize 删除 10 months ago
util initialize 删除 10 months ago
.clang-format initialize 10 months ago
.gitignore initialize 10 months ago
.gitmodules initialize 10 months ago
AUTHORS initialize 10 months ago
CMakeLists.txt initialize 10 months ago
CONTRIBUTING.md initialize 10 months ago
LICENSE initialize 10 months ago
NEWS initialize 10 months ago
README.md modify README.md 10 months ago
TODO initialize 10 months ago

README.md

LevelDB TTL 实验报告

小组成员:

王雪飞 10225501435

马也驰 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操作中,将过期时间戳与值一起存储。