一种数据迁移的方法以及数据节点技术

技术编号:20025604 阅读:71 留言:0更新日期:2019-01-06 04:29
本申请实施例公开了一种数据迁移的方法,用于无需等待目标数据从第一数据节点向第二数据节点迁移完成就可以迁移负载,降低时延。本申请实施例方法包括:第二数据节点接收第一数据节点发送的关于目标数据的数据迁移请求,数据迁移请求包含目标数据在第一数据节点中的内存地址;根据数据迁移请求建立RDMA虚拟内存空间,RDMA虚拟内存空间的内存地址映射到第一数据节点的内存地址,RDMA虚拟内存空间用于第二数据节点根据目标操作请求通过RDMA访问第一数据节点上的目标数据;向管理节点发送修改元数据的指令,修改元数据的指令用于管理节点修改元数据,以使得访问目标数据的目标操作请求路由到第二数据节点;接收并存储第一数据节点发送的目标数据。

【技术实现步骤摘要】
一种数据迁移的方法以及数据节点
本申请涉及计算机领域,尤其涉及一种数据迁移的方法、第一数据节点以及第二数据节点。
技术介绍
随着数据库技术的不断发展,用户对于数据库的扩展能力,容灾能力的要求不断提升,分布式数据库已经越来越受到用户的欢迎。在现有的负载均衡中,要将第一数据节点上的一些数据(可称为目标数据或者迁移数据)迁移到第二数据节点上。在数据迁移发生前,服务器对第一数据节点有一些访问流(如读/写请求);在数据迁移过程中,服务器对目标数据的访问仍然集中在第一数据节点上;在数据迁移结束后,服务器对目标数据的访问会切换到第二数据节点上。但是,关于目标数据的负载需要等到数据复制完以后,即数据都复制到第二数据节点上,才能将目标数据的负载切换到第二数据节点,负载迁移速度较慢;目标数据需要先复制到内核缓冲区,再发送到网络上向第二数据节点传输,对CPU资源消耗很大,会影响第一数据节点处理其他负载的性能,且目标数据传输速度较慢,时延较大。
技术实现思路
本申请实施例提供了一种数据迁移的方法以及数据节点,用于无需等待目标数据从第一数据节点向第二数据节点迁移完成就可以迁移负载,提升负载迁移的速度,降低时延。本申请实施例第一方面提供一种数据迁移的方法,可以包括:在负载均衡的方案中,第二数据节点接收第一数据节点发送的关于目标数据的数据迁移请求,该数据迁移请求包含该目标数据在该第一数据节点中的内存地址;应理解,目标数据可以是第一数据节点上的热点数据,热点数据可以为经常访问或者访问次数超过特定阈值的数据。该第二数据节点根据该数据迁移请求建立远程直接内存访问RDMA虚拟内存空间,该RDMA虚拟内存空间的内存地址映射到该第一数据节点的内存地址,该RDMA虚拟内存空间用于该第二数据节点根据目标操作请求通过RDMA访问该第一数据节点上的目标数据;该第二数据节点向管理节点发送修改元数据的指令,该修改元数据的指令用于该管理节点修改该元数据,以使得访问该目标数据的目标操作请求路由到该第二数据节点;这里的目标操作请求可以是对目标数据的负载或者访问。元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。该第二数据节点接收并存储该第一数据节点发送的该目标数据。在本申请实施例中,管理节点可以收集集群信息,该集群信息可以包括每个数据节点以及数据节点上每个store的容量和负载信息等。管理节点根据收集的集群信息可以触发负载均衡,第一数据节点接收管理节点发送的触发负载均衡的指令,向第二数据节点发送关于目标数据的数据迁移请求,或者,第一数据节点向管理节点发送负载大于第一阈值的指令,第二数据节点向管理节点发送负载小于第二阈值的指令,管理节点可以确认负载大于第一阈值的第一数据节点为源数据节点,确认负载小于第二阈值的第二数据节点为目标数据节点,管理节点可以向第一数据节点发送触发负载均衡的指令,第一数据节点向第二数据节点发送关于目标数据的迁移请求。第二数据节点根据关于目标数据的数据迁移请求,建立RDMA虚拟内存空间,RDMA的虚拟内存空间的内存地址映射到该第一数据节点的内存地址,所以,在第二数据节点上可以直接对第一数据节点的目标数据进行访问,不需要等到目标数据在第二数据节点上复制完成再迁移目标操作请求。第二数据节点再向管理节点发送元数据的修改指令,可以使得访问该目标数据的目标操作请求路由到该第二数据节点;第二数据节点接收目标操作请求后,可以通过RDMA访问第一数据节点上的目标数据。进一步的,第二数据节点接收第一数据节点发送的目标数据。利用RDMA虚拟内存映射技术,将待迁移数据映射到第二数据节点的虚拟内存空间中,并将使用权和负载全部切换到第二数据节点,从而无需等待数据复制完成就可以迁移负载,提升负载迁移的速度。结合本申请实施例的第一方面,在本申请实施例的第一方面的第一种实现方式中,所述第二数据节点接收并存储所述第一数据节点发送的所述目标数据,可以包括:该第二数据节点通过RDMA接收并存储所述第一数据节点发送的该目标数据。在本申请实施例中,将RDMA技术用于分布式数据库集群实时数据迁移的过程,减少了数据迁移对第一数据节点上CPU资源的消耗,减小了迁移过程对第一数据节点正在运行的其它业务的影响,并提升了数据传输的速度。结合本申请实施例的第一方面、第一方面的第一种实现方式,在本申请实施例的第一方面的第二种实现方式中,该目标数据为该第一数据节点中将热点数据分为M份数据中的其中一份数据,M为大于等于2的整数。在本申请实施例中,第二数据节点接收第一数据节点通过RDMA发送的目标数据,可以是第一数据节点将热点数据分为M份,以M份中的其中一份进行传输,这样,就可以减少在第一数据节点向第二数据节点发送数据的大小,缩短了目标数据不可用的时间和数据量,提升了服务质量。结合本申请实施例的第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式,在本申请实施例的第一方面的第三种实现方式中,+该方法还可以包括:第二数据节点向管理节点发送元数据的修改指令后,原先关于目标数据的目标操作请求(如负载或访问)会路由到第二数据节点上,当该第二数据节点接收该目标操作请求时,若该目标操作请求访问的该目标数据未保存在该第二数据节点上,应理解,在第二数据节点建立RDMA虚拟内存空间后,第二数据节点可以通过RDMA访问第一数据节点的目标数据的过程中,第一数据节点也可以将目标数据向第二数据节点发送,或者,可以通过RDMA方式将目标数据向第二数据节点发送。则该第二数据节点根据该目标操作请求通过RDMA访问该第一数据节点上的该目标数据;若该目标操作请求访问的该目标数据已保存在该第二数据节点上,则该第二数据节点根据该目标操作请求在已保存的该目标数据上进行访问。在本申请实施例中,若目标操作请求访问的目标数据未保存在第二数据节点上,则可以通过RDMA访问第一数据节点上的内存数据。若目标操作请求访问的目标数据保存在第二数据节点上,则可以在第二数据节点上直接访问,不需要再通过RDMA访问第一数据节点,不然,还需要第二数据节点向第一数据节点发送目标数据,浪费资源,增大访问时延。结合本申请实施例的第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式,在本申请实施例第一方面的第四种实现方式中,该方法还可以包括:若该目标操作请求为写操作请求,且所述写操作请求指示增加新数据,则该第二数据节点根据该写操作请求在该第二数据节点上进行写操作。因为如果是写操作请求的话,是写入目标数据,则不管第二数据界节点上是否有保存第一数据节点发送的目标数据,第二数据节点都可以根据写操作请求在第二数据节点上进行写操作,减少传输流程,降低时延。结合本申请实施例的第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式,在本申请实施例第一方面的第五种实现方式中,该方法还可以包括:若所述目标操作请求是读操作请求,或者对所述目标数据进行修改的写操作请求,且该目标操作请求访问的该目标数据已保存在该第二数据节点上,则该第二数据节点根据该目标操作请求在该第二数据节点上进行访问;若所述目标操作请求是读操作请本文档来自技高网...

【技术保护点】
1.一种数据迁移的方法,其特征在于,包括:第二数据节点接收第一数据节点发送的关于目标数据的数据迁移请求,所述数据迁移请求包含所述目标数据在所述第一数据节点中的内存地址;所述第二数据节点根据所述数据迁移请求建立远程直接内存访问RDMA虚拟内存空间,所述RDMA虚拟内存空间的内存地址映射到所述第一数据节点的内存地址,所述RDMA虚拟内存空间用于所述第二数据节点根据目标操作请求通过RDMA访问所述第一数据节点上的目标数据;所述第二数据节点向管理节点发送修改元数据的指令,所述修改元数据的指令用于所述管理节点修改所述元数据,以使得访问所述目标数据的目标操作请求路由到所述第二数据节点;所述第二数据节点接收并存储所述第一数据节点发送的所述目标数据。

【技术特征摘要】
1.一种数据迁移的方法,其特征在于,包括:第二数据节点接收第一数据节点发送的关于目标数据的数据迁移请求,所述数据迁移请求包含所述目标数据在所述第一数据节点中的内存地址;所述第二数据节点根据所述数据迁移请求建立远程直接内存访问RDMA虚拟内存空间,所述RDMA虚拟内存空间的内存地址映射到所述第一数据节点的内存地址,所述RDMA虚拟内存空间用于所述第二数据节点根据目标操作请求通过RDMA访问所述第一数据节点上的目标数据;所述第二数据节点向管理节点发送修改元数据的指令,所述修改元数据的指令用于所述管理节点修改所述元数据,以使得访问所述目标数据的目标操作请求路由到所述第二数据节点;所述第二数据节点接收并存储所述第一数据节点发送的所述目标数据。2.根据权利要求1所述的方法,其特征在于,所述第二数据节点接收并存储所述第一数据节点发送的所述目标数据,包括:所述第二数据节点通过RDMA接收并存储所述第一数据节点发送的所述目标数据。3.根据权利要求1或2所述的方法,其特征在于,所述目标数据为所述第一数据节点中将热点数据分为M份数据中的其中一份数据,M为大于等于2的整数。4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:若所述目标操作请求为写操作请求,且所述写操作请求指示增加新数据,则所述第二数据节点根据所述写操作请求在所述第二数据节点上进行写操作。5.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:若所述目标操作请求是读操作请求,或者对所述目标数据进行修改的写操作请求,且所述目标操作请求访问的所述目标数据已保存在所述第二数据节点上,则所述第二数据节点根据所述目标操作请求在所述第二数据节点上进行访问;若所述目标操作请求是读操作请求,或者对所述目标数据进行修改的写操作请求,且所述目标操作请求访问的所述目标数据未保存在所述第二数据节点上,则所述第二数据节点根据所述目标操作请求通过RDMA访问所述第一数据节点上的所述目标数据。6.一种数据迁移的方法,其特征在于,包括:第一数据节点向第二数据节点发送关于目标数据的数据迁移请求,所述数据迁移请求包含所述目标数据在所述第一数据节点中的内存地址,所述数据迁移请求用于所述第二数据节点建立远程直接内存访问RDMA虚拟内存空间,所述RDMA虚拟内存空间的内存地址映射到所述第一数据节点的内存地址,所述RDMA虚拟内存空间用于所述第二数据节点根据目标操作请求通过RDMA访问所述第一数据节点上的所述目标数据,所述目标操作请求为管理节点路由到所述第二数据节点上访问所述目标数据的操作请求;所述第一数据节点向所述第二数据节点发送所述目标数据。7.根据权利要求6所述的方法,其特征在于,所述第一数据节点向所述第二数据节点发送所述目标数据,包括:所述第一数据节点通过RDMA向所述第二数据节点发送所述目标数据。8.根据权利要求6或7所述的方法,其特征在于,所述第一数据节点向所述第二数据节点发送目标数据,包括:所述第一数据节点确定热点数据;所述第一数据节点将所述热点数据分为M份数据,M为大于等于2的整数;所述第一数据节点从所述M份数据中选择所述目标数据;所述第一数据节点向所述第二数据节点发送所述目标数据。9.根据权利要求8所述的方法,其特征在于,所述第一数据节点确定热点数据之前,所述方法还包括:所述第一数据节点接收管理节点发送的热点数据信息;所述第一数据节点确定热点数据,包括:所述第一数据节点根据所述热点数据信息确定所述热点数据。10.一种数据节点,其特征在于,包括:接收模块,用于接收第一数据节点发送的关于目标数据的数据迁移请求,所述数据迁移请求包含所述目标数据在所述第一数据节点中的内存地址;接收并存储所述第一数据节点发送的所述目标数据;处理模块,用于根据所述数据迁移请求建立远程直接内存访问RDMA虚拟内存空间,所述RDMA虚拟内存空间的内存地址映射到所述第一数据节点的内存地址,所述RDMA虚拟内存空间用于所述第二数据节点根据目标操作请求通过RDMA访问所述第一数据节点上的目标数据;发送模块,用于向管理节点发送修改元数据的指令,所述修改元数据的指令用于所述管理节点修改所述元数据,以使得访问所述目标数据的目标操作请求路由到所述第二数据节点。11.根据权利要求10所述的数据节点,其...

【专利技术属性】
技术研发人员:涂屹朱建峰智雅楠
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1
相关领域技术
  • 暂无相关专利