- 之前用到了gh-ost做大表改表工具, 回过来看看源码, 本篇为阅读源码的笔记
- 源码版本:
- 源码仓库: https://github.com/github/gh-ost
备份逻辑就在MongoDump的Dump方法 (mongodump/mongodump.go/MongoDump.Dump)
Dump主要分4步:
后面会经常提到Intent
, 这是MongoDump自己的一个抽象概念, 可以简单理解为备份任务单元, 例如一个collection的备份对应一个Intent, oplog的备份对应一个Intent等等; 在阅读源码时你可以将Intent
在脑海里替换成Task
. 关于Intent
详见本文后面章节
核心逻辑见以下源码及注释(为了方便阅读, 这里我删减了些不关键的逻辑):
pSync
接收来自源Redis的数据再回放到目标Redis