Chinaunix首页 | 论坛 | 博客
  • 博客访问: 729725
  • 博文数量: 137
  • 博客积分: 969
  • 博客等级: 准尉
  • 技术积分: 1700
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-30 12:09
文章分类

全部博文(137)

文章存档

2020年(4)

2019年(4)

2018年(33)

2017年(6)

2016年(13)

2014年(7)

2013年(23)

2012年(33)

2011年(14)

我的朋友

分类: 服务器与存储

2020-06-05 23:42:41

storage进程在启动之后,会从tracker获取本group内的其他节点信息。然后启动同步线程,每个节点一个线程,本节点除外。如group1内有3个节点分别为A、B、C。A节点会启动2个线程,分别用来同步本节点的源数据到B、C节点。
1)、A节点读取sync目录下的 B.mark文件,记录了上次同步的binlog的索引(1)及offset(5000)
2)、打开binlog.010 文件,seek 到5000
3)、循环按行读取binlog内容,并解析内容,对于源操作进行同步,备份的数不同步,否则会形成回路。标记大小字母的为源数据,小写字母的副本
#define STORAGE_OP_TYPE_SOURCE_CREATE_FILE 'C' //upload file
#define STORAGE_OP_TYPE_SOURCE_APPEND_FILE 'A' //append file
#define STORAGE_OP_TYPE_SOURCE_DELETE_FILE 'D' //delete file
#define STORAGE_OP_TYPE_SOURCE_UPDATE_FILE 'U' //for whole file update such as metadata file
#define STORAGE_OP_TYPE_SOURCE_MODIFY_FILE 'M' //for part modify
#define STORAGE_OP_TYPE_SOURCE_TRUNCATE_FILE 'T' //truncate file
#define STORAGE_OP_TYPE_SOURCE_CREATE_LINK 'L' //create symbol link
#define STORAGE_OP_TYPE_REPLICA_CREATE_FILE 'c'
#define STORAGE_OP_TYPE_REPLICA_APPEND_FILE 'a'
#define STORAGE_OP_TYPE_REPLICA_DELETE_FILE 'd'
#define STORAGE_OP_TYPE_REPLICA_UPDATE_FILE 'u'
#define STORAGE_OP_TYPE_REPLICA_MODIFY_FILE 'm'
#define STORAGE_OP_TYPE_REPLICA_TRUNCATE_FILE 't'
#define STORAGE_OP_TYPE_REPLICA_CREATE_LINK 'l'
4)storageA节点将源数据发送到storageB节点,B 节点接收到数据后,按操作类型进行处理,把文件下载到本地相应的目录,具体实现在storage_sync_data函数中处理

阅读(6650) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~