Skip to content

vkkevin/mini-lsm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini-lsm

项目简介

mini-lsm 是一个用现代 C++(C++23)实现的轻量级 LSM(Log-Structured Merge-Tree)存储引擎原型。该项目根据 mini-lsm 课程进行开发。

目录结构

  • app/:示例程序 mini_lsm.cpp(演示如何 open/put/get/iterate)
  • src/:存储引擎实现(mini-lsm/*
  • test/:单元测试(基于 gtest)
  • third_party/:第三方依赖(fmt, nlohmann-json, gtest)

先决条件

  • CMake >= 3.20
  • 支持 C++23 的编译器(例如 GCC 11+ 或 Clang 12+)
  • Ninja 或 GNU Make(可选)

快速开始(构建)

在仓库根目录执行:

mkdir -p build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -- -j

这会在 build/ 下生成可执行文件 mini_lsm(示例程序)。

运行示例程序

构建完成后,在构建目录运行:

./mini_lsm

示例程序会创建一个基于当前工作目录的 mini-lsm 实例,执行若干 put/get 操作并打印结果(参见 app/mini_lsm.cpp)。

运行测试

构建后运行测试:

cmake --build build --target test
# 或者使用 ctest
ctest --test-dir build --output-on-failure

依赖

  • fmt (bundled under third_party/fmt)
  • nlohmann-json (bundled under third_party/nlohmann-json)
  • GoogleTest (bundled under third_party/gtest)

这些依赖已通过仓库内的 third_party/ 目录添加并在 CMake 配置中启用。

贡献

欢迎提交 issue 和 PR。简要流程:

  1. Fork 仓库并新建分支
  2. 编写代码并添加/更新测试
  3. 提交 PR,描述变更与理由

在提交代码前请确保本地通过了构建与相关测试。

许可证

本项目基于 MIT 许可证,详情见 LICENSE 文件。

About

mini-lsm 是一个用现代 C++(C++23)实现的轻量级 LSM(Log-Structured Merge-Tree)存储引擎原型。该项目根据 skyzh 的 mini-lsm 课程进行开发。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors