介绍TLA+用法。
TLA全称为Temporal Logic of Actions,相比传统数学,更着重研究时序逻辑。
TLC是TLA+的模型检验工具。
概率论中的几个有趣问题
发表于
本文介绍概率论中一些有趣的问题,其中很多是反直觉的
Redis主从复制
发表于
在Redis Sentinel实现原理分析这篇文。Sentinel是为主从复制服务的,所以在这篇文章里面,我们反过来讲一下主从复制的实现。
主从复制涉及到RDB等机制,其中持久化部分在Redis持久化机制实现中介绍。
重庆攻略
发表于
今年五一的主题是重庆。
因为疫情刚解封的缘故,所以大家出门游玩的热情十分高涨,限于钱包有限,我们选择了1号晚上从无锡出发,5号中午从重庆返回无锡的计划,在重庆玩三个整天。
LevelDB 之流程概览
发表于
LevelDB 之 WAL 实现
发表于
LevelDB 之 Compaction 实现
发表于
本文介绍 LevelDB 的 SSTable 之间的 Compaction。Compaction 分两种:
- Minor Compaction
对应 Memtable 到 SSTable 的过程。 - Major Compaction
对应 SSTable 文件之间的归并。涉及到两个 Level 的 SSTable 文件。
Major Compaction 中还可以细分,比如是否 Manual 等。对于非 Manual,还有 seek compaction 和 size compaction。
同样的,文章中的【Q】表示我在阅读源码的过程中产生的疑问,有的我找到的解答,或者自己产生了思考,有的则未必清楚。
LevelDB 之 Version
发表于
在本文中介绍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。