数据在线迁移方法、代理节点技术

技术编号:15792138 阅读:145 留言:0更新日期:2017-07-09 23:28
本发明专利技术公开了一种数据在线迁移方法和代理节点,该数据在线迁移方法首先向源数据库实例发送同步命令,然后接收源数据库实例依据同步命令返回的待同步数据并将待同步数据发送至目标数据库实例中,待数据迁移完成后,再接收源数据库实例发送的,待同步数据迁移过程中源数据库实例缓存的写操作命令,将写操作命令发送至所述目标数据库实例。从而将数据迁移以及数据迁移过程中产生的新数据的同步分为两个步骤前后依次进行,避免了数据错乱和丢失情况的发生。

【技术实现步骤摘要】
数据在线迁移方法、代理节点
本专利技术涉及数据库领域,更具体的说,是涉及一种数据在线迁移方法和代理节点。
技术介绍
随着互联网的迅速发展,各种电子业务数据急剧增长,对高性能、大容量的存储系统的需求越来越急迫,Redis集群既是在此环境下产生的key-value存储系统。在存储型Redis集群的使用过程中,由于业务数据量的不断增加,会导致Redis集群的剩余内存越来越小,这种情况下,就需要对Redis集群进行扩容,以保证Redis集群后续的持续正常使用。由于存储型Redis集群中,数据都是通过一致性哈希算法来选择对应的Redis实例,因此在对Redis集群进行扩容的过程中,需要将源Redis集群中原有的数据重新进行哈希算法,并迁移到根据哈希算法确定的目标Redis实例中。然而Redis集群数据迁移的过程耗时比较长,如果在此过程中拒绝用户访问,会非常影响用户的使用体验。现有技术中,有一种针对存储型Redis集群的数据迁移方法,该方法在源Redis集群数据迁移的过程中,同时能够接受用户写入的新数据,并直接同步到目标Redis集群。然而,上述方法在数据迁移的过程中,直接将产生的新数据更新到目标Redis集群,这样就可能造成数据的错乱或丢失,影响用户后续的正常使用。
技术实现思路
有鉴于此,本专利技术提供了一种数据在线迁移方法和代理节点,以克服现有技术中由于在数据迁移过程中直接将写操作产生的新数据同步到目标数据库实例中,而导致的数据错乱和丢失的问题。为实现上述目的,本专利技术提供如下技术方案:一种数据在线迁移方法,包括:向源数据库实例发送同步命令;接收源数据库实例依据所述同步命令返回的待同步数据;将所述待同步数据发送至目标数据库实例中;接收源数据库实例发送的,待同步数据迁移过程中源数据库实例缓存的写操作命令;将所述写操作命令发送至所述目标数据库实例。可选的,所述源数据库实例和所述目标数据库实例为键值数据库,在所述向源数据库实例发送同步命令前,还包括:确定键值与目标数据库实例的对应关系;则所述将待同步数据发送至目标数据库实例,包括:依据所述对应关系,将所述待同步数据发送至目标数据库实例中。可选的,所述确定键值与目标数据库实例的对应关系,包括:获取目标数据库实例列表;构造键值和所述目标数据库实例列表的对应关系。可选的,所述写操作命令包括待操作数据和操作命令,则所述将所述写操作命令发送至所述目标数据库实例,包括:确定所述待操作数据所在的目标数据库实例;将所述操作命令发送至所述目标数据库实例,以使得所述目标数据库实例依据所述操作命令对所述待操作数据进行更新。可选的,在所述将所述待同步数据发送至目标数据库实例中后,还包括:向所述源数据库实例发送写操作同步命令。可选的,在所述将所述待同步数据发送至目标数据库实例中前,还包括,解析所述待同步数据;则所述将所述待同步数据发送至目标数据库实例中,具体包括:将解析后的所述待同步数据发送至目标数据库实例中。一种代理节点,包括:命令发送模块,用于向源数据库实例发送同步命令;数据接收模块,用于接收源数据库实例依据所述同步命令返回的待同步数据;数据发送模块,用于将所述待同步数据发送至目标数据库实例中;操作接收模块,用于接收源数据库实例发送的,待同步数据迁移过程中源数据库实例缓存的写操作命令;操作发送模块,用于将所述写操作命令发送至所述目标数据库实例。可选的,所述源数据库实例和所述目标数据库实例为键值数据库,则所述代理节点还包括:关系确定模块,用于在命令发送模块向源数据库实例发送同步命令前,确定键值与目标数据库实例的对应关系;则所述数据发送模块具体用于:依据所述对应关系,将所述待同步数据发送至目标数据库实例中。可选的,所述关系确定模块包括:列表获取模块,用于获取目标数据库实例列表;关系构造模块,用于构造键值和所述目标数据库实例列表的对应关系。可选的,所述写操作命令包括待操作数据和操作命令,则所述操作发送模块包括:实例确定模块,用于确定所述待操作数据所在的目标数据库实例;命令发送模块,用于将所述操作命令发送至所述目标数据库实例,以使得所述目标数据库实例依据所述操作命令对所述待操作数据进行更新。可选的,所述命令发送模块还用于:在所述将所述待同步数据发送至目标数据库实例中后,向所述源数据库实例发送写操作同步命令。可选的,还包括解析模块,用于在数据发送模块将所述待同步数据发送至目标数据库实例中前,解析所述待同步数据。经由上述的技术方案可知,与现有技术相比,本专利技术实施例公开了一种数据在线迁移方法和代理节点,该数据在线迁移方法首先向源数据库实例发送同步命令,然后接收源数据库实例依据同步命令返回的待同步数据并将待同步数据发送至目标数据库实例中,待数据迁移完成后,再接收源数据库实例发送的,待同步数据迁移过程中源数据库实例缓存的写操作命令,将写操作命令发送至所述目标数据库实例。从而将数据迁移以及数据迁移过程中产生的新数据的同步分为两个步骤前后依次进行,避免了数据错乱和丢失情况的发生。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例公开的数据在线迁移方法的第一流程图;图2为本专利技术实施例公开的数据在线迁移方法的第二流程图;图3为本专利技术实施例公开的确定键值与目标数据库实例对应关系的流程图;图4为本专利技术实施例公开的数据在线迁移方法的第三流程图;图5为本专利技术实施例公开的数据在线迁移的任务调度架构图;图6为本专利技术实施例公开的代理节点的第一结构示意图;图7为本专利技术实施例公开的代理节点的第二结构示意图;图8为本专利技术实施例公开的关系确定模块的结构示意图;图9为本专利技术实施例公开的操作发送模块的结构示意图。具体实施方式为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:Redis:Redis是一个开源、支持网络、基于内存、键值对存储数据库,使用ANSIC编写。集群:计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。Redis集群:通过将Redis实例部署在多台计算机服务器上,对外提供大容量、高性能的Redis存储和查询服务。存储型Redis集群:Redis集群的数据不可丢失,不是单纯为了提高系统的响应速度的,同时作为数据的存储设施。一致性哈希:对于给定的任意长度的键值,通过一定的算法,将其转换为另一个值,称为哈希值,这个映射算法称为哈希算法或散列算法。一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对K/n个关键字重新映射,其中K是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。其实现为:一致哈希将每个对象映射到圆环边上的一个点,系统再将可用的节点机器映射到圆环的不同位置。查找某个对象对应的机器时,需要用一致哈希算法计算得到对象对应圆环边上位置,沿着圆环边上查找直到遇到某个节点机器,这台机器即为对象应该保存的位置。当删除一台节点机器时本文档来自技高网...
数据在线迁移方法、代理节点

【技术保护点】
一种数据在线迁移方法,其特征在于,包括:向源数据库实例发送同步命令;接收源数据库实例依据所述同步命令返回的待同步数据;将所述待同步数据发送至目标数据库实例中;接收源数据库实例发送的,待同步数据迁移过程中源数据库实例缓存的写操作命令;将所述写操作命令发送至所述目标数据库实例。

【技术特征摘要】
1.一种数据在线迁移方法,其特征在于,包括:向源数据库实例发送同步命令;接收源数据库实例依据所述同步命令返回的待同步数据;将所述待同步数据发送至目标数据库实例中;接收源数据库实例发送的,待同步数据迁移过程中源数据库实例缓存的写操作命令;将所述写操作命令发送至所述目标数据库实例。2.根据权利要求1所述的数据在线迁移方法,其特征在于,所述源数据库实例和所述目标数据库实例为键值数据库,在所述向源数据库实例发送同步命令前,还包括:确定键值与目标数据库实例的对应关系;则所述将待同步数据发送至目标数据库实例,包括:依据所述对应关系,将所述待同步数据发送至目标数据库实例中。3.根据权利要求2所述的数据在线迁移方法,其特征在于,所述确定键值与目标数据库实例的对应关系,包括:获取目标数据库实例列表;构造键值和所述目标数据库实例列表的对应关系。4.根据权利要求1所述的数据在线迁移方法,其特征在于,所述写操作命令包括待操作数据和操作命令,则所述将所述写操作命令发送至所述目标数据库实例,包括:确定所述待操作数据所在的目标数据库实例;将所述操作命令发送至所述目标数据库实例,以使得所述目标数据库实例依据所述操作命令对所述待操作数据进行更新。5.根据权利要求1所述的数据在线迁移方法,其特征在于,在所述将所述待同步数据发送至目标数据库实例中后,还包括:向所述源数据库实例发送写操作同步命令。6.根据权利要求1所述的数据在线迁移方法,其特征在于,在所述将所述待同步数据发送至目标数据库实例中前,还包括,解析所述待同步数据;则所述将所述待同步数据发送至目标数据库实例中,具体包括:将解析后的所述待同步数据发送至目标数据库实例中。7.一种代...

【专利技术属性】
技术研发人员:张航曾镇
申请(专利权)人:北京搜狐新媒体信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1