Calvin's Marbles


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

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。

阅读全文 »

Redis事务的实现

发表于 2021-03-23

本文详细介绍Redis事务的实现,以及涉及到主从复制的情况。由于持久化涉及Redis文件系统RIO,所以也会对RIO进行介绍。
这是Redis源码分析的系列文章的第四篇,前三篇分别是

  1. Redis底层对象实现原理分析
  2. Redis Sentinel实现原理分析
  3. Redis持久化机制实现
阅读全文 »

MySQL查询

发表于 2021-03-15

本文介绍MySQL InnoDB下索引、查询的实现以及优化。

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

Calvin Neo

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