在本文中介绍Version和VersionEdit概念,它们有助于理解LevelDB对MVCC的实现。
本文拆解自《LevelDB之Compaction》。
LevelDB 之 SSTable 实现
发表于
本文介绍 LevelDB的 SSTable 相关功能。
SSTable 是 LevelDB 的内存数据结构。当一个 Memtable 满之后,会被变成 Immutable Memtable,并写入 SSTable Level0。Level0 的 SSTable 是没有经过归并的,各个 Key 可能互相重叠。经过 Compaction 达到 Level1 之后,就是有序的了。
LevelDB 之 Memtable实现
发表于
作为LevelDB源码分析系列的第一篇文章,介绍Memtable的实现,以及其中涉及到的数据结构和辅助函数。
Memtable是LevelDB的内存数据结构。当一个Memtable满之后,会被变成Immutable Memtable,并写入SSTable Level0。
Redis事务的实现
发表于
本文详细介绍Redis事务的实现,以及涉及到主从复制的情况。由于持久化涉及Redis文件系统RIO,所以也会对RIO进行介绍。
这是Redis源码分析的系列文章的第四篇,前三篇分别是
MySQL查询
发表于
本文介绍MySQL InnoDB下索引、查询的实现以及优化。
MySQL锁
发表于
Redis持久化机制实现
发表于
Redis持久化机制包括AOF和RDB两种:
- RDB保存二进制形式的数据库快照。
- AOF以协议文本的方式,记录数据库写入的指令。
本文详细介绍这两种方式的实现,以及涉及到主从复制的情况。由于持久化涉及Redis文件系统RIO,所以也会对RIO进行介绍。
作为Redis源码分析的系列文章,本文使用的版本和Redis底层对象实现原理分析、Redis Sentinel实现原理分析等文章是相同的。
长沙攻略
发表于
长沙游记
Bash介绍
发表于
介绍Bash
Paxos算法
发表于
本文介绍Paxos算法,包含Basic Paxos,以及Raft作者提出的一个Multi Paxos的工程化实现方案。此外,我们还就Raft作者给出的Paxos习题进行探讨。