avatar
文章
37
标签
9
分类
15
Home
Archives
Tags
Categories
About
butterfly
Home
Archives
Tags
Categories
About

butterfly

03. KVStore 版本三
发表于2026-01-27|KVStorev3.0
版本三 日志压缩(Compaction)与可恢复存储引擎 feat; 实现 v3 核心架构 – WAL、CRC、快照恢复与日志压缩 V3 的目标: 引入完整的存储引擎架构 V3 引入的核心机制 WAL(Write-Ahead Logging) CRC 校验,防止脏日志 Snapshot(快照) 日志压缩(Compaction) V3 引入的核心机制 WAL(Write-Ahead Logging) CRC 校验,防止脏日志 Snapshot(快照) 日志压缩(Compaction) 123456内存: B+ Tree(完整最新状态)磁盘: snapshot 文件 -> 某一时刻的全量状态 WAL 文件 -> snapshot 之后的增量操作 启动流程变为: 1231. 读取 snapshot2. 构建 B+ 树3. replay snapshot 之后的 WAL WAL(Write-Ahead Log) 为什么还需要 WAL? 即使有 snapshot,也必须保证: 任何一次修改,必须先落盘,再修改内存 否则一旦...
02. KVStore 版本二
发表于2026-01-25|KVStorev2.0
KVstore 版本二 最小可用持久化 KVstore 能把数据写进文件,下次启动时重新插回 B+ 树 内存中仍然是 B+ 树,磁盘上只是一个“顺序日志 / 数据文件” 启动时: 读文件 → 逐条 insert 到 B+ 树 文件格式定义 PUT <key> <value> DEL <key> PUT 1 100 PUT 2 200 PUT 3 300 从头到尾读文件 对每一行: PUT → bptree_insert DEL → bptree_delete 即 Log Replay(日志重放) 代码 kvstore.h 123456789101112131415161718192021222324252627282930313233343536373839404142434445// /home/ubuntu/c++2512/KVstore/include/kvstore.h/** * kvstore 结构体负责整个存储引擎,包含一个指向 bptree 的指针 * B+ 树则是用来存储键值对的数据结构 */#if...
01. KVStore 版本一
发表于2026-01-25|KVStorev1.0
版本一 功能 创建并销毁 KVStore 实例 使用 B+ 树储存数据,支持插入、查找、删除操作 结构 kvstore 通过 bptree 管理数据 稳定性 代码可以正常运行,执行基本功能,并且没有报错 文件目录 代码 kvstore.h 123456789101112131415161718192021222324252627282930313233343536373839404142434445// /home/ubuntu/c++2512/KVstore/include/kvstore.h/** * kvstore 结构体负责整个存储引擎,包含一个指向 bptree 的指针 * B+ 树则是用来存储键值对的数据结构 */#ifndef KVSTORE_H#define KVSTORE_H#include "index/bptree.h"#ifdef __cplusplusextern "C" {#endif// 定义 KVSTORE 的结构体typedef struct _kvstore { b...
02. B+ 树删除复盘
发表于2026-01-18|DSB-Plus-Tree
B+ 树删除实现:从 Bug 到稳定架构的完整复盘 关键词:B+ 树、删除操作、下溢(underflow)、borrow / merge、fixup、架构设计 这篇文章不是一份“标准答案式”的 B+ 树删除教程,而是一份真实的实现复盘: 为什么“只删一个 key”,树却会整体崩掉? 为什么 merge 看似成功,parent 却被删空? 为什么修复逻辑一定要拆成 fix_leaf / fix_internal? 如果你正在手写 B+ 树,尤其是 C/C++ 版本,那么这篇文章基本可以帮你避开 90% 的坑。 一、B+ 树删除:真正的难点在哪? 很多教程会告诉你: 删除 = 从叶子删 → 不够就借 → 借不到就合并 → 向上递归 但真正的难点不在算法步骤,而在“职责边界”。 也就是说: 谁负责修改 parent? merge 做到哪一步为止? underflow 是谁检测、谁修复? 如果这些问题不想清楚,代码一定会出现: parent key 被删两次 root 被误判为空 children 指针错位 树结构“看起来还能跑,但已经坏了” 二、基础定义(以 O...
01. 分类测试
发表于2026-01-18|DSB-Plus-Tree
hello B+ tree
Hexo的搭建与部署
发表于2026-01-11|工具类
一、创建英文管理员账户 hector 打开 Windows 设置 → 账户 → 家庭和其他用户 → 添加其他用户到这台电脑 二、登录用户,配置开发环境 登录 Windows 用户:hector 配置 Git 身份信息 git config --global user.name “hector” git config --global user.email “QQ@qq.com” 验证: git config --list 输出应包含用户名和邮箱 三、生成 SSH Key 打开 Git Bash 生成 SSH Key:ssh-keygen -t ed25519 -C “QQ@qq.com” 文件路径默认 /c/Users/hector/.ssh/id_ed25519 → 回车 id_ed25519 → 私钥 id_ed25519.pub → 公钥 查看公钥内容:cat ~/.ssh/id_ed25519.pub 复制输出内容添加到 GitHub: 打开 GitHub → Settings → SSH and GPG keys → New SSH key Title:Hexo-blo...
Hello Y a F
发表于2026-01-11
Hexo 的测试文章。 butterfly ^_^
1…34
avatar
hectorycl
文章
37
标签
9
分类
15
Follow Me
公告
This is my Blog
最新文章
7.2 总结2026-07-10
7.2 总结2026-07-02
随机容错 CDS 的相关定义2026-06-27
paper_5 第3节 Claim 22026-06-26
paper_5 第3节 Claim 12026-06-26
分类
  • CDS12
    • paper_42
    • paper_59
      • summary2
    • 随笔1
      • Roadmap1
  • DS2
    • B-Plus-Tree2
标签
教程 CDS 论文阅读 B+ 树 Hexo kvstore 无线传感网 数据结构 博客
归档
  • 七月 2026 2
  • 六月 2026 10
  • 三月 2026 4
  • 二月 2026 12
  • 一月 2026 9
网站信息
文章数目 :
37
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2026 By hectorycl
由 Hexo & Butterfly 强力驱动