Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

博客

按年份归档的文章列表(支持分页)

Posts

IndexLib(10):文件系统抽象与存储格式

34 分钟阅读

发布于:

在上一篇文章中,我们深入了解了 Locator 与数据一致性的实现。本文将继续深入,详细解析文件系统抽象与存储格式的实现,这是理解 IndexLib 如何管理文件存储和访问的关键。

IndexLib(9):Locator 与数据一致性

56 分钟阅读

发布于:

在上一篇文章中,我们深入了解了索引类型的实现。本文将继续深入,详细解析 Locator 的实现细节和数据一致性保证机制,这是理解 IndexLib 如何保证数据不重复、不丢失的关键。

IndexLib(8):索引类型:Normal、KV、KKV

15 分钟阅读

发布于:

在上一篇文章中,我们深入了解了内存管理与资源控制的机制。本文将继续深入,详细解析索引类型的实现,这是理解 IndexLib 如何支持不同类型索引的关键。

IndexLib(7):内存管理与资源控制

13 分钟阅读

发布于:

在上一篇文章中,我们深入了解了 Segment 合并策略的实现。本文将继续深入,详细解析内存管理与资源控制的机制,这是理解 IndexLib 如何高效管理内存和资源的关键。

IndexLib(6):Segment 合并策略

18 分钟阅读

发布于:

在上一篇文章中,我们深入了解了版本管理和增量更新的机制。本文将继续深入,详细解析 Segment 合并策略的实现,这是理解 IndexLib 如何优化索引结构和提高查询性能的关键。

IndexLib(5):版本管理与增量更新

26 分钟阅读

发布于:

在上一篇文章中,我们深入了解了查询流程的实现。本文将继续深入,详细解析版本管理和增量更新的机制,这是理解 IndexLib 如何管理索引版本和实现增量更新的关键。

IndexLib(2):Tablet 与 Segment:索引的组织方式

24 分钟阅读

发布于:

在上一篇文章中,我们介绍了 IndexLib 的整体架构和核心概念。本文将继续深入,详细解析 Tablet 和 Segment 的组织方式,这是理解 IndexLib 索引机制的关键。

一致性(2):Raft 直觉(日志复制与提交)

3 分钟阅读

发布于:

本文梳理 Raft 的核心机制“讲透但不啰嗦”:无需背完所有 RPC 字段,也能理解它为什么安全、为什么能工作、工程里该关注哪些边界条件。

RocksDB(1):写入链路(WAL + MemTable)

1 分钟阅读

发布于:

本文作为 RocksDB 系列的第 1 篇,先把「一次 Put()/Write() 从 API 到落盘语义」讲清楚:写入路径、确认点(durability)、以及写入抖动来自哪里。后续再分别展开 SST、读路径与 compaction 调参。

存储笔记:tombstone 与空间回收:为什么删除不等于释放

少于 1 分钟阅读

发布于:

本文讲清楚一个容易误解的事实:在很多存储系统(尤其 LSM)里,Delete 并不等于空间立刻释放。删除本质上是“写入一个 tombstone(删除标记)”,真正回收空间通常发生在后台 compaction/GC 之后。

一致性笔记:线性一致性:从客户端视角理解

1 分钟阅读

发布于:

线性一致性(linearizability)这四个字经常被当成“强一致”的代名词,但工程里最重要的是:它是一个可以用客户端观察来定义、也可以被测试与反证的语义

RocksDB 调优与实践(论文笔记)

8 分钟阅读

发布于:

论文:RocksDB: Evolution of Development Priorities in a Key-Value Store Serving Large-Scale Applications(Dong et al., VLDB 2022)

存储基础(3):LSM、Compaction 与写放大

1 分钟阅读

发布于:

本文是「存储基础系列」的第 3 篇,建立一个 LSM 的“直觉模型”,并解释 compaction 为什么既是性能来源,也是写放大的主要来源。

存储基础(2):读放大、布隆过滤器与缓存

1 分钟阅读

发布于:

本文是「存储基础系列」的第 2 篇,聊三个经常一起出现的概念:读放大(Read Amplification)布隆过滤器(Bloom Filter)、以及 缓存(Cache / Page Cache / Block Cache)。它们本质上都在回答一个问题:“我为一次读取,付出了多少额外成本?”

存储基础(1):写放大

1 分钟阅读

发布于:

本文是「存储基础系列」第 1 篇:解释写放大(Write Amplification)是什么、为什么几乎所有存储系统都绕不开它,以及工程上如何衡量与优化。

ARIES:Recovery Algorithm(论文笔记)

7 分钟阅读

发布于:

论文:ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks(Mohan et al., ACM TODS 1992)

KV存储(4):复制、Quorum 读写与一致性边界

1 分钟阅读

发布于:

分片解决了“把 keyspace 切开”与“扩缩容迁移”的问题,但它不解决可靠性。要让 KV 存储在节点故障、网络分区下仍可用,需要引入复制。复制引入了新的核心问题:

操作系统笔记:NUMA:内存分配与远端访问的代价

1 分钟阅读

发布于:

NUMA(Non-Uniform Memory Access)机器上,“同样是内存访问”并不等价:访问本地 NUMA 节点的内存更快,访问远端节点更慢,且会引入额外互连流量。对延迟敏感服务而言,NUMA 问题经常表现为: