littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于嵌入式KeyValue存储引擎的PageHouse

项目简介

PageHouse是一个嵌入式的Key-Value存储引擎,能处理任意字节大小的键值对,其中键(PageId)和值(Page)均可为任意字节。它支持大值存储、快照、引用和外部值存储等多种高级功能,适用于对高性能和灵活存储有需求的应用场景。

项目的主要特性和功能

  1. 大值存储:可存储任意大小的值,尤其适合64KiB到64MiB的大值。
  2. 快照支持:支持快照功能,可在一致视图上进行读取操作,保证数据一致性。
  3. 引用支持:具备引用功能,类似于文件系统硬链接,可存储对另一个页面的引用。
  4. 外部值存储:支持将实际值数据存于任意位置(如本地磁盘或对象存储),并在PageHouse中存储链接。
  5. 资源效率:优化读写操作的系统调用次数,实现资源高效利用。

安装使用步骤

前提

假设用户已经下载了本项目的源码文件。

具体步骤

  1. 编译项目:使用CMake工具进行项目编译,生成可执行文件。 bash mkdir build cd build cmake .. make
  2. 配置文件:根据实际需求,编辑配置文件以设置存储路径、缓冲区大小等参数。
  3. 运行程序:执行生成的可执行文件,启动PageHouse服务。 bash ./pagehouse
  4. 使用API:通过提供的API接口进行数据读写操作,具体API使用方法请参考项目文档。

注意:PageHouse目前尚未达到生产环境使用的标准,请勿在生产环境中使用。PageHouse曾作为TiFlash的一部分使用,未来可能会有进一步的优化和改进。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】