数据迁移方法及装置制造方法及图纸

技术编号:15542028 阅读:175 留言:0更新日期:2017-06-05 11:09
本发明专利技术实施例提供一种数据迁移方法及装置。该方法包括:主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,每个存储分片至少存储一个文档;主节点计算第一子节点中存储分片的个数与第二子节点中存储分片的个数的差值,若差值大于第一阈值,则使第一子节点将待减少的存储分片中存储的文档发送到第二子节点。本发明专利技术实施例通过主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,将第一子节点中存储的部分文档发送到第二子节点,使集群中子节点的数据存储达到平衡状态,避免集群中出现数据存储量大的子节点,提高了整个集群的计算效率。

Data migration method and device

The embodiment of the invention provides a data transfer method and device. The method comprises: a main node according to the number of storage of each sub node in slices determined the first child node and store slice slice up at least second child nodes, each storing slice storing at least one document; calculating the difference between the number of storage number and second sub node stores a first child node in the the slices of the master node, if the difference is greater than the first threshold, the document is sent to the second node to the first node to reduce the memory stored in the slice. The embodiment of the invention by the master node according to the number of storage of each sub node in slices determined the first child node and store slice slice up at least second child nodes, the first node in the storage part of the document sent to the second node, the cluster node neutron data storage reach the balance state. To avoid a large amount of data storage sub node in the cluster, improve the computational efficiency of the entire cluster.

【技术实现步骤摘要】
数据迁移方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种数据迁移方法及装置。
技术介绍
随着计算机技术的发展,分布式数据库将原来集中式数据库中的数据分散存储到多个通过网络连接的子节点上,以获取更大的存储容量和更高的并发访问量。现有技术将待存储文档例如XML文件存储到子节点的过程具体为:依据待存储文档的文件名计算哈希值,依据该哈希值所属的范围从集群的多个子节点中确定出一个子节点,将待存储文档存储到该子节点上,其中,每个子节点对应一个哈希值范围。若多个待存储文档分别对应的哈希值集中在一个哈希值范围内,则该多个待存储文档将被同时存储到与该哈希值范围对应的子节点上,导致该子节点的数据存储量较大;或者若待存储文档较大也将导致该子节点的数据存储量较大;由于多个子节点构成一个集群,则同一个集群中不同的子节点的数据存储量不同。集群中的主节点将一个大的计算任务分为多个小的计算任务并分发给多个子节点,主节点依据各个子节点返回的子结果获得总的计算结果,由于集群中数据存储量大的子节点计算效率低,使得该子节点向主节点返回子结果的时间最晚,导致整个集群的计算效率下降。
技术实现思路
本专利技术实施例提供一种数据迁移方法及装置,以提高整个集群的计算效率。本专利技术实施例的一个方面是提供一种数据迁移方法,包括:主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,每个存储分片至少存储一个文档;所述主节点计算所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值,若所述差值大于第一阈值,则依据所述差值计算所述第一子节点中待减少的存储分片的个数;所述主节点向所述第一子节点发送迁移指令,以使所述第一子节点将所述待减少的存储分片中存储的文档发送到所述第二子节点。本专利技术实施例的另一个方面是提供一种数据迁移装置,包括:获取模块,用于依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,每个存储分片至少存储一个文档;计算模块,用于计算所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值,若所述差值大于第一阈值,则依据所述差值计算所述第一子节点中待减少的存储分片的个数;发送模块,用于向所述第一子节点发送迁移指令,以使所述第一子节点将所述待减少的存储分片中存储的文档发送到所述第二子节点。本专利技术实施例提供的数据迁移方法及装置,通过主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,将第一子节点中存储的部分文档发送到第二子节点,以使第一子节点中存储分片的个数与第二子节点中存储分片的个数的差值小于或等于第一阈值,使集群中子节点的数据存储达到平衡状态,避免集群中出现数据存储量大的子节点,提高了整个集群的计算效率。附图说明图1为本专利技术实施例提供的数据迁移方法流程图;图2为本专利技术实施例提供的数据迁移装置的结构图;图3为本专利技术另一实施例提供的数据迁移装置的结构图。具体实施方式图1为本专利技术实施例提供的数据迁移方法流程图。本专利技术实施例针对集群中数据存储量大的子节点计算效率低,使得该子节点向主节点返回子结果的时间最晚,导致整个集群的计算效率下降,提供了数据迁移方法,该方法具体步骤如下:步骤S101、主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,每个存储分片至少存储一个文档;在本专利技术实施例中,一个集群包括一个主节点和多个子节点,每个子节点可以包括多种类型的存储分片,且每一种类型的存储分片的个数为多个,例如任一子节点可以包括多个containerA分片、多个containerB分片和多个containerC分片,本专利技术实施例只针对一种类型的存储分片(containerC分片)进行阐述。主节点依据待存储文档的文件名计算哈希值,依据该哈希值所属的范围确定出一个存储分片,将待存储文档存储到该存储分片上,其中,一个存储分片对应一个哈希值范围,哈希值属于同一范围内的待存储文档将被存储到同一个存储分片中,即一个存储分片至少存储一个文档,依据该方法主节点将所有待存储文档存储到各个子节点的存储分片具体为containerC分片上,由于一个存储分片对应一个哈希值范围,每个待存储文档对应一个哈希值,则不同子节点开辟的存储分片的个数不同。主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点。步骤S102、所述主节点计算所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值,若所述差值大于第一阈值,则依据所述差值计算所述第一子节点中待减少的存储分片的个数;由于第一子节点中的存储分片最多,第二子节点中的存储分片最少,所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值大于第一阈值,说明该集群中子节点的数据存储失衡,第一子节点中存储的文档较多,第二子节点中存储的文档较少,第一子节点中存储的部分文档需要转移存储到第二子节点中。主节点依据所述差值计算所述第一子节点中待减少的存储分片的个数。步骤S103、所述主节点向所述第一子节点发送迁移指令,以使所述第一子节点将所述待减少的存储分片中存储的文档发送到所述第二子节点。主节点依据所述差值计算出所述第一子节点中待减少的存储分片的个数之后,向所述第一子节点发送迁移指令,以使所述第一子节点将所述待减少的存储分片中存储的文档发送到所述第二子节点。另外,上述步骤S101-S103可构成一个循环,即步骤S103执行结束后返回到步骤S101,直至该集群中所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值小于或等于第一阈值,说明该集群中子节点的数据存储达到平衡状态。本专利技术实施例通过主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,将第一子节点中存储的部分文档发送到第二子节点,以使第一子节点中存储分片的个数与第二子节点中存储分片的个数的差值小于或等于第一阈值,使集群中子节点的数据存储达到平衡状态,避免集群中出现数据存储量大的子节点,提高了整个集群的计算效率。在上述实施例的基础上,所述第一子节点中待减少的存储分片的个数等于所述差值的二分之一。例如,所述第一子节点中存储分片的个数为n,所述第二子节点中存储分片的个数为m,n-m>k,或者n-m>=k,则将第一子节点中(n-m)/2个存储分片中存储的文档迁移到所述第二子节点。若所述各个子节点中存储分片的大小大于或等于第二阈值时,所述存储分片分解为两个存储分片;所述主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点之前,还包括:所述主节点依据采样周期在采样时刻获取各个子节点中存储分片的个数。随着待存储文档不断存入到各个子节点的存储分片中,存储分片的大小在不断的增大,当存储分片的大小大于或等于第二阈值例如2048MB时,该存储分片分解为两个存储分片,例如某一存储分片对应的哈希值为1-100,即哈希值在1-100范围内的待存储文档均存储在该存储分片中,当该存储分片的大小大于或等于2048MB时,从哈希值为1开始累计每个哈希值对应的文档的大小,本文档来自技高网...
数据迁移方法及装置

【技术保护点】
一种数据迁移方法,其特征在于,包括:主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,每个存储分片至少存储一个文档;所述主节点计算所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值,若所述差值大于第一阈值,则依据所述差值计算所述第一子节点中待减少的存储分片的个数;所述主节点向所述第一子节点发送迁移指令,以使所述第一子节点将所述待减少的存储分片中存储的文档发送到所述第二子节点。

【技术特征摘要】
1.一种数据迁移方法,其特征在于,包括:主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点,每个存储分片至少存储一个文档;所述主节点计算所述第一子节点中存储分片的个数与所述第二子节点中存储分片的个数的差值,若所述差值大于第一阈值,则依据所述差值计算所述第一子节点中待减少的存储分片的个数;所述主节点向所述第一子节点发送迁移指令,以使所述第一子节点将所述待减少的存储分片中存储的文档发送到所述第二子节点。2.根据权利要求1所述的方法,其特征在于,所述第一子节点中待减少的存储分片的个数等于所述差值的二分之一。3.根据权利要求2所述的方法,其特征在于,若所述各个子节点中存储分片的大小大于或等于第二阈值时,所述存储分片分解为两个存储分片;所述主节点依据各个子节点中存储分片的个数确定出存储分片最多的第一子节点和存储分片最少的第二子节点之前,还包括:所述主节点依据采样周期在采样时刻获取各个子节点中存储分片的个数。4.根据权利要求3所述的方法,其特征在于,所述主节点和所述各个子节点属于同一集群,若所述集群中增加有新的子节点,则将所述新的子节点作为所述第二子节点。5.根据权利要求3所述的方法,其特征在于,所述主节点和所述各个子节点属于同一集群,若从所述集群中删除任一子节点,且待删除的子节点不是所述第二子节点,则将所述待删除的子节点中存储的所有文档迁移到所述第二子节点;若所述待删除的子节点是所述第二子节点,则将所述待删除的子节点中存储的所有文档迁移到第三子节点,所述第三子节点是所述集群中除所述第二子节点之外存储分片最少的子节点。6.一种数据迁移装置,其特征在于,包括:获...

【专利技术属性】
技术研发人员:郑程光
申请(专利权)人:北大方正集团有限公司北大方正信息产业集团有限公司上海方正数字出版技术有限公司
类型:发明
国别省市:北京,11

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

1