网站大量收购独家精品文档,联系QQ:2885784924

迁移的实时查询和分片的断点续迁.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

迁移的实时查询和分片的断点续迁

1.添加实时查询各分片的迁移情况,包括如下信息:

迁移已进行的时间(不包含rdb解析和key注册的消耗时间)

需要迁移的key总量

已经成功迁移的key数量

迁移失败的key数量

待迁移的key数量

成功迁移的百分比

该数据在分片迁移的过程中会定时或定量刷新到DTredis的db0中,并进行bgsave保存,在数据迁移的过程中可进行实时查询大致的迁移情况。

若DT运行完毕或者异常退出,可用redis加载备份的dump文件进行数据查看。

断点续迁功能

在线数据迁移,从某一单独分片来说分一下几个步骤

1.向daemon发消息进行bgsave并获取dump文件至DT

2.解析dump文件,生成待操作log文件,文件中记录所有待迁移的key

3.开始数据迁移

4.数据迁移的过程更新并记录各参数

migstatus:

0迁移未开始

1dump文件解析中

2dump文件解析完成

3数据迁移中

4数据迁移完成

5迁移线程结束

logfile:操作日志文件,文件中记录了所有待迁移的key。

miglocation:当前迁移的key(目前设置为每迁移500个key刷新一次)。

在线数据迁移启动时,DT根据待迁移的shard名去db0下查询该分片的迁移信息,包括migstatus、logfile和miglocation。

1.首先判断migstatus,若为4或5,则认为上次该分片已经迁移完成。

2.若migstatus不为4或5,则认为上次数据迁移未开始或中断未完成,本次需要进行续迁或者重新迁移。

分析logfile和miglocation,分为以下几种情况:

Logfile文件不存在:需要对dump文件进行解析并对该shard进行重新数据迁移操作;

Logfile存在,但在Logfile中找不到miglocation:要对dump文件进行解析并对该shard进行重新数据迁移操作;

Logfile存在,在Logfile中可以找到miglocation:认为上次迁移在处理miglocation这个key时迁移中断,本次需要进行续迁。从Logfile中的miglocation位置开始,

Register线程将剩下的key都注册到db0中,migrate线程对剩下的key进行迁移操作。

迁移和续迁就是以上的大概步骤,具体需看演示。

Miglocation位置查找操作,目前是做如下处理操作的:

若Logfile为redis-rdbLog-_thread0_2018_4_27_9\:57\:21

miglocation记录的位置为ttbckk167615,

则将miglocation拼接为12ttbckk167615type06string,该字符串在文件中肯定是唯一的。

找到12ttbckk167615type06string在文件中的位置,将余下的key抽取出来并进行注册和迁移。

您可能关注的文档

文档评论(0)

大大大爷爷⛄️ + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档