Calvin's Marbles


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

TLA用法

发表于 2021-06-26

介绍TLA+用法。
TLA全称为Temporal Logic of Actions,相比传统数学,更着重研究时序逻辑。
TLC是TLA+的模型检验工具。

阅读全文 »

概率论中的几个有趣问题

发表于 2021-05-15

本文介绍概率论中一些有趣的问题,其中很多是反直觉的

阅读全文 »

Redis主从复制

发表于 2021-05-15

在Redis Sentinel实现原理分析这篇文。Sentinel是为主从复制服务的,所以在这篇文章里面,我们反过来讲一下主从复制的实现。

主从复制涉及到RDB等机制,其中持久化部分在Redis持久化机制实现中介绍。

阅读全文 »

重庆攻略

发表于 2021-05-09

今年五一的主题是重庆。
因为疫情刚解封的缘故,所以大家出门游玩的热情十分高涨,限于钱包有限,我们选择了1号晚上从无锡出发,5号中午从重庆返回无锡的计划,在重庆玩三个整天。

阅读全文 »

LevelDB 之流程概览

发表于 2021-04-24

在了解了 LevelDB 的相关模块的实现后:

  1. Memtable
  2. SSTable
  3. Compaction 机制

本文时序地展示 LevelDB 的读、写、Recover流程。

阅读全文 »

LevelDB 之 WAL 实现

发表于 2021-04-23

介绍 LevelDB 的 WAL 的实现,以及如何实现故障恢复。从流程概览中分离出来。

此外,还介绍了下对文件的封装。

阅读全文 »

LevelDB 之 Compaction 实现

发表于 2021-04-18

本文介绍 LevelDB 的 SSTable 之间的 Compaction。Compaction 分两种:

  1. Minor Compaction
    对应 Memtable 到 SSTable 的过程。
  2. Major Compaction
    对应 SSTable 文件之间的归并。涉及到两个 Level 的 SSTable 文件。
    Major Compaction 中还可以细分,比如是否 Manual 等。对于非 Manual,还有 seek compaction 和 size compaction。

同样的,文章中的【Q】表示我在阅读源码的过程中产生的疑问,有的我找到的解答,或者自己产生了思考,有的则未必清楚。

阅读全文 »

LevelDB 之 Version

发表于 2021-04-17

在本文中介绍Version和VersionEdit概念,它们有助于理解LevelDB对MVCC的实现。
本文拆解自《LevelDB之Compaction》。

阅读全文 »

LevelDB 之 SSTable 实现

发表于 2021-04-12

本文介绍 LevelDB的 SSTable 相关功能。
SSTable 是 LevelDB 的内存数据结构。当一个 Memtable 满之后,会被变成 Immutable Memtable,并写入 SSTable Level0。Level0 的 SSTable 是没有经过归并的,各个 Key 可能互相重叠。经过 Compaction 达到 Level1 之后,就是有序的了。

阅读全文 »

LevelDB 之 Memtable实现

发表于 2021-04-09

作为LevelDB源码分析系列的第一篇文章,介绍Memtable的实现,以及其中涉及到的数据结构和辅助函数。

Memtable是LevelDB的内存数据结构。当一个Memtable满之后,会被变成Immutable Memtable,并写入SSTable Level0。

阅读全文 »
1…8910…26
Calvin Neo

Calvin Neo

253 日志
156 标签
RSS
GitHub Twitter Weibo
Links
  • xqq
  • wenwen
  • zyyyyy
© 2015 - 2025 Calvin Neo   Hosted by Coding Pages
版权声明
由 Hexo 强力驱动
主题 - NexT.Muse