Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR ACCESSING SHARED MEMORY
Document Type and Number:
WIPO Patent Application WO/2015/014152
Kind Code:
A1
Abstract:
Provided are a data migration processing method, device and system. The method comprises: an emigration node determining data to be migrated and a data index corresponding to the data to be migrated; and the emigration node migrating the data to be migrated and the data index corresponding to the data to be migrated into an immigration node. The technical solution of the present invention can reduce I/O operations of the emigration node on a disk during data migration, thereby improving the efficiency of data migration in a distributed storage system, and then improving the performance of the distributed storage system.

Inventors:
LI YONG (CN)
WANG TIEYING (CN)
LU SHUIFENG (CN)
Application Number:
PCT/CN2014/078436
Publication Date:
February 05, 2015
Filing Date:
May 26, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04L29/08
Foreign References:
CN102063500A2011-05-18
CN103186537A2013-07-03
CN102968498A2013-03-13
CN103136340A2013-06-05
Download PDF:
Claims:
权 利 要 求

1、 一种数据迁移处理方法, 其特征在于, 包括:

迁出节点确定待迁移数据和与所述待迁移数据对应的数据索引; 所述迁出节点将所述待迁移数据和与所述待迁移数据对应的数据索引 迁移到迁入节点。

2、 根据权利要求 1所述的方法, 其特征在于, 所述迁出节点将所述待 迁移数据和与所述待迁移数据对应的数据索引迁移到迁入节点, 包括: 所述迁出节点将所述待迁移数据迁移到所述迁入节点;

所述迁出节点将所述待迁移数据对应的数据索引迁移到迁入节点。 3、 根据权利要求 2所述的方法, 其特征在于, 所述迁出节点将所述待 迁移数据对应的数据索引迁移到迁入节点之前, 还包括:

所述迁出节点确定所述待迁移数据发生更新;

所述迁出节点将更新的数据同步到所述迁入节点;

所述迁出节点更新与更新后的待迁移数据对应的数据索引;

所述迁出节点将所述待迁移数据对应的数据索引迁移到迁入节点, 包 括:

所述迁出节点将与更新后的待迁移数据对应的更新后的数据索引迁移 到迁入节点。

4、 根据权利要求 3所述的方法, 其特征在于, 所述迁出节点更新与更 新后的待迁移数据对应的数据索引, 包括:

所述迁出节点在接收到所述迁入节点发送的同步数据成功接收响应之 后, 更新与更新后的待迁移数据对应的数据索引。

5、 根据权利要求 1—4任一项所述的方法, 其特征在于, 所述迁出节点 确定待迁移数据和与所述待迁移数据对应的数据索引, 包括:

所述迁出节点根据待迁移区间中的关键字确定待迁移数据;

所述迁出节点根据待迁移区间中的关键字从数据索引库中过滤得到与 所述待迁移数据对应的索引数据。 6、 根据权利要求 5所述的方法, 其特征在于, 所述迁出节点根据待迁 移区间中的关键字从数据索引库中过滤得到与所述待迁移数据对应的索引 数据之前, 还包括:

所述迁出节点确定所述数据索引库是否处于维护状态;

若是, 则所述迁出节点向所述迁入节点发送第一指示信息, 所述第一指 示信息用于指示所述迁入节点在所述待迁移数据迁移完成之后自行创建与 所述待迁移数据对应的索引数据;

若否, 则所述迁出节点向所述迁入节点发送第二指示信息, 所述第二指 示信息用于指示所述迁入节点等待接收与所述待迁移数据对应的索引数据。

7、 一种数据迁移处理方法, 其特征在于, 包括:

迁入节点接收迁出节点发送的待迁移数据和与所述待迁移数据对应的 数据索引;

所述迁入节点根据待迁移数据和与所述待迁移数据对应的数据索引更 新本地数据和与所述本地数据对应的数据索引。

8、 根据权利要求 7所述的方法, 其特征在于, 所述迁入节点接收迁出 节点发送的待迁移数据和与所述待迁移数据对应的数据索引, 包括:

所述迁入节点接收所述迁出节点发送的所述待迁移数据;

所述迁入节点接收所述迁出节点发送的所述待迁移数据对应的数据索 引。

9、 根据权利要求 8所述的方法, 其特征在于, 所述迁入节点接收所述 迁出节点发送的所述待迁移数据对应的数据索引之前, 还包括:

所述迁入节点接收所述迁出节点发送的更新的数据;

所述迁入节点接收所述迁出节点发送的所述待迁移数据对应的数据索 引, 包括:

所述迁入节点接收所述迁出节点发送的与更新后的待迁移数据对应的 更新后的数据索引。

10、 根据权利要求 9所述的方法, 其特征在于, 所述迁入节点接收所述 迁出节点发送的与更新后的待迁移数据对应的更新后的数据索引之前,还包 括:

所述迁入节点向所述迁出节点发送同步数据成功接收响应,以使所述迁 出节点更新与更新后的待迁移数据对应的数据索引。

1 1、 根据权利要求 8-1 0中任一项所述的方法, 其特征在于, 所述迁入 节点接收所述迁出节点发送的所述待迁移数据对应的数据索引之前, 还包 括:

若所述迁入节点接收到所述迁出节点发送的第一指示信息,则所述迁入 节点在所述待迁移数据接收完成之后自行创建与所述待迁移数据对应的索 引数据;

若所述迁入节点接收到所述迁出节点发送的第二指示信息,则所述迁入 节点等待接收与所述待迁移数据对应的索引数据。

12、 一种迁出节点, 其特征在于, 包括:

确定模块, 用于确定待迁移数据和与所述待迁移数据对应的数据索引; 迁移模块,用于将所述待迁移数据和与所述待迁移数据对应的数据索引 迁移到迁入节点。

1 3、 根据权利要求 1 2所述的迁出节点, 其特征在于, 所述迁移模块, 具体用于:

将所述待迁移数据迁移到所述迁入节点;

将所述待迁移数据对应的数据索引迁移到迁入节点。

14、 根据权利要求 1 3所述的迁出节点, 其特征在于, 所述迁移模块, 还用于: 在将所述待迁移数据对应的数据索引迁移到迁入节点之前, 确定所 述待迁移数据发生更新;

所述迁移模块, 还用于将更新的数据同步到所述迁入节点;

所述迁出节点, 还包括:

更新模块, 用于更新与更新后的待迁移数据对应的数据索引;

所述迁移模块, 还用于: 将与更新后的待迁移数据对应的更新后的数据索引迁移到迁入节点。

15、 根据权利要求 14所述的迁出节点, 其特征在于, 所述更新模块, 还用于:

所述迁出节点在接收到所述迁入节点发送的同步数据成功接收响应之 后, 更新与更新后的待迁移数据对应的数据索引。

16、 根据权利要求 1 2—1 5任一项所述的迁出节点, 其特征在于, 所述确 定模块, 具体用于:

根据待迁移区间中的关键字确定待迁移数据;

根据待迁移区间中的关键字从数据索引库中过滤得到与所述待迁移数 据对应的索引数据。

17、 根据权利要求 1 6所述的迁出节点, 其特征在于, 所述迁出节点, 还包括: 发送模块;

所述确定模块,还用于在根据待迁移区间中的关键字从数据索引库中过 滤得到与所述待迁移数据对应的索引数据之前,确定所述数据索引库是否处 于维护状态;

若是, 则所述发送模块向所述迁入节点发送第一指示信息, 所述第一指 示信息用于指示所述迁入节点在所述待迁移数据迁移完成之后自行创建与 所述待迁移数据对应的索引数据;

若否, 则所述发送模块向所述迁入节点发送第二指示信息, 所述第二指 示信息用于指示所述迁入节点等待接收与所述待迁移数据对应的索引数据。

18、 一种迁入节点, 其特征在于, 包括:

接收模块,用于接收迁出节点发送的待迁移数据和与所述待迁移数据对 应的数据索引;

更新模块,用于根据待迁移数据和与所述待迁移数据对应的数据索引更 新本地数据和与所述本地数据对应的数据索引。

19、 根据权利要求 1 8所述的迁入节点, 其特征在于, 所述接收模块, 具体用于: 接收所述迁出节点发送的所述待迁移数据;

接收所述迁出节点发送的所述待迁移数据对应的数据索引。

20、 根据权利要求 1 9所述的迁入节点, 其特征在于, 所述接收模块, 还用于在接收所述迁出节点发送的所述待迁移数据对应的数据索引之前,接 收所述迁出节点发送的更新的数据;

所述接收模块还用于:

接收所述迁出节点发送的与更新后的待迁移数据对应的更新后的数据 索引。

21、 根据权利要求 20所述的迁入节点, 其特征在于, 所述迁入节点, 还包括: 发送模块, 用于在接收所述迁出节点发送的与更新后的待迁移数据 对应的更新后的数据索引之前, 向所述迁出节点发送同步数据成功接收响 应, 以使所述迁出节点更新与更新后的待迁移数据对应的数据索引。

22、 根据权利要求 1 9-21中任一项所述的迁入节点, 其特征在于, 所述 迁入节点, 还包括: 处理模块, 用于在接收所述迁出节点发送的所述待迁移 数据对应的数据索引之前, 若接收到所述迁出节点发送的第一指示信息, 则 在所述待迁移数据接收完成之后自行创建与所述待迁移数据对应的索引数 据; 若接收到所述迁出节点发送的第二指示信息, 则等待接收与所述待迁移 数据对应的索引数据。

23、 一种系统, 其特征在于, 包括: 如权利要求 12-1 7任一项所述的迁 出节点和如权利要求 18-22任一项所述的迁入节点。

Description:
一种访问共享内存的方法和装置

技术领域 本发明实施例涉及通信技术, 尤其涉及一种数据迁移处理方法、 装置 及系统。 背景技术 关键字-对象值 (Key-Va lue ) 类型的分布式数据存储系统中多个 key组 成的集合称为区间 ( range )每个节点负责全部 key range中的一部分 range , 如果有新节点加入或者负载均衡时需要对集群 中各个节点负责的 range进行 重新分配, 即进行 range的切分和该 range负责的数据的迁移。

存储系统的性能。 发明内容 本发明实施例提供一种数据迁移处理方法、 装置及系统, 用以提高分布 式存储系统中数据迁移的效率, 进而提高分布式存储系统的性能。

本发明第一方面, 提供一种数据迁移处理方法, 包括:

迁出节点确定待迁移数据和与所述待迁移数据 对应的数据索引; 所述迁出节点将所述待迁移数据和与所述待迁 移数据对应的数据索引迁 移到迁入节点。

在第一方面的第一种可能的实现方式中, 所述迁出节点将所述待迁移数 据和与所述待迁移数据对应的数据索引迁移到 迁入节点, 包括:

所述迁出节点将所述待迁移数据迁移到所述迁 入节点;

所述迁出节点将所述待迁移数据对应的数据索 引迁移到迁入节点。

根据第一方面的第一种可能的实现方式, 在第一方面的第二种可能的实 现方式中, 所述迁出节点将所述待迁移数据对应的数据索 引迁移到迁入节点 之前, 还包括:

所述迁出节点确定所述待迁移数据发生更新;

所述迁出节点将更新的数据同步到所述迁入节 点;

所述迁出节点更新与更新后的待迁移数据对应 的数据索引;

所述迁出节点将所述待迁移数据对应的数据索 引迁移到迁入节点,包括: 所述迁出节点将与更新后的待迁移数据对应的 更新后的数据索引迁移到 迁入节点。

根据第一方面的第二种可能的实现方式, 在第一方面的第三种可能的实 现方式中, 所述迁出节点更新与更新后的待迁移数据对应 的数据索引, 包括: 所述迁出节点在接收到所述迁入节点发送的同 步数据成功接收响应之 后, 更新与更新后的待迁移数据对应的数据索引。

结合第一方面或第一方面的第一种至第三种可 能的实现方式中任意一 种, 在第一方面的第四种可能的实现方式中, 所述迁出节点确定待迁移数据 和与所述待迁移数据对应的数据索引, 包括:

所述迁出节点根据待迁移区间中的关键字确定 待迁移数据;

所述迁出节点根据待迁移区间中的关键字从数 据索引库中过滤得到与所 述待迁移数据对应的索引数据。

根据第一方面的第四种可能的实现方式, 在第一方面的第五种可能的实 现方式中, 所述迁出节点根据待迁移区间中的关键字从数 据索引库中过滤得 到与所述待迁移数据对应的索引数据之前, 还包括:

所述迁出节点确定所述数据索引库是否处于维 护状态;

若是, 则所述迁出节点向所述迁入节点发送第一指示 信息, 所述第一指 示信息用于指示所述迁入节点在所述待迁移数 据迁移完成之后自行创建与所 述待迁移数据对应的索引数据;

若否, 则所述迁出节点向所述迁入节点发送第二指示 信息, 所述第二指 示信息用于指示所述迁入节点等待接收与所述 待迁移数据对应的索引数据。

本发明第二方面, 提供一种数据迁移处理方法, 包括: 迁入节点接收迁出节点发送的待迁移数据和与 所述待迁移数据对应的数 据索引;

所述迁入节点根据待迁移数据和与所述待迁移 数据对应的数据索引更新 本地数据和与所述本地数据对应的数据索引。

在第二方面的第一种可能的实现方式中, 所述迁入节点接收迁出节点发 送的待迁移数据和与所述待迁移数据对应的数 据索引, 包括:

所述迁入节点接收所述迁出节点发送的所述待 迁移数据;

所述迁入节点接收所述迁出节点发送的所述待 迁移数据对应的数据索 引。

根据第二方面的第一种可能的实现方式, 在第二方面的第二种可能的实 现方式中, 所述迁入节点接收所述迁出节点发送的所述待 迁移数据对应的数 据索引之前, 还包括:

所述迁入节点接收所述迁出节点发送的更新的 数据;

所述迁入节点接收所述迁出节点发送的所述待 迁移数据对应的数据索 引, 包括:

所述迁入节点接收所述迁出节点发送的与更新 后的待迁移数据对应的更 新后的数据索引。

根据第二方面的第二种可能的实现方式, 在第二方面的第三种可能的实 现方式中, 所述迁入节点接收所述迁出节点发送的与更新 后的待迁移数据对 应的更新后的数据索引之前, 还包括:

所述迁入节点向所述迁出节点发送同步数据成 功接收响应, 以使所述迁 出节点更新与更新后的待迁移数据对应的数据 索引。

结合第二方面或第二方面的第一种至第三种可 能的实现方式中任意一 种, 在第二方面的第四种可能的实现方式中, 所述迁入节点接收所述迁出节 点发送的所述待迁移数据对应的数据索引之前 , 还包括:

若所述迁入节点接收到所述迁出节点发送的第 一指示信息, 则所述迁入 节点在所述待迁移数据接收完成之后自行创建 与所述待迁移数据对应的索引 数据;

若所述迁入节点接收到所述迁出节点发送的第 二指示信息, 则所述迁入 节点等待接收与所述待迁移数据对应的索引数 据。

本发明第三方面, 提供一种迁出节点, 包括:

确定模块, 用于确定待迁移数据和与所述待迁移数据对应 的数据索引; 迁移模块, 用于将所述待迁移数据和与所述待迁移数据对 应的数据索 ^ ) 迁移到迁入节点。

在第三方面的第一种可能的实现方式中, 所述迁移模块, 具体用于: 将所述待迁移数据迁移到所述迁入节点;

将所述待迁移数据对应的数据索引迁移到迁入 节点。

根据第三方面的第一种可能的实现方式, 在第三方面的第二种可能的实 现方式中, 所述迁移模块, 还用于: 在将所述待迁移数据对应的数据索引迁 移到迁入节点之前, 确定所述待迁移数据发生更新;

所述迁移模块, 还用于将更新的数据同步到所述迁入节点;

所述迁出节点, 还包括:

更新模块, 用于更新与更新后的待迁移数据对应的数据索 引;

所述迁移模块, 还用于:

将与更新后的待迁移数据对应的更新后的数据 索引迁移到迁入节点。 根据第三方面的第二种可能的实现方式, 在第三方面的第三种可能的实 现方式中, 所述更新模块, 还用于:

所述迁出节点在接收到所述迁入节点发送的同 步数据成功接收响应之 后, 更新与更新后的待迁移数据对应的数据索引。

结合第三方面或第三方面的第一种至第三种可 能的实现方式中任意一 种, 在第三方面的第四种可能的实现方式中, 所述确定模块, 具体用于: 根据待迁移区间中的关键字确定待迁移数据;

根据待迁移区间中的关键字从数据索引库中过 滤得到与所述待迁移数据 对应的索引数据。 根据第三方面的第四种可能的实现方式, 在第三方面的第五种可能的实 现方式中, 所述迁出节点, 还包括: 发送模块;

所述确定模块, 还用于在根据待迁移区间中的关键字从数据索 引库中过 滤得到与所述待迁移数据对应的索引数据之前 , 确定所述数据索引库是否处 于维护状态;

若是, 则所述发送模块向所述迁入节点发送第一指示 信息, 所述第一指 示信息用于指示所述迁入节点在所述待迁移数 据迁移完成之后自行创建与所 述待迁移数据对应的索引数据;

若否, 则所述发送模块向所述迁入节点发送第二指示 信息, 所述第二指 示信息用于指示所述迁入节点等待接收与所述 待迁移数据对应的索引数据。

本发明第四方面, 提供一种迁入节点, 包括:

接收模块, 用于接收迁出节点发送的待迁移数据和与所述 待迁移数据对 应的数据索引;

更新模块, 用于根据待迁移数据和与所述待迁移数据对应 的数据索引更 新本地数据和与所述本地数据对应的数据索引 。

在第四方面的第一种可能的实现方式中, 所述接收模块, 具体用于: 接收所述迁出节点发送的所述待迁移数据;

接收所述迁出节点发送的所述待迁移数据对应 的数据索引。

根据第四方面的第一种可能的实现方式, 在第四方面的第二种可能的实 现方式中, 所述接收模块, 还用于在接收所述迁出节点发送的所述待迁移 数 据对应的数据索引之前, 接收所述迁出节点发送的更新的数据;

所述接收模块还用于:

接收所述迁出节点发送的与更新后的待迁移数 据对应的更新后的数据索 引。

根据第四方面的第二种可能的实现方式, 在第四方面的第三种可能的实 现方式中, 所述迁入节点, 还包括: 发送模块, 用于在接收所述迁出节点发 送的与更新后的待迁移数据对应的更新后的数 据索引之前, 向所述迁出节点 发送同步数据成功接收响应, 以使所述迁出节点更新与更新后的待迁移数据 对应的数据索引。

结合第四方面或第四方面的第一种至第三种可 能的实现方式中任意一 种, 在第四方面的第四种可能的实现方式中, 所述迁入节点, 还包括: 处理 模块,用于在接收所述迁出节点发送的所述待 迁移数据对应的数据索引之前, 若接收到所述迁出节点发送的第一指示信息, 则在所述待迁移数据接收完成 之后自行创建与所述待迁移数据对应的索引数 据; 若接收到所述迁出节点发 送的第二指示信息, 则等待接收与所述待迁移数据对应的索引数据 。

本发明第五方面, 提供一种系统, 包括: 第三方面或第三方面中任意一 种可能的实现方式中的迁出节点和第四方面或 第四方面中任意一种可能的实 现方式中的迁入节点。

本发明实施例提供一种数据迁移处理方法、 装置及系统, 通过迁出节点 确定待迁移数据和与待迁移数据对应的数据索 引, 迁出节点再将待迁移数据 和与待迁移数据对应的数据索引迁移到迁入节 点, 可以实现减少迁入节点在 数据迁移过程中的磁盘 I /O操作, 提高分布式存储系统中数据迁移的效率, 进而提高分布式存储系统的性能。 附图说明 为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一 简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。

图 1为本发明提供的数据迁移处理方法实施例一 流程图;

图 2A 为本发明提供的数据迁移处理方法实施例一中 确定待迁移数据和 与待迁移数据对应的数据索引的流程示意图;

图 2B为本发明提供的数据迁移处理方法实施例一 原理示意图; 图 3为本发明提供的数据迁移处理方法实施例二 流程图; 图 4为本发明提供的数据迁移处理方法实施例三 流程图;

图 7为本发明提供的迁出节点实施例一的结构示 图;

图 8为本发明提供的迁出节点实施例二的结构示 图;

图 9为本发明提供的迁出节点实施例三的结构示 图;

图 1 0为本发明提供的迁入节点实施例一的结构示 图;

图 1 1为本发明提供的迁入节点实施例二的结构示 图;

图 1 2为本发明提供的迁入节点实施例三的结构示 图;

图 1 3为本发明提供的系统实施例一的结构示意图 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前 提下所获 得的所有其他实施例, 都属于本发明保护的范围。

图 1为本发明提供的数据迁移处理方法实施例一 流程图,如图 1所示, 本实施例的数据迁移处理方法包括:

S 1 0 迁出节点确定待迁移数据和与待迁移数据对应 的数据索引。

S 1 02、 迁出节点将待迁移数据和与待迁移数据对应的 数据索引迁移到迁 入节点。

本实施例适用的场景为分布式数据存储系统中 进行数据迁移时附带索引 迁移。

具体来说, 迁出节点为迁出数据的节点, 迁入节点为接收迁出数据的节 点, 本实施例的数据索引可以包括与数据在文件中 位置无关的索引, 例如二 级索引或者全文检索过程中适用的数据索引等 , 存储节点通常通过建立二级 索引来加速范围查找, 范围查找是为了实现一次请求查找一个范围内 所有的 key , 范围查询的查询请求被发送到多个节点,在每 一个节点执行全表扫描查 询, 并对结果进行合并。 如果节点数据量较大, 全表扫描效率非常低, 此时 就需要建立二级索引来加速范围查找, 所谓二级索引就是记录了所有含有一 个特定 va lue的 key的集合, 以下通过表 1、 表 2和表 3来解释二级索引和 原始数据表的关系, 表 1为原始数据表, 表 2为 Age列的二级索引表, 表 3 为 Sex列的二级索引表。

表 1 表 2 表 3

从表 1、 表 2和表 3可以看出, 二级索引表存储的是一系列的 key的列 表( l i s t ) 。

节点接收到查询请求之后, 如果待查询的列建立了二级索引, 可以先查 询对应的二级索引表, 找到符合要求的 key l i s t , 然后根据查找出来的 key 集合, 去数据表中查找数据, 这样就可以大大减少全表扫描的时间。 分布式数据存储系统中的二级索引存储的数据 只是记录了某一个列值存 在于哪些 key中, 不涉及存储在磁盘中的哪个文件以及文件中的 具体的存储 位置。 所以可以利用二级索引的这一特性提高分布式 系统中的数据迁移的性 能。

现有技术中迁出节点首先从磁盘读取数据, 判断该 key是否要被迁移, 如果要被迁移则迁移到迁入节点, 等数据迁移结束之后迁入节点再次从磁盘 读取数据, 给数据建立索引。 可以看出, 现有技术中迁出节点和迁入节点在 数据迁移过程中涉及到两次的磁盘输入 /输出(Input /output , 简称 I /O)操 作, 影响系统整体性能。

可选地, S101可以包括: 迁出节点根据待迁移区间中的关键字确定待迁 移数据;

迁出节点根据待迁移区间中的关键字从数据索 引库中过滤得到与待迁移 数据对应的索引数据。

图 2A为本发明提供的数据迁移处理方法实施例一 确定待迁移数据和 与待迁移数据对应的数据索引的流程示意图, 如图 2A所示, 本实施例中待迁 移数据和与待迁移数据对应的数据索引的方法 , 可以包括:

S101 开始数据迁移。

S1012、 迁出节点从磁盘读出关键字到内存。

S 1013、 迁出节点判断读出的关键字是否为待迁移区间 中的关键字。 S1014、 迁出节点迁移读出的关键字对应的待迁数据。

51015、 迁出节点填充读出的关键字至待迁移的数据索 引。

51016、 迁出节点判断是否遍历迁移节点中的关键字。

S1017、 数据迁移及索引过滤结束。

具体来说, 迁出节点首先会读取 key到内存, 判断该 key是否为待迁移 的 range中的 key , 若是, 则确定该 key对应的数据为待迁移数据, 同时将 该 key填充至待迁移的数据索引中, 待遍历完迁出节点中的所有 key , 即可 生成待迁移段 range对应的数据索引和剩余段 range对应的数据索引。 可以理解的是, 迁出节点中被过滤的原始数据索引在过滤完成 后在逻辑 上处于被删除的状态, 而在物理上仍存储于迁出节点,待系统定期将 其删除。

可选地, S 1 02可以包括:

迁出节点将待迁移数据迁移到迁入节点;

迁出节点将待迁移数据对应的数据索引迁移到 迁入节点。

具体来说, 迁出节点可以在待迁移数据的迁移过程中, 生成待迁移数据 对应的数据索引, 并在将待迁移数据迁移到迁入节点之后, 再将待迁移数据 对应的数据索引迁移到迁入节点, 可以避免待迁移数据未迁移完成而待迁移 数据对应的数据索引开始迁移的情况。

本实施例中迁出节点确定待迁移数据和与待迁 移数据对应的数据索引, 再将待迁移数据和与待迁移数据对应的数据索 引迁移到迁入节点, 省去了数 据迁移结束后迁入节点进行磁盘数据扫描建立 索引的过程, 提高系统整体性

•6匕

fi 。

图 2B为本发明提供的数据迁移处理方法实施例一 原理示意图, 如图 2B所示, 本实施例的数据迁移处理方法, 可以包括:

S20 迁出节点读取磁盘数据到内存, 判断该关键字是否需要被迁移。 本实施例以要迁移的关键字为 4、 5、 6, 而关键字 4、 5、 6又分布在不 同的数据文件中, 此时就需要扫描两个数据文件。

5202、 迁出节点根据该关键字判断是否要将其加入到 待迁移的数据索引 表中。

具体来说,通过 S202可以完成数据索引的过滤,数据索引的过 过程可 以包括: 将确定需要迁移的关键字添加入待迁移的数据 索引表中, 数据索引 过滤完成后得到待迁移段 range对应的数据索引和剩余段 range对应的数据 索引, 而迁出节点中被过滤的原始数据索引在过滤完 成后在逻辑上处于被删 除的状态, 而在物理上仍存储于迁出节点, 待系统定期将其删除。

5203、 迁出节点将待迁移数据迁移到迁入节点。

待迁移数据迁移完成之后, 待迁移的数据索引表也已经生成。 S 204、 迁出节点将待迁移数据对应的数据索引表迁移 到迁入节点。

需要说明的是, S 202和 S 2 03可以是同时发生的。

本实施例提供的数据迁移处理方法,通过迁出 节点读取磁盘数据到内存, 判断该关键字是否需要被迁移, 根据该关键字判断是否要将其加入到待迁移 的数据索引表中, 再将待迁移数据和与待迁移数据对应的数据索 引迁移到迁 入节点, 可以实现减少迁入节点在数据迁移过程中的磁 盘 I / O操作, 提高分 布式存储系统中数据迁移的效率, 进而提高分布式存储系统的性能。

图 3为本发明提供的数据迁移处理方法实施例二 流程图,如图 3所示, 本实施例的数据迁移处理方法, 在图 1所示实施例的基础上, 迁出节点在根 据待迁移区间中的关键字从数据索引库中过滤 得到与待迁移数据对应的索引 数据之前, 确定数据索引库是否处于维护状态, 并对数据迁移过程中存在写 入操作的场景中, 迁出节点所执行的操作进行说明, 包括:

S 30 迁出节点确定待迁移数据。

5302、 迁出节点确定数据索引库是否处于维护状态, 若是, 则执行 S 303 ; 否则, 执行 S 304。

5303、 迁出节点向迁入节点发送第一指示信息, 第一指示信息用于指示 迁入节点在待迁移数据迁移完成之后自行创建 与待迁移数据对应的索引数 据。

5304、 迁出节点向迁入节点发送第二指示信息, 第二指示信息用于指示 迁入节点等待接收与待迁移数据对应的索引数 据。

具体来说, 待迁移数据迁移开始之后, 迁出节点确定数据索引库是否处 于维护状态, 若迁出节点的数据索引库处于维护状态 (即数据索引创建状态 为正在创建或创建失败) , 则迁出节点无法过滤出待迁移的数据索引文件 , 需要发送第一指示信息给迁入节点表示本次不 进行索引迁移, 迁入节点需要 自行建立; 反之, 则通知迁入节点准备接收与待迁移数据对应的 数据索引。

S 305、 迁出节点根据待迁移区间中的关键字从数据索 引库中过滤得到与 待迁移数据对应的索引数据。 5306、 迁出节点将待迁移数据迁移到迁入节点。

5307、 迁出节点确定待迁移数据发生更新。

5308、 迁出节点将更新的数据同步到迁入节点。

5309、 迁出节点更新与更新后的待迁移数据对应的数 据索引。

可选地, S 309可以包括: 迁出节点在接收到迁入节点发送的同步数据成 功接收响应之后, 更新与更新后的待迁移数据对应的数据索引。

具体来说, 本实施例中, 若迁移过程中对于待迁移段 range有写入操作, 则迁出节点确定待迁移数据发生更新, 将更新的数据同步到迁入节点, 再更 新与更新后的待迁移数据对应的数据索引; 若迁移过程中对于剩余段 range 有写入操作, 则不需要执行上述将更新的数据同步到迁入节 点的操作。

S 31 0、 迁出节点将与更新后的待迁移数据对应的更新 后的数据索引迁移 到迁入节点。

本实施例提供的数据迁移处理方法, 通过迁出节点在根据待迁移区间中 的关键字从数据索引库中过滤得到与待迁移数 据对应的索引数据之前, 确定 数据索引库是否处于维护状态, 若否, 则向迁入节点发送第二指示信息, 第 二指示信息用于指示迁入节点等待接收与待迁 移数据对应的索引数据, 将待 迁移数据迁移到迁入节点, 再确定待迁移数据发生更新, 将更新的数据同步 到迁入节点, 并更新与更新后的待迁移数据对应的数据索引 , 再将与更新后 的待迁移数据对应的更新后的数据索引迁移到 迁入节点, 可以实现减少迁入 节点在数据迁移过程中的磁盘 I /O操作, 提高分布式存储系统中数据迁移的 效率, 进而提高分布式存储系统的性能。

图 4为本发明提供的数据迁移处理方法实施例三 流程图,如图 4所示, 本实施例的数据迁移处理方法, 包括:

5401、 迁入节点接收迁出节点发送的待迁移数据和与 待迁移数据对应的 数据索引。

5402、 迁入节点根据待迁移数据和与待迁移数据对应 的数据索引更新本 地数据和与本地数据对应的数据索引。 可选地, S402可以包括:

迁入节点接收迁出节点发送的待迁移数据;

迁入节点接收迁出节点发送的待迁移数据对应 的数据索引。

具体来说, 迁入节点根据待迁移数据和与待迁移数据对应 的数据索引更 新本地数据和与本地数据对应的数据索引,而 不需要再在数据迁移结束之后, 从磁盘读取数据, 给数据建立数据索引。

本实施例提供的数据迁移处理方法, 通过迁入节点接收迁出节点发送的 待迁移数据和与待迁移数据对应的数据索引, 再根据待迁移数据和与待迁移 数据对应的数据索引更新本地数据和与本地数 据对应的数据索引, 可以实现 减少迁入节点在数据迁移过程中的磁盘 I /O操作, 提高分布式存储系统中数 据迁移的效率, 进而提高分布式存储系统的性能。 本实施例的数据迁移处理方法, 在图 4所示实施例的基础上, 对数据迁移过 程中存在写入操作的场景中, 迁入节点所执行的操作进行说明, 包括:

S50 迁入节点接收迁出节点发送的待迁移数据。

S502、 若迁入节点接收到迁出节点发送的第二指示信 息, 则迁入节点等 待接收与待迁移数据对应的索引数据。

可选地, 若迁入节点接收到迁出节点发送的第一指示信 息, 则迁入节点 在待迁移数据接收完成之后自行创建与待迁移 数据对应的索引数据。

S503、 迁入节点接收迁出节点发送的更新的数据。

5504、 迁入节点向迁出节点发送同步数据成功接收响 应, 以使迁出节点 更新与更新后的待迁移数据对应的数据索引。

5505、 迁入节点接收迁出节点发送的与更新后的待迁 移数据对应的更新 后的数据索引。

本实施例提供的数据迁移处理方法, 通过迁入节点接收迁出节点发送的 待迁移数据之后, 接收迁出节点发送的更新的数据, 向迁出节点发送同步数 据成功接收响应,以使迁出节点更新与更新后 的待迁移数据对应的数据索引, 再接收迁出节点发送的与更新后的待迁移数据 对应的更新后的数据索引, 可 以实现减少迁入节点在数据迁移过程中的磁盘 I /O操作, 提高分布式存储系 统中数据迁移的效率, 进而提高分布式存储系统的性能。 本实施例的数据迁移处理方法, 对迁出节点和迁入节点的交互过程进行详细 说明, 包括:

5601、 迁出节点开始迁移待迁移数据。

5602、 迁出节点启动迁出节点与迁入节点之间的数据 同步。

5603、 迁入节点开始接收待迁移数据。

S604、 迁出节点判断数据索引库是否处于维护状态, 若是, 则执行 S 605 , 否则执行 S607。

5605、 迁出节点向迁入节点发送第一指示信息。

5606、 迁入节点接收到第一指示信息后, 等待数据发送完成, 扫描磁盘 生成数据索引。

S607、 迁出节点开始过滤本地存储的数据索引表。

5608、 迁出节点向迁入节点发送第二指示信息。

5609、 迁入节点判断是否接收到第二指示信息, 若是, 执行 S61 0 , 否则, 执行 S 61 1。

具体来说, 若迁出节点的数据索引库处于维护状态, 例如数据索引创建 状态为正在创建或创建失败, 因为无法过滤出待迁移的数据索引文件, 需要 发送第一指示消息给迁入节点表示本次不进行 索引迁移, 迁入节点需要自行 建立; 反之则向迁入节点发送第二指示信息, 通知迁入节点准备接收索引。

561 0、 迁入节点等待接收迁出节点发送的数据索引。

561 1、 迁入节点确定是否迁入节点掉线, 等待备用节点消息。

S61 2、 迁出节点确定待迁移数据存在写入操作。

具体来说, 迁移过程中的写与读的总体原则是迁移结束前 迁出节点服务 而迁入节点不服务。 若迁移过程中对于待迁移段 range有写入操作, 则需要 在数据迁移阶段开启两个节点之间的数据同步 , 如操作针对的是待迁出的关 键字, 这些数据更改需要同步到迁入节点, 保证原始数据在两个节点上的一 致性; 同时, 需要更新过滤出的待迁移的二级索引文件, 增加或者删除关键 字表中的特定关键字, 保证待迁移的数据索引的一致性; 若迁移过程中对于 剩余段 range有写入操作, 则不需要开启两个节点之间的数据同步; 若迁移 过程中有读操作, 读的关键字不管是非迁移的关键字还是待迁移 的关键字, 因为服务节点还是数据迁出节点, 而原始的数据索引仍然存在, 所以此时可 以通过使用二级索引完成读操作。

S61 3、 迁出节点向迁入节点发送更新的数据。

S614、迁出节点判断是否接收到迁入节点发送 同步数据成功接收响应, 若是, 则执行 S61 5 , 否则, 执行 S 61 6。

561 5、 迁出节点更新与更新后的待迁移数据对应的数 据索引。

561 6、 迁出节点为迁入节点暂存更新的数据。

561 7、 迁出节点确定待迁移数据迁移完成。

S61 8、 迁出节点向迁入节点发送与更新后的待迁移数 据对应的更新后的 数据索引。

S61 9、 迁入节点确定数据索引迁移完成。

进一步地, 若数据迁移过程中有新的数据迁移请求, 由于迁移过程中迁 入节点不提供服务, 所以新的迁移请求应该发往迁出节点, 迁出节点确定适 合迁移的数据, 然后完成和上述数据迁移操作类似的过程。

若数据迁移过程中有表的 drop操作或者数据索引的 drop操作, 则对于 迁入节点和迁出节点都不执行 drop操作, 继续数据的迁移和数据索引的处 理, 在数据迁移结束之后可以利用集群的表结构同 步机制来完成 d r 0 p操作。

若数据迁移过程中数据迁出节点发生宕机, 该迁出节点负责的一段数据 集合( range )会被切换到该节点的备用节点上, 该备用节点上具有和之前迁 出节点完全一样的数据信息, 所以随后的数据迁移可以继续完成。 若迁入节 点宕机、暂时离线或网络出现问题, 此时迁移的数据收不到迁入节点的响应, 应该等待, 直到迁入节点重新恢复; 同时因为在数据迁移过程中, 两个节点 之间开启了同步功能, 如果同步的数据(数据操作造成的)也接收不 到响应, 此时应该把新生成的数据暂存, 等待迁入节点上线之后把同步的数据发送过 去

本实施例提供的数据迁移处理方法, 通过迁入节点接收迁出节点发送的 待迁移数据之后, 接收迁出节点发送的更新的数据, 向迁出节点发送同步数 据成功接收响应,以使迁出节点更新与更新后 的待迁移数据对应的数据索引, 再接收迁出节点发送的与更新后的待迁移数据 对应的更新后的数据索引, 可 以实现减少迁入节点在数据迁移过程中的磁盘 I /O操作, 提高分布式存储系 统中数据迁移的效率, 进而提高分布式存储系统的性能。

图 7为本发明提供的迁出节点实施例一的结构示 图, 如图 7所示, 本 实施例的迁出节点, 包括: 确定模块 71和迁移模块 72 , 其中, 确定模块 71 用于确定待迁移数据和与待迁移数据对应的数 据索引;迁移模块 72用于将待 迁移数据和与待迁移数据对应的数据索引迁移 到迁入节点。

可选地, 迁移模块 72具体用于:

将待迁移数据迁移到迁入节点;

将待迁移数据对应的数据索引迁移到迁入节点 。

本实施例的装置, 可以用于执行图 1所示方法实施例的技术方案, 其实 现原理和技术效果类似, 此处不再赘述。

图 8为本发明提供的迁出节点实施例二的结构示 图, 如图 8所示, 本 实施例的迁出节点, 在图 7所示实施例的基础上, 还包括: 更新模块 73和发 送模块 74 , 其中, 迁移模块 72还用于: 在将待迁移数据对应的数据索引迁 移到迁入节点之前, 确定待迁移数据发生更新;

迁移模块 72还用于将更新的数据同步到迁入节点;

更新模块 73用于更新与更新后的待迁移数据对应的数据 引;

迁移模块 72还用于:将与更新后的待迁移数据对应的更 后的数据索引 迁移到迁入节点。 更新模块 7 3还用于:迁出节点在接收到迁入节点发送的 步数据成功接 收响应之后, 更新与更新后的待迁移数据对应的数据索引。

进一步地, 确定模块 7 1具体用于:

根据待迁移区间中的关键字确定待迁移数据;

根据待迁移区间中的关键字从数据索引库中过 滤得到与待迁移数据对应 的索引数据。

更进一步地,确定模块 7 1还用于在根据待迁移区间中的关键字从数据 引库中过滤得到与待迁移数据对应的索引数据 之前, 确定数据索引库是否处 于维护状态;

若是, 则发送模块 74向迁入节点发送第一指示信息, 第一指示信息用于 指示迁入节点在待迁移数据迁移完成之后自行 创建与待迁移数据对应的索引 数据;

若否, 则发送模块 74向迁入节点发送第二指示信息, 第二指示信息用于 指示迁入节点等待接收与待迁移数据对应的索 引数据。

本实施例的装置, 可以用于执行图 3所示方法实施例或图 6所示方法实 施例中迁出节点所执行的技术方案, 其实现原理和技术效果类似, 此处不再 赘述。

图 9为本发明提供的迁出节点实施例三的结构示 图, 如图 9所示, 本 实施例的迁出节点, 包括: 包括发射器 9 1、 接收器 92、 存储器 9 3以及分别 与发射器 91、接收器 92和存储器 9 3连接的处理器 94。 当然, 迁出节点还可 以包括天线、 基带处理部件、 中射频处理部件、 输入输出装置等通用部件, 本发明实施例在此不再任何限制。

其中, 存储器 9 3中存储一组程序代码, 且处理器 94用于调用存储器 9 3 中存储的程序代码, 用于执行以下操作:

确定待迁移数据和与待迁移数据对应的数据索 引;

将待迁移数据和与待迁移数据对应的数据索引 迁移到迁入节点。

本实施例的装置, 可以用于执行图 3所示方法实施例或图 6所示方法实 施例中迁出节点所执行的技术方案, 其实现原理和技术效果类似, 此处不再 赘述。

图 10为本发明提供的迁入节点实施例一的结构示 图, 如图 10所示, 本实施例的迁入节点, 包括: 接收模块 11和更新模块 12 , 其中, 接收模块 11用于接收迁出节点发送的待迁移数据和与待 移数据对应的数据索引; 更 新模块 12用于根据待迁移数据和与待迁移数据对应的 据索引更新本地数 据和与本地数据对应的数据索引。

可选地, 接收模块 11具体用于:

接收迁出节点发送的待迁移数据;

接收迁出节点发送的待迁移数据对应的数据索 引。

本实施例的装置, 可以用于执行图 4所示方法实施例的技术方案, 其实 现原理和技术效果类似, 此处不再赘述。

图 11为本发明提供的迁入节点实施例二的结构示 图, 如图 11所示, 本实施例的迁入节点, 在图 10所示实施例的基础上, 还包括: 发送模块 13 和处理模块 14 , 其中, 接收模块 11还用于在接收迁出节点发送的待迁移数 据对应的数据索引之前,接收迁出节点发送的 更新的数据; 接收模块 11还用 于: 接收迁出节点发送的与更新后的待迁移数据对 应的更新后的数据索引。

发送模块 1 3用于在接收迁出节点发送的与更新后的待迁 数据对应的 更新后的数据索引之前, 向迁出节点发送同步数据成功接收响应, 以使迁出 节点更新与更新后的待迁移数据对应的数据索 引。

处理模块 14用于在接收迁出节点发送的待迁移数据对应 数据索引之 前, 若接收到迁出节点发送的第一指示信息, 则在待迁移数据接收完成之后 自行创建与待迁移数据对应的索引数据; 若接收到迁出节点发送的第二指示 信息, 则等待接收与待迁移数据对应的索引数据。

本实施例的装置, 可以用于执行图 5所示方法实施例或图 6所示方法实 施例中迁出节点所执行的技术方案, 其实现原理和技术效果类似, 此处不再 赘述。 图 1 2为本发明提供的迁入节点实施例三的结构示 图, 如图 12所示, 本实施例的迁入节点, 包括: 包括发射器 1 21、 接收器 122、 存储器 12 3以及 分别与发射器 121、接收器 122和存储器 1 23连接的处理器 124。 当然, 迁入 节点还可以包括天线、 基带处理部件、 中射频处理部件、 输入输出装置等通 用部件, 本发明实施例在此不再任何限制。

其中, 存储器 12 3中存储一组程序代码, 且处理器 124用于调用存储器 123中存储的程序代码, 用于执行以下操作:

接收迁出节点发送的待迁移数据和与待迁移数 据对应的数据索引; 根据待迁移数据和与待迁移数据对应的数据索 引更新本地数据和与本地 数据对应的数据索引。

本实施例的装置, 可以用于执行图 5所示方法实施例或图 6所示方法实 施例中迁出节点所执行的技术方案, 其实现原理和技术效果类似, 此处不再 赘述。

需要说明的是, 上述各实施例对应的结构示意图仅为一种示意 , 各部分 或模块的连接关系不限于图中示出的形式, 可以以实际应用中的情况为准。

图 1 3为本发明提供的系统实施例一的结构示意图 如图 1 3所示, 本实 施例的系统, 可以包括: 图 7至图 9所示实施例中的任意一种迁出节点 1 00 和图 1 0至图 1 2所示实施例中的任意一种迁入节点 200。

在本发明所提供的几个实施例中, 应该理解到, 所揭露的装置和方法, 可以通过其它的方式实现。例如, 以上所描述的装置实施例仅仅是示意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外 的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个系统, 或 一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信连 接, 可以是电性, 机械或其它的形式。 为单元显示的部件可以是或者也可以不是物理 单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可 以集成在一个处理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个单 元中。 上述集成的单元既可以釆用硬件的形式实现, 也可以釆用硬件加软件 功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元 , 可以存储在一个计算机 可读取存储介质中。 上述软件功能单元存储在一个存储介质中, 包括若干指 令用以使得一台计算机设备(可以是个人计算 机, 服务器, 或者网络设备等) 或处理器( proce s s or )执行本发明各个实施例所述方法的部分步骤 而前述 的存储介质包括: U盘、 移动硬盘、 只读存储器(Read-On ly Memory , ROM ) 、 随机存取存储器 ( Random Acce s s Memory , RAM ) 、 磁碟或者光盘等各种可以 存储程序代码的介质。

本领域技术人员可以清楚地了解到, 为描述的方便和简洁, 仅以上述各 功能模块的划分进行举例说明, 实际应用中, 可以根据需要而将上述功能分 配由不同的功能模块完成, 即将装置的内部结构划分成不同的功能模块, 以 完成以上描述的全部或者部分功能。 上述描述的装置的具体工作过程, 可以 参考前述方法实施例中的对应过程, 在此不再赘述。

最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的 说明, 本领域的普通 技术人员应当理解:其依然可以对前述各实施 例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替 换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例 技术方案的范围。