标签

ANNS

ARC

ARIES

ARIES:Recovery Algorithm(论文笔记)

7 分钟阅读

发布于:

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

Bigtable

C++

C++ Core Guidelines

CBO

Cache

Chubby

Compaction

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

8 分钟阅读

发布于:

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

Copy-on-Write

Dynamo

GFS

HNSW

HNSWlib

IO

IndexLib

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 索引机制的关键。

KV存储

LFS

LSM

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

8 分钟阅读

发布于:

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

LSM-Tree

Linearizability

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

1 分钟阅读

发布于:

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

MapReduce

NFS

NUMA

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

1 分钟阅读

发布于:

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

NetApp

OCC

OLTP

PVLDB

PageCache

Paxos

PolarDB

Primary-Backup

Quorum

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

1 分钟阅读

发布于:

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

RAID

Raft

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

3 分钟阅读

发布于:

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

Replication

RocksDB

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

1 分钟阅读

发布于:

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

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

8 分钟阅读

发布于:

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

Selinger

Shuffle

Silo

Snapshot

Spanner

System R

TTL

TrueTime

VSAG

WAFL

WAL

ARIES:Recovery Algorithm(论文笔记)

7 分钟阅读

发布于:

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

ZFS

compaction

epoll

futex

kv存储

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

1 分钟阅读

发布于:

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

lease

mmap

mutex

page-fault

tombstone

vector-clock

writeback

一致性

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

1 分钟阅读

发布于:

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

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

1 分钟阅读

发布于:

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

一致性哈希

云原生数据库

修复

内存

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

1 分钟阅读

发布于:

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

再均衡

写放大

冲突

分布式

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

1 分钟阅读

发布于:

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

分布式一致性

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

3 分钟阅读

发布于:

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

分布式事务

分布式存储

分布式文件系统

分布式计算

分布式锁

分片

删除

协调服务

反熵

可用性

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

1 分钟阅读

发布于:

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

可靠性

向量数据库

向量检索

复制

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

1 分钟阅读

发布于:

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

复制状态机

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

3 分钟阅读

发布于:

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

外部一致性

存储

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 索引机制的关键。

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

少于 1 分钟阅读

发布于:

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

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

1 分钟阅读

发布于:

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

存储基础系列

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

少于 1 分钟阅读

发布于:

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

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

1 分钟阅读

发布于:

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

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

1 分钟阅读

发布于:

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

存储基础(1):写放大

1 分钟阅读

发布于:

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

存储计算分离

容错

尾延迟

并发

并发控制

快照

性能

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

1 分钟阅读

发布于:

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

成员变更

搜索引擎

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 索引机制的关键。

操作系统

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

1 分钟阅读

发布于:

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

数据库恢复

ARIES:Recovery Algorithm(论文笔记)

7 分钟阅读

发布于:

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

文件系统

日志复制

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

3 分钟阅读

发布于:

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

日志截断

日志结构

最终一致性

查询优化器

标量量化

版本

缓存替换

编程语言

网络

脑裂

虚拟内存

计算机基础

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

1 分钟阅读

发布于:

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

计算机组成

计算机网络

论文笔记

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

8 分钟阅读

发布于:

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

ARIES:Recovery Algorithm(论文笔记)

7 分钟阅读

发布于:

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

调优

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

8 分钟阅读

发布于:

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

高可用