compaction 标签归档

共 17 篇文章 · 返回首页

【存储工程】LSM-Tree 工程调优:三种放大的权衡

LSM-Tree 的核心设计是把随机写转换为顺序写,但这个转换不是免费的。写入经过 MemTable 刷盘、再经过多次 Compaction 合并,每一字节的用户数据在磁盘上可能被反复读写数十次。读取一个 key 时,最坏情况下需要逐层搜索,直到命中或遍历全部层级。与此同时,旧版本数据和墓碑标记占用的额外空间,在 Co…

数据库内核实验索引

汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存引擎 / 数据湖与开放表格式 / 流式数据处理 / 分布式 OLAP 查询引擎 / RocksDB 内核 / 向量检索引擎 / Redis 缓存内核 / 全文检索引擎,以及 LSM-Tree 从零实现实验。

【向量检索引擎】Delete · Upsert · TTL:软删生命周期与覆盖写的两条路径

按 2.6.x Delete/Upsert/TTL 文档拆解软删 bitset 从逻辑不可见到 compaction 物理回收的完整生命周期,用官方 override/merge 内部步骤的时序图区分两种 upsert,并与 FreshDiskANN 的图索引删除模型对照,说明 Milvus 用「整段重建」而非「增量合并」处理删除。

【向量检索引擎】生产排障:召回、延迟、堆积、OOM

用症状到机制的决策树覆盖召回/延迟/堆积/OOM 四类故障,按可见性、段状态、过滤选择度、离线队列、对象存储与副本拓扑逐层定位;用一个跨软删广播与副本改派的最小故事说明为什么同一查询会得到不稳定结果,不含未跑的集群数字。

【RocksDB 内核机制】LevelDB · WAL · Compaction · Column Family · 生产嵌入

补全存储引擎三角最后一角:从 LevelDB 基线与 RocksDB 架构演进,到 WAL/MemTable/SST 写路径、Get/Iterator 读路径、Leveled/Universal compaction 与 write stall,再到 Column Family、事务、Checkpoint 与 Flink/TiKV 嵌入对照。

【存储工程】Bitcask 与日志结构哈希表

在存储引擎(Storage Engine)的设计谱系中,Bitcask 占据着一个独特而优雅的位置: 它用最简单的数据结构——哈希表(Hash Table)与追加日志(Append-Only Log)—— 组合出了一个在特定工作负载下性能极其出色的键值存储引擎。 本文将从核心思想出发,逐层拆解 Bitcask 的架构、…

【从零写一个 LSM-Tree 存储引擎】Compaction:LSM-Tree 的心脏手术

从零实现 LSM-Tree Compaction:最小堆多路归并迭代器、Level 分层与 Compaction 打分、Tombstone 下推、Version/VersionEdit/MANIFEST 版本管理,以及 Leveled/Size-Tiered/Universal 三种策略的量化对比。从零写一个 LSM-Tree 存储引擎系列第 4 篇。

【从零写一个 LSM-Tree 存储引擎】LSM-Tree 全景:为什么要先写日志再排序

从零理解 LSM-Tree 存储引擎的设计哲学:B-Tree 与 LSM-Tree 的本质差异,写放大/读放大/空间放大的三角权衡,以及 WAL、MemTable、SSTable、Compaction、Bloom Filter 各组件的角色与协作关系。从零写一个 LSM-Tree 存储引擎系列第 1 篇。