mongodb官方备份工具, MongoDump源码分析

  • 备份逻辑就在MongoDump的Dump方法 (mongodump/mongodump.go/MongoDump.Dump)

  • Dump主要分4步:

    1. 各种初始化工作
    2. 备份metaData, index, users, roles, version 等基础数据
    3. 备份collections
    4. 备份oplog
  • 后面会经常提到Intent, 这是MongoDump自己的一个抽象概念, 可以简单理解为备份任务单元, 例如一个collection的备份对应一个Intent, oplog的备份对应一个Intent等等; 在阅读源码时你可以将Intent在脑海里替换成Task. 关于Intent详见本文后面章节

  • 核心逻辑见以下源码及注释(为了方便阅读, 这里我删减了些不关键的逻辑):

阅读更多

markdown数学公式

  • $ 单行公式 $
  • $$ 多行公式 $$
  • \\ 公式内换行符
  • \! 跟随
  • \, 小空格
  • \; 中空格
  • \ 大空格(约1字符)
  • \quad 巨大空格(约2字符)
  • \qquad 超巨大空格(约4字符)
  • _ 下标 ^上标
  • 预览
    $$
    f(x) \
    x \pm y \
    x \times y \
    x \div y \
    x \cdot y \
    x^y \
    x_i \
    x_{i+1} \
    x^i_j \
    \dfrac{x}{y} \
    \sqrt{x} \
    x \gt y \
    x \lt y \
    x \ge y \
    x \le y \
    \cdots \
    \infty \
    \sin \
    \cos \
    \tan \
    \cot \
    \vec{x} \
    \sum_{x}^{y} \
    \prod_{x}^{y} \
    \lim_{x} \
    $$
  • 对应的markdown
阅读更多

Redis数据迁移:RedisShake源码阅读

  • 近期用到了RedisShake做数据迁移, 源码代码量不多于是看了一遍, 本篇为阅读源码的笔记
  • 本篇重点讲解RedisShake的数据迁移功能, 其他几个功能dump,decode,restore,rump只简单提及
  • 原理用一句话概述就是: 假装成源Redis的slave, 利用pSync接收来自源Redis的数据再回放到目标Redis
  • redisShake架构图cluster版
  • redisShake架构图standalone版
阅读更多