[发明专利]一种数据迁移方法和系统在审
申请号: | 201910655766.6 | 申请日: | 2019-07-19 |
公开(公告)号: | CN112241398A | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 黄东宏;聂启忠 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F9/48 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 李阳;赵迪 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 迁移 方法 系统 | ||
本发明公开了一种数据迁移方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:启动设定数量的异步线程,由至少一个所述异步线程执行异步DUMP命令,以将源数据库的待迁移数据进行序列化,得到序列化对象;由至少一个所述异步线程执行异步RESTORE命令,以将所述序列化对象进行反序列化,将得到的反序列化对象写入目标数据库;删除所述源数据库的待迁移数据,完成数据迁移。该方法通过异步线程执行序列化、反序列化操作,将数据迁移对源数据库和目标数据库的阻塞时间优化至常量时间,避免了待迁移数据的数据量大小对阻塞时间的影响。
技术领域
本发明涉及计算机领域,尤其涉及一种数据迁移方法和系统。
背景技术
目前在实现Redis数据库的数据迁移时,主要依赖Redis数据库提供的原生命令,包括DUMP命令、RESTORE命令、DEL命令和MIGRATE命令。其中,MIGRATE命令是DUMP命令、RESTORE命令和DEL命令的封装。在迁移的数据量比较大时,DUMP命令中的序列化操作、RESTORE命令中的反序列化操作和内存申请、DEL命令中的内存释放都是比较耗时的操作。由于Redis数据库的原生命令为单线程运行,一旦出现耗时的操作,会导致数据迁移出现阻塞,影响正常业务请求。
现有技术中一般通过下述两种方式节省命令的耗时,方式一:重写DUMP命令和RESTORE命令,修改序列化的方式,提高序列化和反序列化的效率;方式二:模拟Redis主从复制的过程,将从源数据库获取序列化数据的操作在Fork(复刻)出的子进程中完成,与主进程独立,避免了对主进程处理正常业务请求造成影响。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)方式一会增加序列化后的字节流的体积,在网络带宽比较小的情况下,会导致网络拥堵;另外,其对序列化和反序列化的处理速度只能提升一个固定比例,由于原处理速度与数据大小基本成正比例关系,随着数据大小的增加,即便是提升后的处理速度,仍旧可能会造成阻塞。
(2)方式二在Fork子进程时,数据库可能会出现短时间阻塞,导致所有访问该数据库的请求耗时出现短时间升高后又快速回落,形成耗时尖刺;另外,在Fork出子进程之后到其被回收期间,如果数据库接收到比较多的写请求,操作系统的内存会出现明显增长,且会产生大量的内存拷贝操作,增加操作系统的负荷;而且其只能解决源数据库阻塞的问题,不能解决目标数据库的阻塞,不适用于使用MIGRATE命令的场景。
发明内容
有鉴于此,本发明实施例提供一种数据迁移方法和系统,通过异步线程执行序列化、反序列化操作,将数据迁移对源数据库和目标数据库的阻塞时间优化至常量时间,避免了待迁移数据的数据量大小对阻塞时间的影响。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据迁移方法。
本发明实施例的一种数据迁移方法,包括:启动设定数量的异步线程,由至少一个所述异步线程执行异步DUMP命令,以将源数据库的待迁移数据进行序列化,得到序列化对象;由至少一个所述异步线程执行异步RESTORE命令,以将所述序列化对象进行反序列化,将得到的反序列化对象写入目标数据库;删除所述源数据库的待迁移数据,完成数据迁移。
可选地,所述方法还包括:分析数据迁移所使用的原生命令对应的命令实现逻辑,把所述命令实现逻辑中允许同步执行的子逻辑和允许并发执行的子逻辑进行拆分;将允许同步执行的子逻辑作为同步任务分配至主线程,将允许并发执行的子逻辑作为异步任务分配至所述异步线程。
可选地,所述异步DUMP命令的实现逻辑包括:所述主线程创建异步DUMP任务,将所述异步DUMP任务传输至所述异步线程;所述异步线程获取所述异步DUMP任务后,将所述待迁移数据进行序列化,将得到的所述序列化对象传输至所述主线程;所述主线程释放所述异步DUMP任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910655766.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置