一种数据处理方法、装置和系统.pdf

上传人:111****11 文档编号:966800 上传时间:2018-03-22 格式:PDF 页数:20 大小:521.13KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010606318.6

申请日:

2010.12.24

公开号:

CN102004797A

公开日:

2011.04.06

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30申请公布日:20110406|||实质审查的生效IPC(主分类):G06F 17/30申请日:20101224|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

深圳市同洲电子股份有限公司

发明人:

宋波

地址:

518057 广东省深圳市南山区高新科技园北区彩虹科技大厦

优先权:

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

逯长明;王宝筠

PDF下载: PDF下载
内容摘要

本发明公开了一种数据处理方法、装置和系统。本发明实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的Key值,然后根据计算出的Key值来确定数据节点,以便进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

权利要求书

1.一种数据处理方法,其特征在于,包括:获取文件名和数据片的编号,其中,数据片由文件数据划分而成;根据所述文件名和编号通过分布式哈希表DHT算法计算出数据片的关键字Key值;根据计算出的Key值确定数据节点;将数据片写入所述数据节点,或从所述数据节点中读取出数据片。2.根据权利要求1所述的方法,其特征在于,所述获取文件名和数据片的编号包括:创建文件,所述文件具有文件名;将需要写入所述文件中的文件数据划分成数据片;对所述数据片进行编号,得到数据片的编号。3.根据权利要求1或2所述的方法,其特征在于,还包括:发送创建文件信息给命名节点,以生成文件元数据,所述文件元数据包括文件标识、文件名和文件大小;接收命名节点返回的文件标识;则所述将数据片写入所述数据节点包括:根据所述文件标识和数据片的编号写入数据片。4.根据权利要求1所述的方法,其特征在于,所述获取文件名和数据片的编号包括:发送打开文件信息给命名节点,所述打开文件信息包括文件名;接收命名节点根据所述打开文件信息返回的文件标识;根据所述文件标识获取数据片的编号。5.根据权利要求4所述的方法,其特征在于,所述从数据节点中读取出数据片包括:根据所述文件标识和数据片的编号从数据节点中读取出数据片。6.一种数据处理方法,其特征在于,包括:接收客户端接口写入的数据片,所述数据片由文件数据划分而成;获取所述数据片的冗余份数;根据所述冗余份数和预置的路由表,通过分布式哈希表DHT算法将所述数据片复制到其他数据节点上。7.根据权利要求6所述的方法,其特征在于,所述根据所述冗余份数,通过DHT算法将所述数据片复制到其他数据节点上包括:根据预置的路由表,通过DHT算法确定本数据节点后X个其他数据节点为冗余数据节点;所述X等于冗余份数与1的差值;将所述数据片分别复制到确定的冗余数据节点中。8.根据权利要求6或7所述的方法,其特征在于,还包括:当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到新路由表。9.根据权利要求8所述的方法,其特征在于,还包括:根据新路由表确定所述新增数据节点的后一个数据节点;通过DHT算法将所述后一个数据节点中的部分非冗余数据转移到新增数据节点中,所述非冗余数据为应保存在本数据节点上的数据片;通过DHT算法将所述后一个数据节点中的全部冗余数据转移到新增数据节点中,所述冗余数据为其他数据节点复制到本数据节点上的数据片。10.根据权利要求8所述的方法,其特征在于,还包括:通过DHT算法删除所述删减数据节点复制到本数据节点上的数据片。11.根据权利要求8所述的方法,其特征在于,还包括:通过冗余份数和新路由表,通过DHT算法重新将所述数据片复制到其他数据节点上。12.一种客户端接口,其特征在于,包括:获取单元,用于获取文件名和数据片的编号,其中,数据片由文件数据划分而成;运算单元,用于根据获取单元获取到的文件名和数据片的编号通过分布式哈希表DHT算法计算出数据片的关键字Key值;确定单元,用于根据运算单元计算出的Key值确定数据节点;处理单元,用于将数据片写入所述数据节点,或从所述数据节点中读取出数据片。13.根据权利要求12所述的客户端接口,其特征在于,所述获取单元包括:创建子单元,用于创建文件,所述文件具有文件名;划分子单元,用于将需要写入创建子单元所创建的文件中的文件数据划分成数据片;编号子单元,用于对划分子单元划分得到的数据片进行编号,得到数据片的编号。14.根据权利要求13所述的客户端接口,其特征在于,还包括发送单元和接收单元;发送单元,用于在创建子单元创建文件时,发送创建文件信息给命名节点,以生成文件元数据,所述文件元数据包括文件标识、文件名和文件大小;接收单元,用于接收命名节点返回的文件标识;则处理单元,具体用于根据接收单元接收到的文件标识和编号子单元得到的数据片的编号写入数据片。15.根据权利要求12所述的客户端接口,其特征在于,所述获取单元包括打开子单元、接收子单元和编号获取子单元;打开子单元,用于发送打开文件信息给命名节点;接收子单元,用于接收命名节点根据所述打开文件信息返回的文件标识;编号获取子单元,用于根据接收子单元接收到的文件标识获取数据片的编号;则所述处理单元,具体用于根据接收子单元接收到的文件标识和编号获取子单元获取到的数据片的编号从数据节点中读取出数据片。16.一种数据节点,其特征在于,包括:写入单元,用于接收客户端接口写入的数据片,所述数据片由文件数据划分而成;获取单元,用于获取写入单元写入的数据片的冗余份数;复制单元,用于根据预置的路由表和获取单元获取到的冗余份数,通过分布式哈希表DHT算法将所述数据片复制到其他数据节点上。17.根据权利要求16所述的数据节点,其特征在于,还包括:路由表更新单元,用于当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到新路由表。18.根据权利要求17所述的数据节点,其特征在于,还包括:确定单元,用于根据路由表更新单元得到的新路由表确定所述新增数据节点的后一个数据节点;第一调整单元,用于通过DHT算法将所述后一个数据节点中的部分非冗余数据转移到新增数据节点中,所述非冗余数据为应保存在本数据节点上的数据片;第二调整单元,用于通过DHT算法将所述后一个数据节点中的全部冗余数据转移到新增数据节点中,所述冗余数据为其他数据节点复制到本数据节点上的数据片。19.根据权利要求17所述的数据节点,其特征在于,还包括:删除单元,用于通过DHT算法删除所述删减数据节点复制到本数据节点上的数据片。20.根据权利要求17所述的数据节点,其特征在于,还包括:冗余更新单元,用于通过冗余份数和新路由表,通过DHT算法重新将所述数据片复制到其他数据节点上。21.一种分片文件系统,其特征在于,包括权利要求12至15中任一种客户端接口和权利要求16至20中任一种数据节点。

说明书

一种数据处理方法、装置和系统

技术领域

本发明涉及通信技术领域,具体涉及一种数据处理方法、装置和系统。

背景技术

分片文件系统采用多份冗余和分布式等技术,将文件按固定大小分布到多台机器的上,从而提高了数据的可靠性。分片文件系统一般由命名节点(NameNode)、数据节点(Datanodes)和客户端接口(Client)三大部分组成,如下:

命名节点:管理分片文件系统的命名空间,它可以将所有文件的元数据存储在一个文件系统树中,并保存所存储文件的相关信息,比如一个文件包括哪些数据块,分布在哪些数据节点上,等等。需说明的是,这些信息并不存储在硬盘上,而是在系统启动的时候从数据节点收集而成的。

数据节点:分片文件系统中存储数据的地方,客户端或者命名节点可以向数据节点请求写入或者读出数据片。该数据节点还用于周期性地向命名节点上报其存储的数据片的相关信息。

客户端接口:客户端可以通过该接口访问分片文件系统。

现有技术在读取和写入文件到该分片文件系统时,都需要访问命名节点,比如,在读取文件时,需要调用命名节点,以获取需要读取的文件的数据片信息,然后才可以根据获取到的数据片信息从相应的数据块中读取到该需要读取的文件;又比如,在写入文件时,需要通知命名节点,由命名节点来分配用于存储该需要写入文件的数据节点,然后才能将该需要写入文件写入分配的数据节点中;等等。此外,分片文件系统还需要将所有的数据信息汇集到命名节点,比如,数据节点需要周期性地将数据片的相关信息上报给命名节点,等等,命名节点在接收到这些数据信息后,将这些数据信息保存在命名节点的内存中。

在对现有技术的研究和实践过程中,本发明的发明人发现,由于命名节点是整个分片文件系统的核心,所以,命名节点的性能直接影响到整个分片文件系统的性能和规模,而由于现有技术中的命名节点的性能十分有限,所以分片文件系统的性能和规模也难以得到提升。

发明内容

本发明实施例提供一种数据处理方法、装置和系统,可以使得分片文件系统的性能和规模不受命名节点性能的限制,有利于提升分片文件系统的性能和规模。

一种数据处理方法,包括:

获取文件名和数据片的编号,其中,数据片由文件数据划分而成;

根据所述文件名和编号通过分布式哈希表(DHT,Distributed Hash Table)算法计算出数据片的关键字(Key)值;

根据计算出的Key值确定数据节点;

将数据片写入所述数据节点,或从所述数据节点中读取出数据片。

一种数据处理方法,包括:

接收客户端接口写入的数据片,所述数据片由文件数据划分而成;

获取所述数据片的冗余份数;

根据所述冗余份数和预置的路由表,通过DHT算法将所述数据片复制到其他数据节点上。

一种客户端接口,包括:

获取单元,用于获取文件名和数据片的编号,其中,数据片由文件数据划分而成;

运算单元,用于根据获取单元获取到的文件名和数据片的编号通过DHT算法计算出数据片的Key值;

确定单元,用于根据运算单元计算出的Key值确定数据节点;

处理单元,用于将数据片写入所述数据节点,或从所述数据节点中读取出数据片。

一种数据节点,包括:

写入单元,用于接收客户端接口写入的数据片,所述数据片由文件数据划分而成;

获取单元,用于获取写入单元写入的数据片的冗余份数;

复制单元,用于根据预置的路由表和获取单元获取到的冗余份数,通过DHT算法将所述数据片复制到其他数据节点上。

一种分片文件系统,包括本发明实施例提高的任一种客户端接口和数据节点。

本发明实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的Key值,然后根据计算出的Key值来确定数据节点,以便进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

图1b本发明实施例中数据片的Key值分布示意图;

图2是本发明实施例二提供的数据处理方法的流程图;

图3是本发明实施例三提供的写入数据的方法流程图;

图4是本发明实施例一提供的读取数据的方法流程图;

图5a是本发明实施例提供的客户端接口的结构示意图;

图5b是本发明实施例提供的客户端接口的另一结构示意图;

图5c是本发明实施例提供的客户端接口的又一结构示意图;

图6是本发明实施例提供的数据节点的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种数据处理方法、装置和系统。以下分别进行详细说明。

实施例一、

本实施例将从客户端接口(Client)的角度进行描述。

一种数据处理方法,包括:获取文件名和数据片的编号,根据获取到的文件名和数据片的编号通过DHT算法计算出数据片的Key值,然后根据计算出的Key值确定数据节点(Datanodes),将数据片写入该数据节点,或从该数据节点中读取出数据片;其中,数据片由文件数据划分而成。

参见图1a,具体流程可以如下:

101、获取文件名和数据片的编号,其中,数据片由文件数据划分而成;

例如,获取方式具体可以如下:

(1)在需要写入数据片时,获取文件名以及数据片的编号的方式具体可以为:

创建文件,其中,该文件具有文件名;将需要写入该文件中的文件数据划分成数据片;对该数据片进行编号,得到数据片的编号。

此外,在创建文件时,还可以发送创建文件信息给命名节点(NameNode),以生成文件元数据,其中,该文件元数据包括文件名和文件大小,为了方便对文件的区分和管理,还可以为每个文件设置一个标识,称为文件标识,该文件标识可以保存在命名节点中,所以,该文件元数据还可以包括文件标识;当然,该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等;命名节点可以返回生成的文件元数据给客户端接口,但是,为了节省信令流程,一般的,命名节点可以只返回文件标识给客户端接口,根据文件标识可以获取到该文件标识所对应的文件的其他文件元数据;也就是说,该数据处理方法还可以包括:

发送创建文件信息给命名节点,以生成文件元数据;接收命名节点返回的文件标识。

(2)在读取数据片时,获取文件的文件名以及数据片的编号的方式具体可以为:

发送打开文件信息给命名节点,该打开文件信息包括文件名;接收命名节点根据该打开文件信息返回的文件标识,根据该文件标识获取数据片的编号。

根据该文件标识还可以获取到该文件标识所对应的文件的其他文件元数。

需说明的是,本发明实施例所说的文件名指的是需要写入的文件或需要读取的文件的名称,文件数据则指的是需要写入文件的数据或需要从文件中读取的数据,即该文件的具体内容。该文件数据不同于文件元数据,文件元数据指的是文件的相关信息,比如文件标识、文件名和文件大小等等,当然,除此之外,文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等。

102、根据步骤101中获取到的文件名和数据片的编号通过DHT算法计算出数据片的Key值;

其中,Key值为[0,2m-1],m为32、64或128等等,m的具体取值可以依赖系统的规模而定。

例如,由于哈希(Hash)函数满足DHT算法的要求,所以具体可以根据步骤101中获取到的文件名和数据片的编号通过Hash函数来计算出数据片的Key值。

103、根据步骤102计算出的Key值确定数据节点;

需说明的是,每个数据节点自身也会生成一个Key值,以此来确定其存储范围,具体存储时,可以设置将所有位于数据节点之间的数据片保存在较小Key的数据节点上,也可以设置将所有位于数据节点之间的数据片保存在较大Key的数据节点上。

以设置将所有位于数据节点之间的数据片保存在较小Key的数据节点上为例,参见图1b,假设数据节点生成的Key值为实心圆点,即点A、点B和点C,数据片生成的为圆圈,即点1、点2、点3和点4。其中,点A为起始点,点C为终点,点A表示数据节点A,点B表示数据节点B,点C表示数据节点C。沿圆环顺时针,逐渐增大。由于点1处于[A,B],因此可以将点1保存在数据节点A上。同理,由于点2位于在[A,B],所以可以将点2保存在数据节点B上,而点3和点4则保存在数据节点C上。根据该算法,可以将所有的数据片能均匀分布在各个数据节点上。

104、将数据片写入步骤103确定的数据节点,或从步骤103确定的数据节点中读取出数据片。

如果在步骤101中接收到命名节点返回的文件标识;则步骤104具体可以为:

根据接收到的文件标识和数据片的编号写入数据片,或者,根据该文件标识和数据片的编号从数据节点中读取出数据片。

由上可知,本实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的Key值,然后根据计算出的Key值来确定数据节点,以便进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

实施例二、

本实施例将从数据节点的角度进行描述。

一种数据处理方法,包括:接收客户端接口写入的数据片;获取该数据片的冗余份数;根据冗余份数和预置的路由表,通过DHT算法将该数据片复制到其他数据节点上,其中,数据片由文件数据划分而成。

参见图2,具体流程可以如下:

201、接收客户端接口写入的数据片,其中,数据片由文件数据划分而成;

202、获取该写入的数据片的冗余份数;

203、根据冗余份数和预置的路由表,通过DHT算法将该写入的数据片复制到其他数据节点上。例如,具体可以如下:

根据预置的路由表,通过DHT算法确定本数据节点后X个其他数据节点为冗余数据节点;将该写入的数据片分别复制到确定的冗余数据节点中。

其中,X等于冗余份数与1的差值,冗余数据节点指的是用于保存冗余数据的数据节点,冗余数据指的是复制得到的数据片,比如,如果根据数据片的Key值确定需要将数据片1保存在数据节点A中,而数据片1的冗余份数为2,那么,可以将数据片1复制一遍,然后将复制的数据片1保存在数据节点A的后一个数据节点B中,则此时,复制的数据片1称为冗余数据,而数据节点B称为数据片1的冗余数据节点。

需说明的是,路由表具体可以保存在数据节点中,该路由表可以由维护人员按照预置策略直接进行设置和维护,也可以由分片文件系统通过获取网络拓扑结构而自行进行设置和维护,具体可参见现有技术中关于设置路由表的相关技术,在此不再赘述。

由上可知,本实施例在写入数据片以及对写入数据片进行冗余复制时,不需要将数据片的具体写入情况上报给命名节点,也不需要由命名节点来分配冗余数据节点,而是由数据节点自身根据冗余份数和预置的路由表,通过DHT算法来确定冗余数据节点,从而减轻了命名节点的负担,有利于提高系统的稳定性;而且,也减少了对命名节点的依赖性,避免了现有技术中分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

实施例三、

在实施例二的基础上,进一步的,为了使得路由表能够实时且真实地反映当前系统状况,避免处理数据时出现错误,当分片文件系统中新增或删减数据节点时,还可以对保存的路由表进行更新和维护,即该数据处理方法还可以包括:

当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到新路由表。

进一步的,当分片文件系统中的数据节点时,还需要对数据节点中的数据进行调整,例如,具体可以如下:

(1)新增数据节点

根据新路由表确定该新增数据节点的后一个数据节点;

通过DHT算法将该后一个数据节点中的部分非冗余数据转移到新增数据节点中,其中,非冗余数据指的是应保存在本数据节点上的数据片,即根据数据片的Key值所确定的数据节点来写入的数据片,比如,如果根据数据片的Key值确定需要将数据片1保存在数据节点A中,则数据片1称为数据节点A中的非冗余数据。

通过DHT算法将该后一个数据节点中的全部冗余数据转移到新增数据节点中,其中,冗余数据为其他数据节点复制到本数据节点上的数据片。

(2)删减数据节点

通过DHT算法将该删减数据节点复制到本数据节点上的数据片删除掉。比如,如果数据节点B将复制的数据片2(即数据片2的冗余数据)保存在数据节点A中,则当数据节点B被删除时,数据节点A也会相应地将该复制的数据片2删除。

根据冗余份数和新路由表,通过DHT算法重新将该数据片复制到其他数据节点上。由于数据节点被删除,导致该被删除数据节点上的数据均丢失,所以可能会导致各数据片的冗余份数发生变化,所以此时需要重新确认下当前数据片的存储位置是否合理,以及冗余份数是否正确。

由上可知,本实施例在数据节点发生变化时,不需要由命名节点来重新对数据节点上的数据进行调整,而是由数据节点自身进行调整,所以减轻了命名节点的负担,有利于提高系统的稳定性;而且,也减少了对命名节点的依赖性,避免了现有技术中分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

实施例四、

根据前面实施例所描述的方法,以下将举例作进一步详细说明。

本发明实施例基于现有技术中分片文件系统的框架,做如下调整:

(1)命名节点

不再接收和保存数据节点上报的数据片信息,比如数据片的分布信息,等等。

不再为数据片分配数据节点。

(2)数据节点

不再需要定期向命名节点汇报数据片信息。

在冗余复制时,需要按照DHT算法来选择冗余数据节点,并将数据片复制到选择的冗余数据节点上。

增加路由表,用于找到其他的数据节点。

(3)客户端接口

不再依赖命名节点来定位数据片的存储位置,而是直接通过DHT算法如采用Hash函数来定位数据片的存储位置。

以下将分别从写入数据和读取数据两方面对该数据处理方法进行详细说明,参见图3和图4,其中,图3为写入数据的方法流程图,图4为读取数据的方法流程图,具体流程分别可以如下:

(一)写入数据

A401、客户端接口创建文件,该文件具有文件名,发送创建文件信息给命名节点。

A402、命名节点在接收到创建文件信息后,生成文件元数据,其中,该文件元数据包括文件标识、文件名和文件大小;当然,该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等。

A403、命名节点发送文件标识给客户端接口,如果客户端接口可以根据该文件标识获取到该文件标识所对应的文件的其他文件元数据,比如文件大小、创建时间等等。

A404、客户端接口将需要写入该文件的文件数据切分成数据片,并对数据片进行编号,得到数据片的编号。

例如,将该文件数据切分为数据片1、数据片2、数据片3和数据片4,其中,数据片1的编号为001,数据片2的编号为002,数据片3的编号为003。

A405、客户端接口根据文件名和数据片的编号通过Hash函数计算出数据片的Key值。

其中,Key值为[0,2m-1],m为32、64或128等等,m的具体取值可以依赖系统的规模而定,具体可参见实施例一。

比如,参见图1b,客户端接口根据文件名和数据片1的编号001通过Hash函数,可以计算出数据片1的Key值为[A,B],数据片2的Key值为[B,C],等等。

A406、客户端接口根据步骤A405中计算得到的Key值确定数据节点。

比如,由于在步骤A405中计算数据片1的Key值为[A,B],所以确定数据片1所对应的数据节点为数据节点A,又比如,由于数据片2的Key值为[B,C],所以,所以确定数据片2所对应的数据节点为数据节点B,等等。

A407、客户端接口根据文件标识和数据片的编号将数据片写入数据节点,并校验客户端接口所写入的数据片,得到数据片的校验值。

例如,将数据片1写入数据节点A,将数据片2写入数据节点B,等等。

当然,在写入完毕后,数据节点也可以返回表示写入成功的响应给客户端接口。

A408、客户端接口通知命名节点数据片已写入成功,并将数据片的校验值发送给命名节点,命名节点保存该校验值。

A409、数据节点获取该写入的数据片的冗余份数X。

A410、数据节点根据冗余份数X和预置的路由表,通过Hash函数将该写入的数据片复制到其他数据节点上,具体为向本数据节点的下“X-1”个数据节点写入该写入的数据片,可选的,写入完毕后,这些数据节点可以返回写入成功的响应给本数据节点。

例如,以数据节点A为例,如果冗余份数为3的话,则数据节点A将数据片1复制到下两个数据节点中,即复制到数据节点B和数据节点C中,其它数据节点同此操作。

需说明的是,客户端接口可以逐一向数据节点写入数据片,也可以同时向数据节点写入多个数据片,如果是逐一向数据节点写入数据片的话,则可以循环执行步骤A405~A410,直至所有数据片写入完毕。

A411、客户端接口将需要写入的数据片全部写入到数据节点后,客户端接口请求命名节点关闭文件,命名节点可以返回关于关闭文件是否成功的响应给客户端,流程结束。

(二)读取数据

B401、客户端接口发送打开文件信息给命名节点,该打开文件信息包括文件名。

B402、命名节点根据该打开文件信息返回文件标识给客户端接口,客户端接口根据文件标识获取数据片的编号。

B403、客户端接口根据文件名和数据片的编号通过Hash函数计算出数据片的Key值。

其中,Key值为[0,2m-1],m为32、64或128等等,m的具体取值可以依赖系统的规模而定,具体可参见实施例一。

比如,参见图1b,客户端接口根据文件名和数据片1的编号001通过Hash函数,可以计算出数据片1的Key值为[A,B],数据片2的Key值为[B,C],等等。

B404、客户端接口根据步骤A403中计算得到的Key值确定数据节点。

比如,由于在步骤A403中计算数据片1的Key值为[A,B],所以确定数据片1所对应的数据节点为数据节点A,又比如,由于数据片2的Key值为[B,C],所以,所以确定数据片2所对应的数据节点为数据节点B,等等。

B405、客户端接口获取数据片的冗余份数X。

B406、客户端接口根据该确定的数据节点和冗余份数X,找到数据片相应的冗余数据节点,根据随机算法,在该确定的数据节点和冗余数据节点中挑选出一个数据节点,以读取数据片。

例如,以数据片1为例,根据步骤B404可以确定,数据片1所对应的数据节点为数据节点A,则如果在步骤B405中获取的冗余份数为2的话,在步骤B406中,客户端接口可以计算出冗余数据节点为数据节点A的下“2-1=1”个数据节点,即数据节点B。于是,客户端接口根据随机算法,在数据节点A和数据节点B中挑选出一个数据节点,假设该挑选出的数据节点为数据节点A的话,则客户端接口向数据节点A读取出数据片1。

B407、该挑选出的数据节点根据文件标识和数据片的编号查找数据片,并从命名节点中获取校验数值,与该查找到的数据片的校验数值进行比对,若一致,则确定该查找到的数据片正确,于是将该查找到的数据片发送给客户端接口;若不一致,则确定该查找到的数据片错误,于是重新根据文件标识和数据片的编号查找数据片,直至找到正确的数据片。

需说明的是,客户端接口可以从数据节点中逐一读取出数据片,也可以同时从数据节点中读取出多个数据片,如果是从数据节点逐一读取出数据片的话,则可以循环执行步骤B403~B407,直至所有数据片读取完毕。

B408、客户端接口读取完需要读取的数据片后,客户端接口请求命名节点关闭文件,命名节点可以返回关于关闭文件是否成功的响应给客户端,流程结束。

进一步的,当分片文件系统中的数据节点时,还需要对数据节点中的数据进行调整,例如,具体可以如下:

当分片文件系统中新增或删减数据节点时,数据节点需要在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,以得到新路由表。以下将对新增数据节点和删减数据节点分别进行说明。

(1)新增数据节点

首先,数据节点在路由表中增加该新增数据节点的路由信息,以得到新的路由表。

其次,数据节点根据新路由表确定该新增数据节点的后一个数据节点,然后,一方面通过DHT算法将该后一个数据节点中的部分非冗余数据转移到新增数据节点中;另一方面通过DHT算法将该后一个数据节点中的全部冗余数据转移到新增数据节点中。

(2)删减数据节点

首先,数据节点在路由表中删除该删减数据节点的路由信息,以得到新的路由表。

其次,如果该删减数据节点上所保存的数据片存在冗余数据的话,需要将存储在其他数据节点上的相应的冗余数据删除。比如,如果数据节点B将复制的数据片2(即数据片2的冗余数据)保存在数据节点A中,则当数据节点B被删除时,数据节点A也会相应地将该复制的数据片2删除。

由于数据节点被删除后,该被删除数据节点上的数据将会全部变成无效,所以可能会导致各数据片的冗余份数发生变化,因此,此时可以根据冗余份数和新路由表,通过DHT算法重新将该数据片复制到其他数据节点上,以保证分片文件系统中的冗余份数与实际的冗余分数能保持一致。

由上可知,本实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的Key值,然后根据计算出的Key值来确定数据节点,以便进行数据的读取或写入,而且,在写入数据片以及对写入数据片进行冗余复制时,也可以通过DHT算法来确定冗余数据节点,而不需要由命名节点来分配冗余数据节点;进一步的,在数据节点发生变化时,也不需要由命名节点来重新对数据节点上的数据进行调整,而是由数据节点自身进行调整,避免了现有技术中由命名节点来分配数据节点、分配冗余数据节点以及调整数据节点等操作,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,采用该方案也可以避免现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

实施例五、

为了更好地实施以上方法,本发明实施例还提供一种客户端接口,如图5a所示,客户端接口包括获取单元501、运算单元502、确定单元503和处理单元504;

获取单元501,用于获取文件名和数据片的编号,其中,数据片由文件数据划分而成;

运算单元502,用于根据获取单元501获取到的文件名和数据片的编号通过DHT算法计算出数据片的Key值;其中,Key值为[0,2m-1],m为32、64或128等等,m的具体取值可以依赖系统的规模而定;

确定单元503,用于根据运算单元502计算出的Key值确定数据节点;

需说明的是,每个数据节点自身也会生成一个Key值,以此来确定其存储范围,具体存储时,可以设置将所有位于数据节点之间的数据片保存在较小Key的数据节点上,也可以设置将所有位于数据节点之间的数据片保存在较大Key的数据节点上;

处理单元504,用于将数据片写入确定单元503所确定的数据节点,或从写入确定单元503所确定的数据节点中读取出数据片。

如图5b所示,在需要写入数据片时,获取单元501可以包括创建子单元A5011、划分子单元A5012和编号子单元A5013;

创建子单元A5011,用于发送创建文件信息给命名节点,以生成文件元数据;

划分子单元A5012,用于将需要写入创建子单元A5011所创建的文件中的文件数据划分成数据片;

编号子单元A5013,用于对划分子单元A5012划分得到的数据片进行编号,得到数据片的编号。

则,运算单元502,用于根据创建子单元A5011得到的文件名和编号子单元A5013得到的数据片的编号通过DHT算法计算出数据片的Key值。

如图5b所示,该客户端接口还可以包括发送单元505和接收单元506;

发送单元505,用于在创建子单元A5011创建文件时,发送创建文件信息给命名节点,以生成文件元数据,其中,文件元数据包括文件标识、文件名和文件大小;当然,该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等;

接收单元506,用于接收命名节点返回的文件标识;

则处理单元504,具体用于根据接收单元506接收到的文件标识和编号子单元A5013得到的数据片的编号写入数据片。

如图5c所示,在读取数据片时,获取单元501可以包括打开子单元B5011、接收子单元B5012和编号获取子单元B5013;

打开子单元B5011,用于发送打开文件信息给命名节点;

接收子单元B5012,用于接收命名节点根据该打开文件信息返回的文件标识;

编号获取子单元B5013,用于根据接收子单元B5012接收到的文件标识获取数据片的编号;

则,运算单元502,用于根据文件名和编号获取子单元B5013得到的数据片的编号通过DHT算法计算出数据片的Key值;

处理单元504,具体用于根据接收子单元B5012接收到的文件标识和编号获取子单元B5013获取到的数据片的编号从数据节点中读取出数据片。

以上各个单元的具体实施可参见前面实施例,在此不再赘述。

由上可知,本实施例的客户端接口的运算单元502可以根据文件名和数据片的编号,通过DHT算法计算出数据片的Key值,然后由确定单元503根据计算出的Key值来确定数据节点,以便处理单元504进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

实施例六、

相应地,本发明实施例还提供一种数据节点,如图6所示,该数据节点包括写入单元601、获取单元602和复制单元603;

写入单元601,用于接收客户端接口写入的数据片,其中,该数据片由文件数据划分而成;

获取单元602,用于获取写入单元601写入的数据片的冗余份数;

复制单元603,用于根据预置的路由表和获取单元602获取到的冗余份数,通过DHT算法将该数据片复制到其他数据节点上。

例如,具体可以根据预置的路由表,通过DHT算法确定本数据节点后X个其他数据节点为冗余数据节点;将该写入的数据片分别复制到确定的冗余数据节点中,其中,X等于冗余份数与1的差值。

路由表具体可以保存在数据节点中,该路由表可以由维护人员按照预置策略直接进行设置和维护,也可以由分片文件系统通过获取网络拓扑结构而自行进行设置和维护,具体可参见现有技术中关于设置路由表的相关技术,在此不再赘述。

该数据节点还可以包括路由表更新单元;

路由表更新单元,用于当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到新路由表。

该数据节点还可以包括确定单元、第一调整单元和第二调整单元;

确定单元,用于根据路由表更新单元得到的新路由表确定该新增数据节点的后一个数据节点;

第一调整单元,用于通过DHT算法将确定单元确定的后一个数据节点中的部分非冗余数据转移到新增数据节点中,其中,非冗余数据为应保存在本数据节点上的数据片;

第二调整单元,用于通过DHT算法将确定单元确定的后一个数据节点中的全部冗余数据转移到新增数据节点中,其中,冗余数据为其他数据节点复制到本数据节点上的数据片。

该数据节点还可以包括删除单元;

删除单元,用于通过DHT算法删除该删减数据节点复制到本数据节点上的数据片。

由于数据节点被删除后,该被删除数据节点上的数据将会全部变成无效,所以可能会导致各数据片的冗余份数发生变化,因此,此时可以根据冗余份数和新路由表,通过DHT算法重新将该数据片复制到其他数据节点上,以保证分片文件系统中的冗余份数与实际的冗余分数能保持一致,即该数据节点还可以包括冗余更新单元;

冗余更新单元,用于通过冗余份数和路由表更新单元得到的新路由表,通过DHT算法重新将数据片复制到其他数据节点上。

以上各个单元的具体实施可参见前面实施例,在此不再赘述。

由上可知,本实施例的数据节点在写入数据片以及对写入数据片进行冗余复制时,不需要将数据片的具体写入情况上报给命名节点,也不需要由命名节点来分配冗余数据节点,而是由数据节点的复制单元603根据冗余份数和预置的路由表,通过DHT算法来确定冗余数据节点,从而减轻了命名节点的负担。另外,在数据节点发生变化时,也不需要由命名节点来重新对数据节点上的数据进行调整,而是由数据节点的第一调整单元、第二调整单元、删除单元或冗余更新单元来相应地进行调整,所以可以进一步减轻了命名节点的负担,有利于提高系统的稳定性;而且,由于采用本方案可以减少对命名节点的依赖性,所以可以避免现有技术中分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。

实施例七、

相应的,本发明实施例还提供一种分片文件系统,该分片文件系统包括本发明实施例提供的任一种客户端接口和数据节点;

客户端接口,用于获取文件名以及数据片的编号,根据获取到的文件名和数据片的编号通过DHT算法计算出数据片的Key值,然后根据计算出的Key值确定数据节点,将数据片写入该数据节点,或从该数据节点中读取出数据片;其中,数据片由文件数据划分而成;Key值为[0,2m-1],m为32、64或128等等,m的具体取值可以依赖系统的规模而定;

数据节点,用于接收客户端接口写入的数据片;获取该数据片的冗余份数;根据冗余份数和预置的路由表,通过DHT算法将该数据片复制到其他数据节点上,其中,数据片由文件数据划分而成。该数据节点,还用于将保存的数据片发送给客户端接口。

其中,在需要写入数据片时,客户端接口,具体用于创建文件,该文件具有文件名,将需要写入该文件中的文件数据划分成数据片;对该数据片进行编号,得到数据片的编号。

进一步的,客户端接口,还用于发送创建文件信息给命名节点以生成文件元数据,其中,该文件元数据包括文件标识、文件名和文件大小;该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等;接收命名节点返回的文件标识;根据数据片的编号和接收到的文件标识写入数据片。

在读取数据片时,客户端接口,具体用于发送打开文件信息给命名节点;接收命名节点根据该打开文件信息返回的文件标识,根据该文件标识获取数据片的编号,根据文件标识和数据片的编号从数据节点中读取出数据片。

该分片文件系统还可以包括命名节点;

在写入数据时,命名节点,用于接收客户端接口发送的创建文件信息,根据创建文件信息生成文件元数据;该命名节点,还用于返回文件标识给客户端接口。

在读取数据时,命名节点,用于接收客户端接口发送的打开文件信息,根据该打开文件信息返回的文件标识给客户端接口。

当分片文件系统中新增或删减数据节点时,数据节点还用于在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,以得到新路由表。

进一步的,当分片文件系统中的数据节点时,数据节点还用于对数据节点中的数据进行调整,具体可参见前面实施例,在此不再赘述。

以上各个设备具体可参见前面实施例,在此不再赘述。

由上可知,本实施例的分片文件系统的客户端接口可以根据文件名和数据片的编号,通过DHT算法计算出数据片的Key值,然后根据计算出的Key值来确定数据节点,以进行数据的读取或写入,而且,在写入数据片以及对写入数据片进行冗余复制时,也可以由数据节点通过DHT算法来确定冗余数据节点,而不需要由命名节点来分配冗余数据节点;进一步的,在数据节点发生变化时,也不需要由命名节点来重新对数据节点上的数据进行调整,而是由数据节点自身来进行调整,避免了现有技术中由命名节点来分配数据节点、分配冗余数据节点以及调整数据节点等操作,所导致的命名节点的负担过重、以及对系统影响较大等问题,有利于简化命名节点的功能,提高系统的稳定性;而且,采用该方案也可以避免现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模的扩展。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

以上对本发明实施例所提供的数据处理方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

一种数据处理方法、装置和系统.pdf_第1页
第1页 / 共20页
一种数据处理方法、装置和系统.pdf_第2页
第2页 / 共20页
一种数据处理方法、装置和系统.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《一种数据处理方法、装置和系统.pdf》由会员分享,可在线阅读,更多相关《一种数据处理方法、装置和系统.pdf(20页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102004797A43申请公布日20110406CN102004797ACN102004797A21申请号201010606318622申请日20101224G06F17/3020060171申请人深圳市同洲电子股份有限公司地址518057广东省深圳市南山区高新科技园北区彩虹科技大厦72发明人宋波74专利代理机构北京集佳知识产权代理有限公司11227代理人逯长明王宝筠54发明名称一种数据处理方法、装置和系统57摘要本发明公开了一种数据处理方法、装置和系统。本发明实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的KEY值,然后根据计算出的KEY值来确定数据节点,。

2、以便进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书12页附图4页CN102004810A1/3页21一种数据处理方法,其特征在于,包括获取文件名和数据片的编号,其中,数据片由文件数据划分而成;根据所述文件名和编号通过分布式哈希表DHT算法计算出数据片的关键字KEY值;根据计算出的KEY值确定。

3、数据节点;将数据片写入所述数据节点,或从所述数据节点中读取出数据片。2根据权利要求1所述的方法,其特征在于,所述获取文件名和数据片的编号包括创建文件,所述文件具有文件名;将需要写入所述文件中的文件数据划分成数据片;对所述数据片进行编号,得到数据片的编号。3根据权利要求1或2所述的方法,其特征在于,还包括发送创建文件信息给命名节点,以生成文件元数据,所述文件元数据包括文件标识、文件名和文件大小;接收命名节点返回的文件标识;则所述将数据片写入所述数据节点包括根据所述文件标识和数据片的编号写入数据片。4根据权利要求1所述的方法,其特征在于,所述获取文件名和数据片的编号包括发送打开文件信息给命名节点,。

4、所述打开文件信息包括文件名;接收命名节点根据所述打开文件信息返回的文件标识;根据所述文件标识获取数据片的编号。5根据权利要求4所述的方法,其特征在于,所述从数据节点中读取出数据片包括根据所述文件标识和数据片的编号从数据节点中读取出数据片。6一种数据处理方法,其特征在于,包括接收客户端接口写入的数据片,所述数据片由文件数据划分而成;获取所述数据片的冗余份数;根据所述冗余份数和预置的路由表,通过分布式哈希表DHT算法将所述数据片复制到其他数据节点上。7根据权利要求6所述的方法,其特征在于,所述根据所述冗余份数,通过DHT算法将所述数据片复制到其他数据节点上包括根据预置的路由表,通过DHT算法确定本。

5、数据节点后X个其他数据节点为冗余数据节点;所述X等于冗余份数与1的差值;将所述数据片分别复制到确定的冗余数据节点中。8根据权利要求6或7所述的方法,其特征在于,还包括当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到新路由表。9根据权利要求8所述的方法,其特征在于,还包括根据新路由表确定所述新增数据节点的后一个数据节点;通过DHT算法将所述后一个数据节点中的部分非冗余数据转移到新增数据节点中,所述非冗余数据为应保存在本数据节点上的数据片;通过DHT算法将所述后一个数据节点中的全部冗余数据转移到新增数据节点中,所述权利要求书CN102。

6、004797ACN102004810A2/3页3冗余数据为其他数据节点复制到本数据节点上的数据片。10根据权利要求8所述的方法,其特征在于,还包括通过DHT算法删除所述删减数据节点复制到本数据节点上的数据片。11根据权利要求8所述的方法,其特征在于,还包括通过冗余份数和新路由表,通过DHT算法重新将所述数据片复制到其他数据节点上。12一种客户端接口,其特征在于,包括获取单元,用于获取文件名和数据片的编号,其中,数据片由文件数据划分而成;运算单元,用于根据获取单元获取到的文件名和数据片的编号通过分布式哈希表DHT算法计算出数据片的关键字KEY值;确定单元,用于根据运算单元计算出的KEY值确定数据。

7、节点;处理单元,用于将数据片写入所述数据节点,或从所述数据节点中读取出数据片。13根据权利要求12所述的客户端接口,其特征在于,所述获取单元包括创建子单元,用于创建文件,所述文件具有文件名;划分子单元,用于将需要写入创建子单元所创建的文件中的文件数据划分成数据片;编号子单元,用于对划分子单元划分得到的数据片进行编号,得到数据片的编号。14根据权利要求13所述的客户端接口,其特征在于,还包括发送单元和接收单元;发送单元,用于在创建子单元创建文件时,发送创建文件信息给命名节点,以生成文件元数据,所述文件元数据包括文件标识、文件名和文件大小;接收单元,用于接收命名节点返回的文件标识;则处理单元,具体。

8、用于根据接收单元接收到的文件标识和编号子单元得到的数据片的编号写入数据片。15根据权利要求12所述的客户端接口,其特征在于,所述获取单元包括打开子单元、接收子单元和编号获取子单元;打开子单元,用于发送打开文件信息给命名节点;接收子单元,用于接收命名节点根据所述打开文件信息返回的文件标识;编号获取子单元,用于根据接收子单元接收到的文件标识获取数据片的编号;则所述处理单元,具体用于根据接收子单元接收到的文件标识和编号获取子单元获取到的数据片的编号从数据节点中读取出数据片。16一种数据节点,其特征在于,包括写入单元,用于接收客户端接口写入的数据片,所述数据片由文件数据划分而成;获取单元,用于获取写入。

9、单元写入的数据片的冗余份数;复制单元,用于根据预置的路由表和获取单元获取到的冗余份数,通过分布式哈希表DHT算法将所述数据片复制到其他数据节点上。17根据权利要求16所述的数据节点,其特征在于,还包括路由表更新单元,用于当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到新路由表。18根据权利要求17所述的数据节点,其特征在于,还包括确定单元,用于根据路由表更新单元得到的新路由表确定所述新增数据节点的后一个数据节点;权利要求书CN102004797ACN102004810A3/3页4第一调整单元,用于通过DHT算法将所述后一个数据节点。

10、中的部分非冗余数据转移到新增数据节点中,所述非冗余数据为应保存在本数据节点上的数据片;第二调整单元,用于通过DHT算法将所述后一个数据节点中的全部冗余数据转移到新增数据节点中,所述冗余数据为其他数据节点复制到本数据节点上的数据片。19根据权利要求17所述的数据节点,其特征在于,还包括删除单元,用于通过DHT算法删除所述删减数据节点复制到本数据节点上的数据片。20根据权利要求17所述的数据节点,其特征在于,还包括冗余更新单元,用于通过冗余份数和新路由表,通过DHT算法重新将所述数据片复制到其他数据节点上。21一种分片文件系统,其特征在于,包括权利要求12至15中任一种客户端接口和权利要求16至2。

11、0中任一种数据节点。权利要求书CN102004797ACN102004810A1/12页5一种数据处理方法、装置和系统技术领域0001本发明涉及通信技术领域,具体涉及一种数据处理方法、装置和系统。背景技术0002分片文件系统采用多份冗余和分布式等技术,将文件按固定大小分布到多台机器的上,从而提高了数据的可靠性。分片文件系统一般由命名节点NAMENODE、数据节点DATANODES和客户端接口CLIENT三大部分组成,如下0003命名节点管理分片文件系统的命名空间,它可以将所有文件的元数据存储在一个文件系统树中,并保存所存储文件的相关信息,比如一个文件包括哪些数据块,分布在哪些数据节点上,等等。。

12、需说明的是,这些信息并不存储在硬盘上,而是在系统启动的时候从数据节点收集而成的。0004数据节点分片文件系统中存储数据的地方,客户端或者命名节点可以向数据节点请求写入或者读出数据片。该数据节点还用于周期性地向命名节点上报其存储的数据片的相关信息。0005客户端接口客户端可以通过该接口访问分片文件系统。0006现有技术在读取和写入文件到该分片文件系统时,都需要访问命名节点,比如,在读取文件时,需要调用命名节点,以获取需要读取的文件的数据片信息,然后才可以根据获取到的数据片信息从相应的数据块中读取到该需要读取的文件;又比如,在写入文件时,需要通知命名节点,由命名节点来分配用于存储该需要写入文件的数。

13、据节点,然后才能将该需要写入文件写入分配的数据节点中;等等。此外,分片文件系统还需要将所有的数据信息汇集到命名节点,比如,数据节点需要周期性地将数据片的相关信息上报给命名节点,等等,命名节点在接收到这些数据信息后,将这些数据信息保存在命名节点的内存中。0007在对现有技术的研究和实践过程中,本发明的发明人发现,由于命名节点是整个分片文件系统的核心,所以,命名节点的性能直接影响到整个分片文件系统的性能和规模,而由于现有技术中的命名节点的性能十分有限,所以分片文件系统的性能和规模也难以得到提升。发明内容0008本发明实施例提供一种数据处理方法、装置和系统,可以使得分片文件系统的性能和规模不受命名节。

14、点性能的限制,有利于提升分片文件系统的性能和规模。0009一种数据处理方法,包括0010获取文件名和数据片的编号,其中,数据片由文件数据划分而成;0011根据所述文件名和编号通过分布式哈希表DHT,DISTRIBUTEDHASHTABLE算法计算出数据片的关键字KEY值;0012根据计算出的KEY值确定数据节点;0013将数据片写入所述数据节点,或从所述数据节点中读取出数据片。说明书CN102004797ACN102004810A2/12页60014一种数据处理方法,包括0015接收客户端接口写入的数据片,所述数据片由文件数据划分而成;0016获取所述数据片的冗余份数;0017根据所述冗余份数。

15、和预置的路由表,通过DHT算法将所述数据片复制到其他数据节点上。0018一种客户端接口,包括0019获取单元,用于获取文件名和数据片的编号,其中,数据片由文件数据划分而成;0020运算单元,用于根据获取单元获取到的文件名和数据片的编号通过DHT算法计算出数据片的KEY值;0021确定单元,用于根据运算单元计算出的KEY值确定数据节点;0022处理单元,用于将数据片写入所述数据节点,或从所述数据节点中读取出数据片。0023一种数据节点,包括0024写入单元,用于接收客户端接口写入的数据片,所述数据片由文件数据划分而成;0025获取单元,用于获取写入单元写入的数据片的冗余份数;0026复制单元,用。

16、于根据预置的路由表和获取单元获取到的冗余份数,通过DHT算法将所述数据片复制到其他数据节点上。0027一种分片文件系统,包括本发明实施例提高的任一种客户端接口和数据节点。0028本发明实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的KEY值,然后根据计算出的KEY值来确定数据节点,以便进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。附图说明0029为了更清楚。

17、地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0030图1A是本发明实施例一提供的数据处理方法的流程图;0031图1B本发明实施例中数据片的KEY值分布示意图;0032图2是本发明实施例二提供的数据处理方法的流程图;0033图3是本发明实施例三提供的写入数据的方法流程图;0034图4是本发明实施例一提供的读取数据的方法流程图;0035图5A是本发明实施例提供的客户端接口的结构示意图;0036图5B。

18、是本发明实施例提供的客户端接口的另一结构示意图;0037图5C是本发明实施例提供的客户端接口的又一结构示意图;0038图6是本发明实施例提供的数据节点的结构示意图。说明书CN102004797ACN102004810A3/12页7具体实施方式0039下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0040本发明实施例提供一种数据处理方法、装置和系统。以下分别进行详细说明。0041实施例。

19、一、0042本实施例将从客户端接口CLIENT的角度进行描述。0043一种数据处理方法,包括获取文件名和数据片的编号,根据获取到的文件名和数据片的编号通过DHT算法计算出数据片的KEY值,然后根据计算出的KEY值确定数据节点DATANODES,将数据片写入该数据节点,或从该数据节点中读取出数据片;其中,数据片由文件数据划分而成。0044参见图1A,具体流程可以如下0045101、获取文件名和数据片的编号,其中,数据片由文件数据划分而成;0046例如,获取方式具体可以如下00471在需要写入数据片时,获取文件名以及数据片的编号的方式具体可以为0048创建文件,其中,该文件具有文件名;将需要写入该。

20、文件中的文件数据划分成数据片;对该数据片进行编号,得到数据片的编号。0049此外,在创建文件时,还可以发送创建文件信息给命名节点NAMENODE,以生成文件元数据,其中,该文件元数据包括文件名和文件大小,为了方便对文件的区分和管理,还可以为每个文件设置一个标识,称为文件标识,该文件标识可以保存在命名节点中,所以,该文件元数据还可以包括文件标识;当然,该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等;命名节点可以返回生成的文件元数据给客户端接口,但是,为了节省信令流程,一般的,命名节点可以只返回文件标识给客户端接口,根据文件标识可以获取到该文件标识所对应的文件。

21、的其他文件元数据;也就是说,该数据处理方法还可以包括0050发送创建文件信息给命名节点,以生成文件元数据;接收命名节点返回的文件标识。00512在读取数据片时,获取文件的文件名以及数据片的编号的方式具体可以为0052发送打开文件信息给命名节点,该打开文件信息包括文件名;接收命名节点根据该打开文件信息返回的文件标识,根据该文件标识获取数据片的编号。0053根据该文件标识还可以获取到该文件标识所对应的文件的其他文件元数。0054需说明的是,本发明实施例所说的文件名指的是需要写入的文件或需要读取的文件的名称,文件数据则指的是需要写入文件的数据或需要从文件中读取的数据,即该文件的具体内容。该文件数据不。

22、同于文件元数据,文件元数据指的是文件的相关信息,比如文件标识、文件名和文件大小等等,当然,除此之外,文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等。0055102、根据步骤101中获取到的文件名和数据片的编号通过DHT算法计算出数据片说明书CN102004797ACN102004810A4/12页8的KEY值;0056其中,KEY值为0,2M1,M为32、64或128等等,M的具体取值可以依赖系统的规模而定。0057例如,由于哈希HASH函数满足DHT算法的要求,所以具体可以根据步骤101中获取到的文件名和数据片的编号通过HASH函数来计算出数据片的KEY值。

23、。0058103、根据步骤102计算出的KEY值确定数据节点;0059需说明的是,每个数据节点自身也会生成一个KEY值,以此来确定其存储范围,具体存储时,可以设置将所有位于数据节点之间的数据片保存在较小KEY的数据节点上,也可以设置将所有位于数据节点之间的数据片保存在较大KEY的数据节点上。0060以设置将所有位于数据节点之间的数据片保存在较小KEY的数据节点上为例,参见图1B,假设数据节点生成的KEY值为实心圆点,即点A、点B和点C,数据片生成的为圆圈,即点1、点2、点3和点4。其中,点A为起始点,点C为终点,点A表示数据节点A,点B表示数据节点B,点C表示数据节点C。沿圆环顺时针,逐渐增大。

24、。由于点1处于A,B,因此可以将点1保存在数据节点A上。同理,由于点2位于在A,B,所以可以将点2保存在数据节点B上,而点3和点4则保存在数据节点C上。根据该算法,可以将所有的数据片能均匀分布在各个数据节点上。0061104、将数据片写入步骤103确定的数据节点,或从步骤103确定的数据节点中读取出数据片。0062如果在步骤101中接收到命名节点返回的文件标识;则步骤104具体可以为0063根据接收到的文件标识和数据片的编号写入数据片,或者,根据该文件标识和数据片的编号从数据节点中读取出数据片。0064由上可知,本实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的KEY值,然后根。

25、据计算出的KEY值来确定数据节点,以便进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。0065实施例二、0066本实施例将从数据节点的角度进行描述。0067一种数据处理方法,包括接收客户端接口写入的数据片;获取该数据片的冗余份数;根据冗余份数和预置的路由表,通过DHT算法将该数据片复制到其他数据节点上,其中,数据片由文件数据划分而成。0068参见图2,具体流程可以如下006。

26、9201、接收客户端接口写入的数据片,其中,数据片由文件数据划分而成;0070202、获取该写入的数据片的冗余份数;0071203、根据冗余份数和预置的路由表,通过DHT算法将该写入的数据片复制到其他数据节点上。例如,具体可以如下0072根据预置的路由表,通过DHT算法确定本数据节点后X个其他数据节点为冗余数据节点;将该写入的数据片分别复制到确定的冗余数据节点中。说明书CN102004797ACN102004810A5/12页90073其中,X等于冗余份数与1的差值,冗余数据节点指的是用于保存冗余数据的数据节点,冗余数据指的是复制得到的数据片,比如,如果根据数据片的KEY值确定需要将数据片1保。

27、存在数据节点A中,而数据片1的冗余份数为2,那么,可以将数据片1复制一遍,然后将复制的数据片1保存在数据节点A的后一个数据节点B中,则此时,复制的数据片1称为冗余数据,而数据节点B称为数据片1的冗余数据节点。0074需说明的是,路由表具体可以保存在数据节点中,该路由表可以由维护人员按照预置策略直接进行设置和维护,也可以由分片文件系统通过获取网络拓扑结构而自行进行设置和维护,具体可参见现有技术中关于设置路由表的相关技术,在此不再赘述。0075由上可知,本实施例在写入数据片以及对写入数据片进行冗余复制时,不需要将数据片的具体写入情况上报给命名节点,也不需要由命名节点来分配冗余数据节点,而是由数据节。

28、点自身根据冗余份数和预置的路由表,通过DHT算法来确定冗余数据节点,从而减轻了命名节点的负担,有利于提高系统的稳定性;而且,也减少了对命名节点的依赖性,避免了现有技术中分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。0076实施例三、0077在实施例二的基础上,进一步的,为了使得路由表能够实时且真实地反映当前系统状况,避免处理数据时出现错误,当分片文件系统中新增或删减数据节点时,还可以对保存的路由表进行更新和维护,即该数据处理方法还可以包括0078当分片文件系统中新增或删减数据节点时,在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,得到。

29、新路由表。0079进一步的,当分片文件系统中的数据节点时,还需要对数据节点中的数据进行调整,例如,具体可以如下00801新增数据节点0081根据新路由表确定该新增数据节点的后一个数据节点;0082通过DHT算法将该后一个数据节点中的部分非冗余数据转移到新增数据节点中,其中,非冗余数据指的是应保存在本数据节点上的数据片,即根据数据片的KEY值所确定的数据节点来写入的数据片,比如,如果根据数据片的KEY值确定需要将数据片1保存在数据节点A中,则数据片1称为数据节点A中的非冗余数据。0083通过DHT算法将该后一个数据节点中的全部冗余数据转移到新增数据节点中,其中,冗余数据为其他数据节点复制到本数据。

30、节点上的数据片。00842删减数据节点0085通过DHT算法将该删减数据节点复制到本数据节点上的数据片删除掉。比如,如果数据节点B将复制的数据片2即数据片2的冗余数据保存在数据节点A中,则当数据节点B被删除时,数据节点A也会相应地将该复制的数据片2删除。0086根据冗余份数和新路由表,通过DHT算法重新将该数据片复制到其他数据节点上。由于数据节点被删除,导致该被删除数据节点上的数据均丢失,所以可能会导致各数据片的冗余份数发生变化,所以此时需要重新确认下当前数据片的存储位置是否合理,以及冗余份数是否正确。0087由上可知,本实施例在数据节点发生变化时,不需要由命名节点来重新对数据节说明书CN10。

31、2004797ACN102004810A6/12页10点上的数据进行调整,而是由数据节点自身进行调整,所以减轻了命名节点的负担,有利于提高系统的稳定性;而且,也减少了对命名节点的依赖性,避免了现有技术中分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。0088实施例四、0089根据前面实施例所描述的方法,以下将举例作进一步详细说明。0090本发明实施例基于现有技术中分片文件系统的框架,做如下调整00911命名节点0092不再接收和保存数据节点上报的数据片信息,比如数据片的分布信息,等等。0093不再为数据片分配数据节点。00942数据节点0095不再需要定期向。

32、命名节点汇报数据片信息。0096在冗余复制时,需要按照DHT算法来选择冗余数据节点,并将数据片复制到选择的冗余数据节点上。0097增加路由表,用于找到其他的数据节点。00983客户端接口0099不再依赖命名节点来定位数据片的存储位置,而是直接通过DHT算法如采用HASH函数来定位数据片的存储位置。0100以下将分别从写入数据和读取数据两方面对该数据处理方法进行详细说明,参见图3和图4,其中,图3为写入数据的方法流程图,图4为读取数据的方法流程图,具体流程分别可以如下0101一写入数据0102A401、客户端接口创建文件,该文件具有文件名,发送创建文件信息给命名节点。0103A402、命名节点在。

33、接收到创建文件信息后,生成文件元数据,其中,该文件元数据包括文件标识、文件名和文件大小;当然,该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等。0104A403、命名节点发送文件标识给客户端接口,如果客户端接口可以根据该文件标识获取到该文件标识所对应的文件的其他文件元数据,比如文件大小、创建时间等等。0105A404、客户端接口将需要写入该文件的文件数据切分成数据片,并对数据片进行编号,得到数据片的编号。0106例如,将该文件数据切分为数据片1、数据片2、数据片3和数据片4,其中,数据片1的编号为001,数据片2的编号为002,数据片3的编号为003。010。

34、7A405、客户端接口根据文件名和数据片的编号通过HASH函数计算出数据片的KEY值。0108其中,KEY值为0,2M1,M为32、64或128等等,M的具体取值可以依赖系统的规模而定,具体可参见实施例一。0109比如,参见图1B,客户端接口根据文件名和数据片1的编号001通过HASH函数,可以计算出数据片1的KEY值为A,B,数据片2的KEY值为B,C,等等。0110A406、客户端接口根据步骤A405中计算得到的KEY值确定数据节点。0111比如,由于在步骤A405中计算数据片1的KEY值为A,B,所以确定数据片1所说明书CN102004797ACN102004810A7/12页11对应的。

35、数据节点为数据节点A,又比如,由于数据片2的KEY值为B,C,所以,所以确定数据片2所对应的数据节点为数据节点B,等等。0112A407、客户端接口根据文件标识和数据片的编号将数据片写入数据节点,并校验客户端接口所写入的数据片,得到数据片的校验值。0113例如,将数据片1写入数据节点A,将数据片2写入数据节点B,等等。0114当然,在写入完毕后,数据节点也可以返回表示写入成功的响应给客户端接口。0115A408、客户端接口通知命名节点数据片已写入成功,并将数据片的校验值发送给命名节点,命名节点保存该校验值。0116A409、数据节点获取该写入的数据片的冗余份数X。0117A410、数据节点根据。

36、冗余份数X和预置的路由表,通过HASH函数将该写入的数据片复制到其他数据节点上,具体为向本数据节点的下“X1”个数据节点写入该写入的数据片,可选的,写入完毕后,这些数据节点可以返回写入成功的响应给本数据节点。0118例如,以数据节点A为例,如果冗余份数为3的话,则数据节点A将数据片1复制到下两个数据节点中,即复制到数据节点B和数据节点C中,其它数据节点同此操作。0119需说明的是,客户端接口可以逐一向数据节点写入数据片,也可以同时向数据节点写入多个数据片,如果是逐一向数据节点写入数据片的话,则可以循环执行步骤A405A410,直至所有数据片写入完毕。0120A411、客户端接口将需要写入的数据。

37、片全部写入到数据节点后,客户端接口请求命名节点关闭文件,命名节点可以返回关于关闭文件是否成功的响应给客户端,流程结束。0121二读取数据0122B401、客户端接口发送打开文件信息给命名节点,该打开文件信息包括文件名。0123B402、命名节点根据该打开文件信息返回文件标识给客户端接口,客户端接口根据文件标识获取数据片的编号。0124B403、客户端接口根据文件名和数据片的编号通过HASH函数计算出数据片的KEY值。0125其中,KEY值为0,2M1,M为32、64或128等等,M的具体取值可以依赖系统的规模而定,具体可参见实施例一。0126比如,参见图1B,客户端接口根据文件名和数据片1的编。

38、号001通过HASH函数,可以计算出数据片1的KEY值为A,B,数据片2的KEY值为B,C,等等。0127B404、客户端接口根据步骤A403中计算得到的KEY值确定数据节点。0128比如,由于在步骤A403中计算数据片1的KEY值为A,B,所以确定数据片1所对应的数据节点为数据节点A,又比如,由于数据片2的KEY值为B,C,所以,所以确定数据片2所对应的数据节点为数据节点B,等等。0129B405、客户端接口获取数据片的冗余份数X。0130B406、客户端接口根据该确定的数据节点和冗余份数X,找到数据片相应的冗余数据节点,根据随机算法,在该确定的数据节点和冗余数据节点中挑选出一个数据节点,以。

39、读取数据片。0131例如,以数据片1为例,根据步骤B404可以确定,数据片1所对应的数据节点为数据节点A,则如果在步骤B405中获取的冗余份数为2的话,在步骤B406中,客户端接口可以说明书CN102004797ACN102004810A8/12页12计算出冗余数据节点为数据节点A的下“211”个数据节点,即数据节点B。于是,客户端接口根据随机算法,在数据节点A和数据节点B中挑选出一个数据节点,假设该挑选出的数据节点为数据节点A的话,则客户端接口向数据节点A读取出数据片1。0132B407、该挑选出的数据节点根据文件标识和数据片的编号查找数据片,并从命名节点中获取校验数值,与该查找到的数据片的。

40、校验数值进行比对,若一致,则确定该查找到的数据片正确,于是将该查找到的数据片发送给客户端接口;若不一致,则确定该查找到的数据片错误,于是重新根据文件标识和数据片的编号查找数据片,直至找到正确的数据片。0133需说明的是,客户端接口可以从数据节点中逐一读取出数据片,也可以同时从数据节点中读取出多个数据片,如果是从数据节点逐一读取出数据片的话,则可以循环执行步骤B403B407,直至所有数据片读取完毕。0134B408、客户端接口读取完需要读取的数据片后,客户端接口请求命名节点关闭文件,命名节点可以返回关于关闭文件是否成功的响应给客户端,流程结束。0135进一步的,当分片文件系统中的数据节点时,还。

41、需要对数据节点中的数据进行调整,例如,具体可以如下0136当分片文件系统中新增或删减数据节点时,数据节点需要在路由表中增加该新增数据节点的路由信息或删除该删减数据节点的路由信息,以得到新路由表。以下将对新增数据节点和删减数据节点分别进行说明。01371新增数据节点0138首先,数据节点在路由表中增加该新增数据节点的路由信息,以得到新的路由表。0139其次,数据节点根据新路由表确定该新增数据节点的后一个数据节点,然后,一方面通过DHT算法将该后一个数据节点中的部分非冗余数据转移到新增数据节点中;另一方面通过DHT算法将该后一个数据节点中的全部冗余数据转移到新增数据节点中。01402删减数据节点0。

42、141首先,数据节点在路由表中删除该删减数据节点的路由信息,以得到新的路由表。0142其次,如果该删减数据节点上所保存的数据片存在冗余数据的话,需要将存储在其他数据节点上的相应的冗余数据删除。比如,如果数据节点B将复制的数据片2即数据片2的冗余数据保存在数据节点A中,则当数据节点B被删除时,数据节点A也会相应地将该复制的数据片2删除。0143由于数据节点被删除后,该被删除数据节点上的数据将会全部变成无效,所以可能会导致各数据片的冗余份数发生变化,因此,此时可以根据冗余份数和新路由表,通过DHT算法重新将该数据片复制到其他数据节点上,以保证分片文件系统中的冗余份数与实际的冗余分数能保持一致。01。

43、44由上可知,本实施例采用根据文件名和数据片的编号,通过DHT算法计算出数据片的KEY值,然后根据计算出的KEY值来确定数据节点,以便进行数据的读取或写入,而且,在写入数据片以及对写入数据片进行冗余复制时,也可以通过DHT算法来确定冗余数据节点,而不需要由命名节点来分配冗余数据节点;进一步的,在数据节点发生变化时,也不需要由命名节点来重新对数据节点上的数据进行调整,而是由数据节点自身进行调整,避免了现有技术中由命名节点来分配数据节点、分配冗余数据节点以及调整数据节点等操作,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,采用该方案也可以说明书CN102004797ACN1020。

44、04810A9/12页13避免现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。0145实施例五、0146为了更好地实施以上方法,本发明实施例还提供一种客户端接口,如图5A所示,客户端接口包括获取单元501、运算单元502、确定单元503和处理单元504;0147获取单元501,用于获取文件名和数据片的编号,其中,数据片由文件数据划分而成;0148运算单元502,用于根据获取单元501获取到的文件名和数据片的编号通过DHT算法计算出数据片的KEY值;其中,KEY值为0,2M1,M为32、64或128等等,M的。

45、具体取值可以依赖系统的规模而定;0149确定单元503,用于根据运算单元502计算出的KEY值确定数据节点;0150需说明的是,每个数据节点自身也会生成一个KEY值,以此来确定其存储范围,具体存储时,可以设置将所有位于数据节点之间的数据片保存在较小KEY的数据节点上,也可以设置将所有位于数据节点之间的数据片保存在较大KEY的数据节点上;0151处理单元504,用于将数据片写入确定单元503所确定的数据节点,或从写入确定单元503所确定的数据节点中读取出数据片。0152如图5B所示,在需要写入数据片时,获取单元501可以包括创建子单元A5011、划分子单元A5012和编号子单元A5013;015。

46、3创建子单元A5011,用于发送创建文件信息给命名节点,以生成文件元数据;0154划分子单元A5012,用于将需要写入创建子单元A5011所创建的文件中的文件数据划分成数据片;0155编号子单元A5013,用于对划分子单元A5012划分得到的数据片进行编号,得到数据片的编号。0156则,运算单元502,用于根据创建子单元A5011得到的文件名和编号子单元A5013得到的数据片的编号通过DHT算法计算出数据片的KEY值。0157如图5B所示,该客户端接口还可以包括发送单元505和接收单元506;0158发送单元505,用于在创建子单元A5011创建文件时,发送创建文件信息给命名节点,以生成文件元。

47、数据,其中,文件元数据包括文件标识、文件名和文件大小;当然,该文件元数据还可以包括文件创建时间、文件修改时间和/或该文件中各数据片的检验值,等等;0159接收单元506,用于接收命名节点返回的文件标识;0160则处理单元504,具体用于根据接收单元506接收到的文件标识和编号子单元A5013得到的数据片的编号写入数据片。0161如图5C所示,在读取数据片时,获取单元501可以包括打开子单元B5011、接收子单元B5012和编号获取子单元B5013;0162打开子单元B5011,用于发送打开文件信息给命名节点;0163接收子单元B5012,用于接收命名节点根据该打开文件信息返回的文件标识;016。

48、4编号获取子单元B5013,用于根据接收子单元B5012接收到的文件标识获取数据片的编号;0165则,运算单元502,用于根据文件名和编号获取子单元B5013得到的数据片的编号说明书CN102004797ACN102004810A10/12页14通过DHT算法计算出数据片的KEY值;0166处理单元504,具体用于根据接收子单元B5012接收到的文件标识和编号获取子单元B5013获取到的数据片的编号从数据节点中读取出数据片。0167以上各个单元的具体实施可参见前面实施例,在此不再赘述。0168由上可知,本实施例的客户端接口的运算单元502可以根据文件名和数据片的编号,通过DHT算法计算出数据片。

49、的KEY值,然后由确定单元503根据计算出的KEY值来确定数据节点,以便处理单元504进行数据的读取或写入,避免了现有技术中由命名节点来分配数据节点,所导致的命名节点的负担过重的问题,有利于提高系统的稳定性;而且,也避免了现有技术中分片文件系统对命名节点的依赖性过大所导致的分片文件系统性能提高受到命名节点性能限制的问题,有利于提升分片文件系统的性能和规模。0169实施例六、0170相应地,本发明实施例还提供一种数据节点,如图6所示,该数据节点包括写入单元601、获取单元602和复制单元603;0171写入单元601,用于接收客户端接口写入的数据片,其中,该数据片由文件数据划分而成;0172获取单元602,用于获取写入单元601写入的数据片的冗余份数;0173复制单元603,用于根据预置的路由表和获取单元602获取到的冗余份数,通过DHT算法将该数据片复制到其他数据节点上。0174例如,具体可以根据预置的路由表,通过DHT算法确定本数据节点后X个其他数据节点为冗余数据节点;将该写入的数据片分别复制到确定的冗余数据节点中,其中,X等于冗余份数与1的差值。0175路由表具体可以保存在数据节点中,该路由表可以由维护人员按照预置策略直接进行设置和维护,也可以由分片文件系统通过获取网络拓扑结构而自行进行设置和维护,具体可参见现有技术中关于设置路由表的相关技术,在此不再赘述。0176该数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1