CN105426483B - 一种基于分布式系统的文件读取方法及装置 - Google Patents
一种基于分布式系统的文件读取方法及装置 Download PDFInfo
- Publication number
- CN105426483B CN105426483B CN201510807517.6A CN201510807517A CN105426483B CN 105426483 B CN105426483 B CN 105426483B CN 201510807517 A CN201510807517 A CN 201510807517A CN 105426483 B CN105426483 B CN 105426483B
- Authority
- CN
- China
- Prior art keywords
- data block
- version number
- server
- date classification
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Library & Information Science (AREA)
Abstract
本发明实施例公开了一种基于分布式系统的文件读取方法及装置,所述方法包括:根据客户端发送的文件读请求携带的偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及目标数据块所属的目标数据分条;当至少一个目标数据块为目标数据分条中的部分数据时,向锁服务器发送针对目标数据分条的数据分条版本号获取请求;向各个存储目标数据块的存储服务器发送数据块获取请求;当锁服务器所反馈的数据分条版本号和各个存储服务器所反馈的目标数据块对应的数据块版本号相同时,将目标数据块发送给客户端。采用本发明实施例,当客户端需要读取的数据块是数据分条中的部分数据时,可避免文件系统内部读取整个数据分条,有效提升系统性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于分布式系统的文件读取方法及装置。
背景技术
分布式系统可以包括文件接口服务器、存储服务器以及锁服务器,用于实现文件接口服务、存储服务以及锁服务,其中文件接口服务器用于处理网络文件协议,完成元数据处理及文件读写操作;存储服务器用于完成文件和元数据的存储;锁服务器用于完成分布式锁的管理。在分布式系统中,为了提升文件数据的可靠性,同时提高存储空间的利用率,文件数据的存储采用N+M保护方式,其中文件数据切分为至少N个数据块,并通过EC(Erasure Code,数据校验擦除码)算法得到M个校验数据块,已知N+M个存储服务器通过网络组成一个N+M的数据保护组,进而将N个数据块和M个校验数据块存储到该数据保护组中。一个文件可以包括至少一个数据分条,一个数据分条可以包括至少一个数据块和至少一个校验数据块,数据分条写入时通过Quorum事务机制保证一致性,并且在存储服务器中每个数据块都有一个版本号,正常情况下,一个数据分条中的N+M个数据块的版本号都是相同的。
传统的,文件接口服务器接收到客户端发送的文件读取请求之后,从至少N个存储服务器中读取数据块,存储服务器向文件接口服务器返回数据块和版本号,文件接口服务器会根据Quorum事务机制,判断至少N个数据块的版本号是否相同,当至少N个数据块的版本号相同时,确定该数据分条有效,进而缓存读取到的N个数据块,并在缓存的N个数据块中将客户端需要的数据块发送给客户端。缓存容量有限导致文件接口服务器缓存的数据块很快被删除,客户端每发送一个文件读取请求,存储服务器就需要通过存储服务器读取至少N个数据块及其版本号,存储服务器读数据压力增加,导致客户端响应延时,系统性能较低。
发明内容
本申请提供一种基于分布式系统的文件读取方法及装置,当客户端需要读取的数据块是数据分条中的部分数据时,可避免文件系统内部读取整个数据分条,有效提升系统性能。
第一方面提供了一种基于分布式系统的文件读取方法,所述方法应用于文件接口服务器,文件接口服务器和客户端、锁服务器以及存储服务器通信,所述方法包括:
接收客户端发送的文件读请求,文件读请求携带偏移地址以及读取数据量;
根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条,文件句柄对应的文件包括至少一个数据分条,各个数据分条包括至少一个数据块;
当至少一个目标数据块为目标数据分条中的部分数据时,向锁服务器发送针对目标数据分条的数据分条版本号获取请求,并接收锁服务器响应数据分条版本号获取请求所反馈的数据分条版本号;
向各个存储目标数据块的存储服务器发送数据块获取请求,并接收各个存储服务器响应数据块获取请求所反馈的目标数据块及其对应的数据块版本号;
当数据分条版本号和各个目标数据块对应的数据块版本号相同时,将各个目标数据块发送给客户端。
在该技术方案中,锁服务器可以缓存各个数据分条的数据分条版本号,如果客户端需要读取目标数据分条中的部分数据,则文件接口服务器可以通过锁服务器获取该目标数据分条的数据分条版本号,文件接口服务器还可以确定客户端所需的目标数据块,通过存储目标数据块的存储服务器获取目标数据块以及目标数据块对应的数据块版本号,当目标数据块对应的数据块版本号和数据分条版本号相同时,文件接口服务器可以确定目标数据块有效,并将目标数据块发送给客户端。传统的文件读取方法中,无论客户端请求的是目标数据分条的部分数据或者所有数据,文件接口服务器需要通过存储目标数据分条中数据块的存储服务器获取目标数据分条中所有数据块以及各个数据块对应的数据块版本号,当各个数据块版本号相同时,文件接口服务器可以确定各个数据块有效,并将上述数据块中客户端所需数据块发送给客户端。本申请中客户端所需数据块为目标数据分条中的部分数据时,文件接口服务器通过存储服务器获取目标数据块以及目标数据块对应的数据块版本号,当目标数据块对应的数据块版本号和数据分条版本号相同时,文件接口服务器可以确定目标数据块有效,无需读取目标数据分条中的所有数据块,可有效提升系统性能。
以图2所示的文件存储的保护示意图为例,传统的文件读取方法中,当客户端需要读取的数据为数据块1-1时,文件接口服务器确定数据块1-1所属的数据分条为数据分条1,数据分条1包括数据块1-1、数据块1-2以及数据块1-3,文件接口服务器向存储数据块1-1的存储服务器1发送数据块获取请求,并接收存储服务器1反馈的数据块1-1以及数据块1-1对应的数据块版本号,同理,文件接口服务器向存储数据块1-2的存储服务器2发送数据块获取请求,并接收存储服务器2反馈的数据块1-2以及数据块1-2对应的数据块版本号,文件接口服务器向存储数据块1-3的存储服务器3发送数据块获取请求,并接收存储服务器3反馈的数据块1-3以及数据块1-3对应的数据块版本号,当数据块1-1对应的数据块版本号、数据块1-2对应的数据块版本号以及数据块1-3对应的数据块版本号都相同时,将数据块1-1发送给客户端。
而本申请中,当客户端需要读取的数据为1-1时,文件接口服务器可以向锁服务器发送针对数据分条1的数据分条版本号获取请求,并接收锁服务器反馈的数据分条1的数据分条版本号,文件接口服务器还可以向存储数据块1-1的存储服务器1发送数据块获取请求,并接收存储服务器1反馈的数据块1-1以及数据块1-1对应的数据块版本号,当数据分条1的数据分条版本号和数据块1-1对应的数据块版本号相同时,将数据块1-1发送给客户端。相对传统的文件读取方法,当客户端需要读取的数据块是数据分条中的部分数据时,文件接口服务器无需读取数据分条中的所有数据块,可有效提升系统性能。
其中,偏移地址为在文件中相对于首地址(即文件的起始地址)的偏移量。
其中,至少一个目标数据块为目标数据分条中的部分数据,即至少一个目标数据块的数据量小于目标数据分条的数据量,以图2所示的文件存储的保护示意图为例,至少一个目标数据块为数据块1-1时,数据块1-1为数据分条1中的部分数据;至少一个目标数据块为数据块1-1和数据块1-2时,数据块1-1和数据块1-2为数据分条1中的部分数据;至少一个目标数据块为数据块1-1、数据块1-2以及数据块1-3时,数据块1-1、数据块1-2以及数据块1-3为数据分条1中的所有数据。
在上述技术方案中,可选的,如果客户端需要读取目标数据分条中的所有数据,则可以通过传统的文件读取方法读取目标数据分条中的所有数据块。
在上述技术方案中,可选的,文件接口服务器接收各个存储服务器响应数据块获取请求所反馈的目标数据块及其对应的数据块版本号之后,如果数据分条版本号和各个目标数据块对应的数据块版本号不完全相同,则可以通过传统的文件读取方法读取文件中的所有数据块。
在上述技术方案中,可选的,文件接口服务器可以接收客户端发送的文件写请求,文件写请求携带文件句柄、偏移地址、写数据以及写数据量;通过版本号分配器获取文件句柄对应的文件的数据分条版本号;根据偏移地址以及写数据量,确定写数据所属的数据块以及数据块所属的数据分条;将写数据发送给存储写数据所属数据块的存储服务器;当写数据成功发送时,将数据分条版本号发送给锁服务器,以通知锁服务器更新数据分条的数据分条版本号。
具体实现中,版本号分配器可以维护文件接口服务器中各个数据分条的数据分条版本号。用户可以通过客户端向文件接口服务器发起文件写请求,文件写请求可以携带文件句柄、偏移地址、写数据以及写数据量,文件接口服务器通过文件句柄在本地缓存中得到文件句柄对应的文件的文件属性,其中文件属性可以包括:文件的文件总数据量、数据EC保护级别以及各个数据块的存储路径。文件接口服务器可以通过文件总数据量、偏移地址以及写数据量,得到写数据所属的数据块,并根据写数据所属数据块的存储路径,向存储该数据块的存储服务器发送写数据。存储服务器接收到该写数据之后对数据块进行更新,文件接口服务器确定该写数据成功发送之后,可以将通过版本号分配器得到的该数据分条的数据分条版本号发送给锁服务器。锁服务器可以对该数据分条的数据分条版本号进行更新,确保锁服务器缓存的数据分条版本号为最新的数据分条版本号,以便文件接口服务器接收到客户端发送的文件读请求时,通过比较锁服务器缓存的数据分条版本号和目标数据块对应的数据块版本号是否相同的方式确定目标数据块是否有效,数据分条版本号为最新的数据分条版本号,可提升文件接口服务器判断目标数据块是否有效的精确度。
在上述技术方案中,可选的,文件接口服务器通过传统的文件读取方法读取文件中的所有数据块之后,当通过存储服务器获取到的各个数据块对应的数据块版本号相同时,文件接口服务器可以确定各个数据块有效,进而将数据块对应的数据块版本号作为各个数据块所属数据分条的数据分条版本号,文件接口服务器可以将数据分条版本号发送给锁服务器,锁服务器可以对该数据分条的数据分条版本号进行更新,确保锁服务器缓存的数据分条版本号为最新的数据分条版本号,可提升文件接口服务器判断数据块是否有效的精确度。
在上述技术方案中,可选的,文件接口服务器向锁服务器发送读锁获取请求,读锁获取请求携带目标数据分条的数据分条标识,文件接口服务器可以接收锁服务器响应读锁获取请求所反馈的对数据分条标识对应的目标数据分条的读授权响应消息,其中读授权响应消息可以携带目标数据分条的数据分条版本号。
具体实现中,文件接口服务器通过存储服务器读取文件之前,需要向锁服务器发送读锁获取请求,如果锁服务器确定数据分条标识对应的数据分条的读锁或者写锁未被其他文件接口服务器所持有,则反馈该数据分条的读授权响应消息,进而该文件接口服务器可以向存储服务器发送数据块获取请求。另外,当客户端所需数据为数据分条中的部分数据时,文件接口服务器需要通过锁服务器获取该数据分条的数据分条版本号,将数据分条版本号与目标数据块的数据块版本号进行比较,以确定目标数据块是否有效。为了提升文件接口服务器与锁服务器之间的数据传输效率,文件接口服务器向锁服务器发送读锁获取请求时,锁服务器可以在响应读锁获取请求所反馈的读授权响应消息中携带该数据分条的数据分条版本号。
在上述技术方案中,可选的,文件接口服务器向锁服务器发送锁释放请求,锁释放请求可以携带数据分条标识以及数据分条版本号,以通知锁服务器更新数据分条标识对应的数据分条的数据分条版本号,并接收锁服务器响应锁释放请求所反馈的锁释放响应消息。
具体实现中,文件接口服务器通过存储服务器读取文件或者写入文件之后,可以主动释放读锁或者写锁,即文件接口服务器可以向锁服务器发送锁释放请求,锁服务器响应该锁释放请求,可以向文件接口服务器发送锁释放响应消息。另外,文件接口服务器通过存储服务器写入文件或者读取数据分条中的所有数据块之后,可以向锁服务器发送该数据分条的数据分条版本号,以确保锁服务器缓存的数据分条版本号为最新的数据分条版本号。为了提升文件接口服务器与锁服务器之间的数据传输效率,文件接口服务器向锁服务器发送锁释放请求时,可以通过锁释放请求携带数据分条版本号的方式将最新的数据分条版本号发送给锁服务器。
在上述技术方案中,可选的,文件接口服务器可以接收锁服务器发送的锁召回请求,锁召回请求携带数据分条标识,文件接口服务器可以响应锁召回请求向锁服务器发送锁召回响应消息,锁召回响应消息携带数据分条标识对应的数据分条的数据分条版本号,以通知锁服务器更新数据分条标识对应的数据分条的数据分条版本号。
具体实现中,文件接口服务器持有对数据分条的读锁或者写锁,如果其他文件接口服务器向锁服务器发送锁获取请求时,锁服务器可以向该文件接口服务器发送锁召回请求,文件接口服务器读取文件或者写文件之后,可以响应锁召回请求向锁服务器发送锁召回响应消息,以便锁服务器将该数据分条的锁授权给其他文件接口服务器。另外,文件接口服务器通过存储服务器写入文件或者读取数据分条中的所有数据块之后,可以向锁服务器发送该数据分条的数据分条版本号,以确保锁服务器缓存的数据分条版本号为最新的数据分条版本号。为了提升文件接口服务器与锁服务器之间的数据传输效率,文件接口服务器接收到锁服务器发送的锁召回请求时,可以在响应锁召回请求所反馈的锁召回响应消息中携带数据分条版本号,以便将最新的数据分条版本号发送给锁服务器。
在上述技术方案中,可选的,文件读请求还可以携带文件句柄,文件接口服务器根据文件句柄在本地获取对应文件的文件属性,文件属性包括文件中各个数据块的存储路径,根据各个目标数据块的存储路径,确定各个存储目标数据块的存储服务器,并向各个确定的存储服务器发送数据块获取请求。
其中,文件句柄用于识别文件,不同文件句柄对应不同的文件,文件接口服务器可以根据文件句柄在本地获取对应文件的文件属性。文件属性可以包括该文件的总数据量、数据EC保护级别(即各个数据分条中数据块的个数N和校验数据块的个数M)或者数据块的存储路径等。文件接口服务器可以根据目标数据块的存储路径,确定各个存储目标数据块的存储服务器,进而向各个确定的存储服务器发送数据块获取请求。
在上述技术方案中,可选的,文件接口服务器可以预先建立数据块和存储服务器的对应关系,例如存储数据块1-1的存储服务器为存储服务器1时,文件接口服务器可以建立数据块1-1和存储服务器1的对应关系。当至少一个目标数据块为目标数据分条中的部分数据时,文件接口服务器可以根据预先建立的数据块和存储服务器的对应关系,确定目标数据块对应的存储服务器,并向确定的存储服务器发送数据块获取请求。
第二方面提供了一种基于分布式系统的文件读取装置,所述装置可以包括请求接收单元、数据块确定单元、请求发送单元、版本号获取单元、数据块接收单元以及数据块发送单元,所述装置可以用于实施结合第一方面的部分或全部步骤。
第三方面提供了一种服务器,包括处理器以及存储器,处理器可以用于实施结合第一方面的部分或全部步骤。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中提供的一种分布式系统的框架示意图;
图2是本发明实施例中提供的一种文件存储的保护示意图;
图3是本发明实施例中提供的一种基于分布式系统的文件读取方法的流程示意图;
图4是本发明另一实施例中提供的一种基于分布式系统的文件读取方法的流程示意图;
图5是本发明另一实施例中提供的一种基于分布式系统的文件读取方法的流程示意图;
图6是本发明另一实施例中提供的一种基于分布式系统的文件读取方法的流程示意图;
图7是本发明实施例中提供的一种文件接口服务器的结构示意图;
图8是本发明实施例中提供的一种基于分布式系统的文件读取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
请参见图1,图1是本发明实施例中提供的一种分布式系统的框架示意图,如图所示本发明实施例中的分布式系统至少可以包括客户端、文件接口服务器、存储服务器以及锁服务器。其中,客户端可以通过网络与文件接口服务器建立通信连接,文件接口服务器分别与锁服务器以及存储服务器建立通信连接。至少两个存储服务器可以通过网络组成存储服务器集群。
客户端,用于向文件接口服务器发送文件读请求,文件读请求携带偏移地址以及读取数据量。
文件接口服务器,用于根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条,其中一个文件包括至少一个数据分条,各个数据分条包括至少一个数据块;当至少一个目标数据块为目标数据分条中的部分数据时,向锁服务器发送针对目标数据分条的数据分条版本号获取请求。
锁服务器,用于响应该数据分条版本号获取请求向文件接口服务器发送数据分条版本号。
文件接口服务器,还用于当至少一个目标数据块为目标数据分条中的部分数据时,向各个存储目标数据块的存储服务器发送数据块获取请求。
存储服务器,用于响应该数据块获取请求向文件接口服务器发送目标数据块以及目标数据块对应的数据块版本号。
文件接口服务器,还用于当锁服务器发送的数据分条版本号和各个存储服务器发送的目标数据块对应的数据块版本号相同时,将各个目标数据块发送给客户端。
具体的,分布式系统中,为了提升文件的可靠性,同时提高存储服务器存储空间的利用率,文件的存储采用N+M的保护方式,即将N+M个存储服务器通过网络组成一个N+M的数据保护组,将文件划分为至少N个数据块,通过EC算法对数据块进行处理得到M个校验数据块,将N个数据块和M个校验数据块存储到N+M个存储服务器中。其中,一个文件的N+M个数据块称为一个数据分条,该数据分条写入存储服务器时通过Quprum事务机制保持一致性,并且在存储服务器中,每个数据块对应有一个数据块版本号,正常情况下,一个数据分条中的N+M个数据块对应的数据块版本号是相同的。其中,校验数据块用于文件接口服务器确定数据分条无效时,通过EC算法对校验数据块进行处理生成数据块。
以图2所示的文件存储的保护示意图为例,文件系统包括5个存储服务器,其中N为3,M为2,如果将一个文件划分为6个数据块,则该文件可以包括2个数据分条,各个数据块的数据块标识可以为分条编号-数据块编号,例如上述数据块的数据块标识分别为1-1、1-2、1-3、2-1、2-2以及2-3,通过EC算法对数据块1-1、1-2以及1-3进行处理得到校验数据块1和校验数据块2,其中数据块1-1、1-2以及1-3、校验数据块1以及校验数据块2组成数据分条1,可以将数据块1-1及其对应的数据块版本号存储到存储服务器1中,将数据块1-2及其对应的数据块版本号存储到存储服务器2中,将数据块1-3及其对应的数据块版本号存储到存储服务器3中,将校验数据块1及其对应的数据块版本号存储到存储服务器4中,将校验数据块2及其对应的数据块版本号存储到存储服务器5中。同理,通过EC算法对数据块2-1、2-2以及2-3进行处理得到校验数据块3和校验数据块4,其中数据块2-1、2-2以及2-3、校验数据块3以及校验数据块4组成数据分条2,可以将数据块2-1及其对应的数据块版本号存储到存储服务器1中,将数据块2-2及其对应的数据块版本号存储到存储服务器2中,将校验数据块1及其对应的数据块版本号存储到存储服务器3中,将校验数据块2及其对应的数据块版本号存储到存储服务器4中,将数据块2-3及其对应的数据块版本号存储到存储服务器5中。
在可选实施例中,文件接口服务器,还用于当至少一个目标数据块为目标数据分条中的所有数据时,向各个存储目标数据块的存储服务器发送数据块获取请求。
存储服务器,还用于响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号。
文件接口服务器,还用于当各个目标数据块对应的数据块版本号相同时,将各个目标数据块发送给客户端。
进一步可选的,文件接口服务器,还用于当各个目标数据块对应的数据块版本号不完全相同时,向各个存储校验数据块的存储服务器发送校验数据块获取请求。
存储服务器,还用于响应校验数据块获取请求向文件接口服务器发送校验数据块及其对应的数据块版本号。
文件接口服务器,还用于当各个校验数据块对应的数据块版本号相同时,通过数据校验擦除码EC算法对各个校验数据块进行处理,得到目标数据分条中的所有数据块,在生成的所有数据块中确定目标数据块,并将各个目标数据块发送给客户端。
在可选实施例中,文件接口服务器,还用于当各个目标数据块对应的数据块版本号相同时,将目标数据块对应的数据块版本号作为目标数据分条的数据分条版本号,将数据分条版本号发送给锁服务器。
锁服务器,还用于对该目标数据分条的数据分条版本号进行更新。
在可选实施例中,文件接口服务器,还用于当数据分条版本号和各个目标数据块对应的数据块版本号不完全相同时,向各个存储目标数据分条中数据块的存储服务器发送数据块获取请求。
存储服务器,还用于响应数据块获取请求向文件接口服务器发送数据块及其对应的数据块版本号。
文件接口服务器,还用于当各个数据块对应的数据块版本号相同时,在接收得到的数据块中确定各个目标数据块,并将各个目标数据块发送给客户端。
在可选实施例中,文件接口服务器,还用于接收客户端发送的文件写请求,文件写请求携带文件句柄、偏移地址、写数据以及写数据量;通过版本号分配器获取文件句柄对应的文件的数据分条版本号;根据偏移地址以及写数据量,确定写数据所属的数据块以及数据块所属的数据分条;将写数据发送给存储写数据所属数据块的存储服务器。
存储服务器,还用于对写数据所属的数据块进行更新。
文件接口服务器,还用于当写数据成功发送时,将数据分条版本号发送给锁服务器。
锁服务器,还用于对该数据分条的数据分条版本号进行更新。
在可选实施例中,文件接口服务器,用于向锁服务器发送锁释放请求,锁释放请求携带数据分条标识以及数据分条版本号。
锁服务器,还用于对数据分条标识对应的数据分条的数据分条版本号进行更新,并响应锁释放请求向文件接口服务器发送锁释放响应消息。
在可选实施例中,锁服务器,还用于向文件接口服务器发送锁召回请求,锁召回请求携带数据分条标识。
文件接口服务器,还用于响应锁召回请求向锁服务器发送锁召回响应消息,锁召回响应消息携带数据分条标识对应的数据分条的数据分条版本号。
锁服务器,还用于对数据分条标识对应的数据分条的数据分条版本号进行更新。
在可选实施例中,文件接口服务器,用于向锁服务器发送读锁获取请求,读锁获取请求携带目标数据分条的数据分条标识。
锁服务器,还用于响应读锁获取请求向文件接口服务器发送对数据分条标识对应的目标数据分条的读授权响应消息,读授权响应消息携带目标数据分条的数据分条版本号。
在可选实施例中,文件读请求还可以携带文件句柄,文件接口服务器向存储各个目标数据块的存储服务器发送数据块获取请求,具体用于根据文件句柄在本地获取文件的文件属性,文件属性包括文件中各个数据块的存储路径;根据各个目标数据块的存储路径,确定存储各个目标数据块的存储服务器;向各个确定的存储服务器发送数据块获取请求。
在图1所示的分布式系统中,客户端向文件接口服务器发送文件读请求,文件读请求携带偏移地址以及读取数据量,文件接口服务器根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条,当至少一个目标数据块为目标数据分条中的部分数据时,文件接口服务器向锁服务器发送针对目标数据分条的数据分条版本号获取请求,并接收锁服务器响应数据分条版本号获取请求所反馈的数据分条版本号,文件接口服务器向各个存储目标数据块的存储服务器发送数据块获取请求,并接收各个存储服务器响应数据块获取请求所反馈的目标数据块及其对应的数据块版本号,当数据分条版本号和各个目标数据块对应的数据块版本号相同时,文件接口服务器将各个目标数据块发送给客户端。当客户端需要读取的数据块是数据分条中的部分数据时,可避免文件系统内部读取整个数据分条,有效提升系统性能。
请参见图3,图3是本发明实施例中提供的一种基于分布式系统的文件读取方法的流程示意图,如图所示本发明实施例中的基于分布式系统的文件读取方法至少可以包括:
S301,客户端向文件接口服务器发送文件读请求,文件读请求携带偏移地址以及读取数据量。
S302,文件接口服务器根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条。
具体实现中,文件接口服务器可以在本地缓存中获取文件的文件属性,文件属性可以包括:文件的文件总数据量,数据EC保护级别以及文件中的各个数据块的存储路径。进而文件接口服务器可以根据偏移地址、读取数据量、文件总数据量以及数据EC保护级别,确定客户端需要读取的至少一个目标数据块。
例如,文件接口服务器确定文件的文件总数据量为30MB(兆字节),数据EC保护级别为3+2(即该文件的各个数据分条包括3个数据块和2个校验数据块),如果各个数据块的数据量为512KB,则该文件包括的数据分条的个数为:30*1024/(512*3)=20,当偏移地址为5MB,读取数据量为1MB,则文件接口服务器可以确定客户端需要读取的目标数据块为数据分条4中的数据块2和数据块3,各个数据块的数据块标识可以为:分条编号-数据块编号,例如目标数据块的数据块标识为4-2以及4-3。
在可选实施例中,文件接口服务器可以根据偏移地址、读取数据量和数据分条的分条数据量得到至少一个目标数据块所属目标数据分条的数据分条标识。其中,一个文件可以包括至少一个数据分条,各个数据分条可以包括至少一个数据块。以图2所示的文件存储的保护示意图为例,该文件包括数据分条1和数据分条2,数据分条1包括数据块1-1、1-2以及1-3,数据分条2包括数据块2-1、2-2以及2-3。其中数据分条标识的格式可以为:文件标识-分条编号,文件标识可以为该文件的文件ID,分条编号可以为其中X为偏移地址,Y为数据分条的分条数据量。例如,偏移地址为1MB,数据分条的数据量为1536KB,则文件接口服务器可以确定目标数据分条为该文件中的数据分条1。其中,分条编号的获取方法包含但不局限于上述方式,例如分条编号可以为其中X为偏移地址,Y为数据分条的分条数据量。示例性的,偏移地址为1MB,数据分条的数据量为1536KB,则文件接口服务器可以确定目标数据分条为该文件中的数据分条0。具体不受本发明实施例的限制。
进一步可选的,文件接口服务器可以向锁服务器发送读锁获取请求,读锁获取请求携带该数据分条标识,锁服务器可以判断其他文件接口服务器是否持有该数据分条标识对应的数据分条的读锁或者写锁,当其他文件接口服务器未持有该数据分条标识对应的数据分条的读锁以及写锁时,锁服务器可以向文件接口服务器发送对数据分条标识对应的数据分条的读授权响应消息,以便文件接口服务器通过存储服务器获取目标数据块。
S303,当至少一个目标数据块为目标数据分条中的部分数据时,文件接口服务器向锁服务器发送针对目标数据分条的数据分条版本号获取请求。
具体的,如果客户端需要读取的目标数据块为目标数据分条中的部分数据,文件接口服务器可以向锁服务器发送针对目标数据分条的数据分条版本号获取请求,数据分条版本号获取请求可以携带数据分条标识。例如,文件接口服务器通过文件属性得到文件划分为6个数据块,该文件包括2个数据分条,数据块的数据块标识分别为1-1、1-2、1-3、2-1、2-2以及2-3,客户端需要读取的目标数据块为数据块1-1和数据块1-2,则文件接口服务器可以确定目标数据块为数据分条1中的部分数据,进而文件接口服务器向锁服务器发送针对数据分条1的数据分条版本号获取请求。
又如,文件接口服务器通过文件属性得到文件划分为6个数据块,该文件包括2个数据分条,数据块的数据块标识分别为1-1、1-2、1-3、2-1、2-2以及2-3,客户端需要读取的目标数据块为数据块1-2、1-3、2-1、2-2以及2-3,则文件接口服务器可以确定数据块1-2和数据块1-3为数据分条1中的部分数据,进而文件接口服务器向锁服务器发送针对数据分条1的数据分条版本号获取请求。数据块2-1、2-2以及2-3为数据分条2中的所有数据,则文件接口服务器可以通过传统的文件读取方法获取数据块2-1、2-2以及2-3,并将获取到的数据块2-1、2-2以及2-3发送给客户端。
S304,锁服务器响应数据分条版本号获取请求向文件接口服务器发送数据分条版本号。
具体实现中,锁服务器可以缓存各个数据分条的数据分条版本号,并在文件接口服务器写数据或者读取整个数据分条时更新该数据分条的数据分条版本号,则锁服务器接收到文件接口服务器发送的数据分条版本号获取请求之后,可以查找数据分条标识对应的目标数据分条的数据分条版本号,并将该数据分条版本号发送给文件接口服务器。
需要说明的是,当该锁服务器发生故障时,缓存中的数据分条版本号可能丢失,则锁服务器无法查找到数据分条标识对应的目标数据分条的数据分条版本号。或者当该锁服务器被淘汰时,文件接口服务器无法通过锁服务器获取到目标数据分条的数据分条版本号。或者该锁服务器当前是第一次运行,缓存中还未存储各个数据分条的数据分条版本号。上述情况中,文件接口服务器无法通过锁服务器获取数据分条版本号,则文件接口服务器可以通过传统的文件读取方法读取客户端所需数据。
作为步骤S303以及S304的可选方式,锁服务器可以在响应文件接口服务器发送的读锁获取请求所反馈的读授权响应消息中携带数据分条版本号,则文件接口服务器无需通过向锁服务器发送数据分条版本号获取请求的方式获取数据分条版本号,可提升数据传输效率。具体实现中,文件接口服务器可以向锁服务器发送读锁获取请求,读锁获取请求携带该数据分条标识,锁服务器响应该读锁获取请求,可以向文件接口服务器发送对数据分条标识对应的文件的读授权响应消息,读授权响应消息携带文件的数据分条版本号。
S305,文件接口服务器向存储目标数据块的存储服务器发送数据块获取请求。
当目标数据块为数据分条中的部分数据时,文件接口服务器可以向存储目标数据块的存储服务器发送数据块获取请求。例如,文件接口服务器确定目标数据块为数据块1-2和数据块1-3,则文件接口服务器可以向存储数据块1-2的存储服务器发送数据块获取请求,该数据块获取请求携带数据块1-2的数据块标识。文件接口服务器还可以向存储数据块1-3的存储服务器发送数据块获取请求,该数据块获取请求携带数据块1-3的数据块标识。
在可选实施例中,文件接口服务器获取各个数据块的存储路径之后,可以根据目标数据块的存储路径确定存储目标数据块的存储服务器,进而向该存储服务器发送数据块获取请求。例如,文件接口服务器可以根据各个数据块的存储路径确定数据块1-1存储在存储服务器1中,数据块1-2存储在存储服务器2中,数据块1-3存储在存储服务器3中,当目标数据块为数据块1-2和数据块1-3时,文件接口服务器可以向存储服务器2发送数据块获取请求,并向存储服务器3发送数据块获取请求。
S306,存储服务器响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号。
存储服务器响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号。例如,文件接口服务器向存储服务器2发送数据块获取请求,存储服务器2反馈数据块1-2以及数据块1-2对应的数据块版本号,文件接口服务器还可以向存储服务器3发送数据块获取请求,存储服务器3反馈数据块1-3以及数据块1-3对应的数据块版本号。
S307,当数据分条版本号和各个目标数据块对应的数据块版本号相同时,文件接口服务器将各个目标数据块发送给客户端。
当文件接口服务器通过锁服务器获取到的数据分条版本号和通过各个存储服务器获取到的目标数据块对应的数据块版本号相同时,文件接口服务器可以确定各个目标数据块是有效的,进而将各个目标数据块发送给客户端。例如,如果数据分条版本号和数据块1-2对应的数据块版本号相同,且数据分条版本号和数据块1-3对应的数据块版本号相同,则文件接口服务器可以确定数据块1-2和数据块1-3是有效的,进而将数据块1-2和数据块1-3发送给客户端。
在图3所示的基于分布式系统的文件读取方法中,当客户端所需的至少一个目标数据块为目标数据分条中的部分数据时,文件接口服务器向锁服务器发送针对目标数据分条的数据分条版本号获取请求,锁服务器响应数据分条版本号获取请求向文件接口服务器发送数据分条版本号,文件接口服务器还可以向各个存储目标数据块的存储服务器发送数据块获取请求,存储服务器响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号,当数据分条版本号和各个目标数据块对应的数据块版本号相同时,文件接口服务器将各个目标数据块发送给客户端,当客户端需要读取的数据块是数据分条中的部分数据时,可避免文件系统内部读取整个数据分条,有效提升系统性能。
请参见图4,图4是本发明实施例中提供的一种文件的读取方法的流程示意图,如图所示本发明实施例中的文件的读取方法至少可以包括:
S401,客户端向文件接口服务器发送文件读请求,文件读请求携带偏移地址以及读取数据量。
S402,文件接口服务器根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条。
S403,当至少一个目标数据块为目标数据分条中的所有数据时,文件接口服务器向存储目标数据块的存储服务器发送数据块获取请求。
当目标数据块为目标数据分条中的所有数据时,文件接口服务器可以向存储目标数据块的存储服务器发送数据块获取请求。例如,目标数据分条中的所有数据块分别为数据块1-1、数据块1-2以及数据块1-3,文件接口服务器确定目标数据块为数据块1-1、数据块1-2和数据块1-3,则文件接口服务器可以向存储数据块1-1的存储服务器发送数据块获取请求,该数据块获取请求携带数据块1-1的数据块标识。文件接口服务器还可以向存储数据块1-2的存储服务器发送数据块获取请求,该数据块获取请求携带数据块1-2的数据块标识。文件接口服务器还可以向存储数据块1-3的存储服务器发送数据块获取请求,该数据块获取请求携带数据块1-3的数据块标识。
S404,存储服务器响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号。
S405,当各个目标数据块对应的数据块版本号相同时,文件接口服务器将各个目标数据块发送给客户端。
文件接口服务器接收到各个目标数据块的数据块版本号之后,可以判断各个目标数据块的数据块版本号是否相同,当各个目标数据块对应的数据块版本号相同时,文件接口服务器可以确定该目标数据分条中的各个数据块是有效的,进而缓存各个目标数据块,并将各个目标数据块发送给客户端。
在可选实施例中,当各个目标数据块对应的数据块版本号不完全相同时,文件接口服务器可以确定该目标数据分条中的数据块是无效的,进而根据目标数据分条中校验数据块的存储路径向存储校验数据块的存储服务器发送校验数据块获取请求,存储服务器响应该校验数据块获取请求向文件接口服务器发送校验数据块和校验数据块对应的数据块版本号,文件接口服务器可以比较各个校验数据块对应的数据块版本号是否相同,当各个校验数据块对应的数据块版本号相同时,通过EC算法对各个校验数据块进行处理,得到目标数据分条中的各个数据块,进而将各个数据块发送给客户端。
在可选实施例中,当各个目标数据块对应的数据块版本号相同时,文件接口服务器可以将目标数据块对应的数据块版本号作为目标数据分条的数据分条版本号,并将该数据分条版本号发送给锁服务器,当锁服务器未存储该文件的数据分条版本号时,锁服务器可以缓存该数据分条版本号及该目标数据分条对应的数据分条标识;当锁服务器已存储该目标数据分条的数据分条版本号时,锁服务器可以对该目标数据分条的数据分条版本号进行更新。
在可选实施例中,文件接口服务器接收到存储服务器发送的目标数据块之后,可以主动释放该目标数据分条的读锁,文件接口服务器可以在释放读锁的过程中将数据分条版本号发送给锁服务器,提高文件接口服务器与锁服务器之间的数据传输效率。例如,文件接口服务器可以向锁服务器发送锁释放请求,锁释放请求携带数据分条标识以及数据分条版本号,锁服务器可以对该数据分条标识对应的目标数据分条的数据分条版本号进行更新,并响应锁释放请求向文件接口服务器发送锁释放响应消息。
在可选实施例中,文件接口服务器接收到锁服务器发送的锁召回请求时,可以在响应锁召回请求所反馈的锁召回响应消息中携带数据分条版本号,可提高文件接口服务器和锁服务器之间的数据传输效率。例如,锁服务器可以向文件接口服务器发送锁召回请求,锁召回请求携带数据分条标识,文件接口服务器可以响应锁召回请求向锁服务器发送锁召回响应消息,锁召回响应消息携带数据分条版本号,进而锁服务器可以对数据分条标识对应的目标数据分条的数据分条版本号进行更新。
在图4所示的基于分布式系统的文件读取方法中,当客户端所需的至少一个目标数据块为目标数据分条中的所有数据时,文件接口服务器向存储目标数据块的存储服务器发送数据块获取请求,存储服务器响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号,当各个目标数据块对应的数据块版本号相同时,文件接口服务器将各个目标数据块发送给客户端。
请参见图5,图5是本发明实施例中提供的一种基于分布式系统的文件读取方法的流程示意图,如图所示本发明实施例中的基于分布式系统的文件读取方法至少可以包括:
S501,客户端向文件接口服务器发送文件读请求,文件读请求携带偏移地址以及读取数据量。
S502,文件接口服务器根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条。
S503,当至少一个目标数据块为目标数据分条中的部分数据时,文件接口服务器向锁服务器发送针对目标数据分条的数据分条版本号获取请求。
S504,锁服务器响应数据分条版本号获取请求向文件接口服务器发送数据分条版本号。
S505,文件接口服务器向存储目标数据块的存储服务器发送数据块获取请求。
S506,存储服务器响应数据块获取请求向文件接口服务器发送目标数据块及其对应的数据块版本号。
S507,当数据分条版本号和各个目标数据块对应的数据块版本号不完全相同时,文件接口服务器向各个存储目标数据分条中数据块的存储服务器发送数据块获取请求。
S508,存储服务器响应数据块获取请求向文件接口服务器发送数据块及其对应的数据块版本号。
S509,当各个数据块对应的数据块版本号相同时,文件接口服务器在接收得到的数据块中确定各个目标数据块。
在可选实施例中,当各个数据块对应的数据块版本号相同时,文件接口服务器可以将数据块对应的数据块版本号作为目标数据分条的数据分条版本号,并将该数据分条版本号发送给锁服务器,当锁服务器未存储目标数据分条的数据分条版本号时,锁服务器可以缓存该数据分条版本号及目标数据分条对应的数据分条标识;当锁服务器已存储目标数据分条的数据分条版本号时,锁服务器可以对目标数据分条的数据分条版本号进行更新。
S510,文件接口服务器将各个目标数据块发送给客户端。
在图5所示的基于分布式系统的文件读取方法中,当数据分条版本号和各个目标数据块对应的数据块版本号不完全相同时,文件接口服务器向各个存储目标数据分条中数据块的存储服务器发送数据块获取请求,存储服务器响应数据块获取请求向文件接口服务器发送数据块及其对应的数据块版本号,当各个数据块对应的数据块版本号相同时,文件接口服务器在接收到的数据块中确定各个目标数据块,并将各个目标数据块发送给客户端。
请参见图6,图6是本发明实施例中提供的一种基于分布式系统的文件读取方法的流程示意图,如图所示本发明实施例中的基于分布式系统的文件读取方法至少可以包括:
S601,客户端向文件接口服务器发送文件写请求,文件写请求携带文件句柄、偏移地址、写数据以及写数据量。
S602,文件接口服务器通过版本号分配器获取文件句柄对应的文件的数据分条版本号。
文件接口服务器接收到客户端发送的文件写请求之后,可以通过版本号分配器获取文件句柄对应的文件的数据分条版本号。例如,版本号分配器维护的该文件的当前数据分条版本号为10,预先设定的单调递增指数为2,则文件接口服务器接收到文件写请求之后,版本号分配器分配的该文件的数据分条版本号为12。需要说明的是,单调递增指数包含但不局限于2,例如,单调递增指数可以为1或者3等,具体不受本发明实施例的限制。
S603,文件接口服务器根据偏移地址以及写数据量,确定写数据所属的数据块以及数据块所属的数据分条。
具体实现中,文件接口服务器可以根据文件句柄在本地缓存中获取文件句柄对应的文件的文件属性,文件属性可以包括:文件总数据量,数据EC保护级别以及文件中各个数据块的存储路径。进而文件接口服务器可以根据偏移地址、写数据量、文件总数据量以及数据EC保护级别,确定写数据所属的数据块。其中,写数据所属的数据块的个数可以为至少一个。
例如,文件接口服务器确定文件的文件总数据量为30MB,数据EC保护级别为3+2,如果各个数据块的数据量为512KB,偏移地址为5MB,写数据量为512KB,则文件接口服务器可以确定写数据所属的数据块为4-2。
在可选实施例中,文件接口服务器可以根据偏移地址和数据分条的分条数据量得到数据块所属数据分条的数据分条标识,其中数据分条标识的格式可以为:文件标识-分条编号,文件标识可以为该文件的文件ID,分条编号可以为其中X为偏移地址,Y为数据分条的分条数据量。
进一步可选的,文件接口服务器可以向锁服务器发送写锁获取请求,写锁获取请求携带该数据分条标识,锁服务器可以判断其他文件接口服务器是否持有该数据分条标识对应的数据分条的读锁或者写锁,当其他文件接口服务器未持有该数据分条标识对应的数据分条的读锁以及写锁时,锁服务器可以向文件接口服务器发送对数据分条标识对应的数据分条的写授权消息,以便文件接口服务器将写数据发送给存储服务器。
S604,文件接口服务器将写数据发送给存储写数据所属数据块的存储服务器。
文件接口服务器确定写数据所属数据块之后,可以根据数据块的存储路径,将写数据发送给存储写数据所属数据块的存储服务器。例如,写数据所属数据块为4-2,文件接口服务器根据数据块4-2的存储路径确定数据块4-2存储在存储服务器1中,进而文件接口服务器可以将写数据发送给存储服务器1。
在可选实施例中,文件接口服务器可以通过EC算法对写数据进行处理,得到校验数据块,将写数据、校验数据块以及获取到的数据分条版本号发送给该存储服务器,该存储服务器可以对写数据所属的数据块进行更新,并对校验数据块进行更新,进而将该数据分条中各个数据块对应的数据块版本号更新为该数据分条版本号。
S605,当写数据成功发送时,文件接口服务器将数据分条版本号发送给锁服务器。
当写数据成功发送时,文件接口服务器可以将获取到的数据分条版本号发送给锁服务器,进一步的,文件接口服务器还可以将数据块所属数据分条的数据分条标识发送给锁服务器。例如,文件接口服务器确定向存储服务器发送的写数据发送完毕之后,可以将获取到的数据分条版本号发送给锁服务器,以通知锁服务器对该数据分条的数据分条版本号进行更新。又如,文件接口服务器将写数据发送给存储服务器之后,存储服务器向文件接口服务器发送写数据成功接收消息,文件接口服务器可以根据写数据成功接收消息确定写数据成功发送,进而将获取到的数据分条版本号发送给锁服务器。
S606,锁服务器更新数据分条的数据分条版本号。
在图6所示的基于分布式系统的文件读取方法中,客户端向文件接口服务器发送文件写请求,文件写请求携带文件句柄、偏移地址、写数据以及写数据量,文件接口服务器通过版本号分配器获取文件句柄对应的文件的数据分条版本号,文件接口服务器根据偏移地址以及写数据量,确定写数据所属的数据块以及数据块所属的数据分条,文件接口服务器将写数据发送给存储写数据所属数据块的存储服务器,当写数据成功发送时,文件接口服务器将数据分条版本号发送给锁服务器,锁服务器更新数据块所属数据分条的数据分条版本号,可确保锁服务器存储的数据分条版本号的有效性。
请参见图7,图7是本发明实施例中提供的一种文件接口服务器的结构示意图。如图7所示,该文件接口服务器可以包括:处理器701、存储器702、第一网络接口703、第二网络接口704以及第三网络接口705。处理器701连接到存储器702、第一网络接口703、第二网络接口704以及第三网络接口705,例如处理器701可以通过总线连接到存储器702、第一网络接口703、第二网络接口704以及第三网络接口705。
其中,处理器701可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)等。
存储器702具体可以用于存储数据块以及数据块对应的数据块版本号等。存储器702可以包括易失性存储器(volatile memory),例如随机存取存储器(random-accessmemory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
第一网络接口703,用于与客户端进行通信,例如接收客户端发送的文件读请求。第一网络接口703可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
第二网络接口704,用于与锁服务器进行通信,例如向锁服务器发送针对目标数据分条的数据分条版本号获取请求。第二网络接口704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
第三网络接口705,用于与存储服务器进行通信,例如向存储服务器发送数据块获取请求。第三网络接口705可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
具体的,本发明实施例中介绍的文件接口服务器可以用以实施本发明结合图3~图6介绍的基于分布式系统的文件读取方法实施例中的部分或全部流程。
请参见图8,图8是本发明实施例中提供的一种基于分布式系统的文件读取装置的结构示意图,其中本发明实施例提供的基于分布式系统的文件读取装置可以结合图7中的处理器701,如图所示本发明实施例中的基于分布式系统的文件读取装置至少可以包括请求接收单元801、数据块确定单元802、请求发送单元803、版本号获取单元804、数据块接收单元805以及数据块发送单元806,其中:
请求接收单元801,用于接收客户端发送的文件读请求,文件读请求携带偏移地址以及读取数据量。
数据块确定单元802,用于根据偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及至少一个目标数据块所属的目标数据分条,一个文件包括至少一个数据分条,各个数据分条包括至少一个数据块。
请求发送单元803,用于当至少一个目标数据块为目标数据分条中的部分数据时,向锁服务器发送对目标数据分条的数据分条版本号获取请求。
版本号获取单元804,用于接收锁服务器响应数据分条版本号获取请求所反馈的数据分条版本号。
请求发送单元803,还用于向各个存储目标数据块的存储服务器发送数据块获取请求。
数据块接收单元805,用于接收各个存储服务器响应数据块获取请求所反馈的目标数据块及其对应的数据块版本号。
数据块发送单元806,用于当数据分条版本号和各个目标数据块对应的数据块版本号相同时,将各个目标数据块发送给客户端。
在可选实施例中,请求发送单元803,还用于当至少一个目标数据块为目标数据分条中的所有数据时,向各个存储目标数据块的存储服务器发送数据块获取请求。
数据块接收单元805,还用于接收各个存储服务器响应数据块获取请求所反馈的各个目标数据块及其对应的数据块版本号。
数据块发送单元806,还用于当各个目标数据块对应的数据块版本号相同时,将各个目标数据块发送给客户端。
在可选实施例中,请求发送单元803,还用于当数据分条版本号和各个目标数据块对应的数据块版本号不完全相同时,向各个存储目标数据分条中数据块的存储服务器发送数据块获取请求。
数据块接收单元805,还用于接收各个存储服务器响应数据块获取请求所反馈的各个数据块及其对应的数据块版本号。
数据块确定单元802,还用于当各个数据块对应的数据块版本号相同时,在接收得到的数据块中确定各个目标数据块。
数据块发送单元806,还用于将各个目标数据块发送给客户端。
在可选实施例中,请求接收单元801,还用于接收客户端发送的文件写请求,文件写请求携带文件句柄、偏移地址、写数据以及写数据量。
版本号获取单元804,还用于通过版本号分配器获取文件句柄对应的文件的数据分条版本号。
数据块确定单元802,还用于根据偏移地址以及写数据量,确定写数据所属的数据块以及数据块所属的数据分条。
进一步的,本发明实施例中基于分布式系统的文件读取装置还可以包括:
数据发送单元807,用于将写数据发送给存储写数据所属数据块的存储服务器。
版本号发送单元808,用于当写数据成功发送时,将数据分条版本号发送给锁服务器,以通知锁服务器更新该数据分条的数据分条版本号。
在可选实施例中,本发明实施例中的文件的读取装置还可以包括:
版本号发送单元808,用于当各个目标数据块对应的数据块版本号相同时,将目标数据块对应的数据块版本号作为目标数据分条的数据分条版本号,并将数据分条版本号发送给锁服务器,以通知锁服务器更新目标数据分条的数据分条版本号。
进一步可选的,版本号发送单元808,具体用于:
向锁服务器发送锁释放请求,锁释放请求携带数据分条标识以及数据分条版本号,以通知锁服务器更新数据分条标识对应的数据分条的数据分条版本号。
接收锁服务器响应锁释放请求所反馈的锁释放响应消息。
进一步可选的,版本号发送单元808,具体用于:
接收锁服务器发送的锁召回请求,锁召回请求携带数据分条标识。
响应锁召回请求向锁服务器发送锁召回响应消息,锁召回响应消息携带数据分条标识对应的数据分条的数据分条版本号,以通知锁服务器更新数据分条标识对应的数据分条的数据分条版本号。
在可选实施例中,请求发送单元803向锁服务器发送针对目标数据分条的数据分条版本号获取请求,具体用于:
向锁服务器发送读锁获取请求,读锁获取请求携带目标数据分条的数据分条标识。
接收锁服务器响应读锁获取请求所反馈的对数据分条标识对应的目标数据分条的读授权响应消息,读授权响应消息携带目标数据分条的数据分条版本号。
在可选实施例中,文件读请求还可以携带文件句柄,请求发送单元803向存储各个目标数据块的存储服务器发送数据块获取请求,具体用于:
根据文件句柄在本地获取文件的文件属性,文件属性包括文件中各个数据块的存储路径。
根据各个目标数据块的存储路径,确定存储各个目标数据块的存储服务器。
向各个确定的存储服务器发送数据块获取请求。
进一步可选的,请求发送单元803,还用于当各个目标数据块对应的数据块版本号不完全相同时,向各个存储目标数据分条中校验数据块的存储服务器发送校验数据块获取请求。
数据块接收单元805,还用于接收各个存储服务器响应校验数据块获取请求所反馈的校验数据块及其对应的数据块版本号。
进一步的,本发明实施例中的基于分布式系统的文件读取装置还可以包括:
数据块生成单元809,用于当各个校验数据块对应的数据块版本号相同时,通过EC算法对各个校验数据块进行处理,得到目标数据分条中的各个数据块。
数据块发送单元806,还用于将数据块中的各个目标数据块发送给客户端。
具体的,本发明实施例中介绍的基于分布式系统的文件读取装置可以用以实施本发明结合图3~图6介绍的基于分布式系统的文件读取方法实施例中的部分或全部流程。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的程序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包括、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器,只读存储器,可擦除可编辑只读存储器,光纤装置,以及便携式光盘只读存储器。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
此外,在本发明各个实施例中的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (20)
1.一种基于分布式系统的文件读取方法,所述方法应用于文件接口服务器,所述文件接口服务器和客户端、锁服务器以及存储服务器通信,其特征在于,包括:
接收所述客户端发送的文件读请求,所述文件读请求携带偏移地址以及读取数据量;
根据所述偏移地址以及所述读取数据量,确定所述客户端需要读取的至少一个目标数据块以及所述至少一个目标数据块所属的目标数据分条,一个文件包括至少一个数据分条,各个所述数据分条包括至少一个数据块;
当所述至少一个目标数据块为所述目标数据分条中的部分数据时,向所述锁服务器发送针对所述目标数据分条的数据分条版本号获取请求,并接收所述锁服务器响应所述数据分条版本号获取请求所反馈的数据分条版本号;
向各个存储所述目标数据块的所述存储服务器发送数据块获取请求,并接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号;
当所述数据分条版本号和各个所述目标数据块对应的数据块版本号相同时,将各个所述目标数据块发送给所述客户端。
2.如权利要求1所述的方法,其特征在于,所述根据所述偏移地址以及所述读取数据量,确定所述客户端需要读取的至少一个目标数据块以及所述至少一个目标数据块所属的目标数据分条之后,还包括:
当所述至少一个目标数据块为所述目标数据分条中的所有数据时,向各个存储所述目标数据块的存储服务器发送所述数据块获取请求;
接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号;
当各个所述目标数据块对应的数据块版本号相同时,将各个所述目标数据块发送给所述客户端。
3.如权利要求1所述的方法,其特征在于,所述接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号之后,还包括:
当所述数据分条版本号和各个所述目标数据块对应的数据块版本号不完全相同时,向各个存储所述目标数据分条中数据块的存储服务器发送所述数据块获取请求;
接收各个所述存储服务器响应所述数据块获取请求所反馈的各个所述数据块及其对应的数据块版本号;
当各个所述数据块对应的数据块版本号相同时,在所述接收得到的数据块中确定各个所述目标数据块;
将各个所述目标数据块发送给所述客户端。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的文件写请求,所述文件写请求携带文件句柄、偏移地址、写数据以及写数据量;
通过版本号分配器获取所述文件句柄对应的文件的数据分条版本号;
根据所述文件写请求携带的偏移地址以及所述写数据量,确定所述写数据所属的数据块以及所述数据块所属的数据分条;
将所述写数据发送给存储所述写数据所属数据块的存储服务器;
当所述写数据成功发送时,将所述数据分条版本号发送给所述锁服务器,以通知所述锁服务器更新所述数据分条的数据分条版本号。
5.如权利要求2所述的方法,其特征在于,所述接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号之后,还包括:
当各个所述目标数据块对应的数据块版本号相同时,将所述目标数据块对应的数据块版本号作为所述目标数据分条的数据分条版本号;
将所述数据分条版本号发送给所述锁服务器,以通知所述锁服务器更新所述目标数据分条的数据分条版本号。
6.如权利要求5所述的方法,其特征在于,所述将所述数据分条版本号发送给所述锁服务器,包括:
向所述锁服务器发送锁释放请求,所述锁释放请求携带数据分条标识以及数据分条版本号,以通知所述锁服务器更新所述数据分条标识对应的数据分条的数据分条版本号;
接收所述锁服务器响应所述锁释放请求所反馈的锁释放响应消息。
7.如权利要求5所述的方法,其特征在于,所述将所述数据分条版本号发送给所述锁服务器,包括:
接收所述锁服务器发送的锁召回请求,所述锁召回请求携带数据分条标识;
响应所述锁召回请求向所述锁服务器发送锁召回响应消息,所述锁召回响应消息携带所述数据分条标识对应的数据分条的数据分条版本号,以通知所述锁服务器更新所述数据分条标识对应的数据分条的数据分条版本号。
8.如权利要求1~7任一项所述的方法,其特征在于,所述向锁服务器发送针对所述目标数据分条的数据分条版本号获取请求,包括:
向所述锁服务器发送读锁获取请求,所述读锁获取请求携带所述目标数据分条的数据分条标识;
接收所述锁服务器响应所述读锁获取请求所反馈的对所述数据分条标识对应的目标数据分条的读授权响应消息,所述读授权响应消息携带所述目标数据分条的数据分条版本号。
9.如权利要求2所述的方法,其特征在于,所述接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号之后,还包括:
当各个所述目标数据块对应的数据块版本号不完全相同时,向各个存储所述目标数据分条中校验数据块的存储服务器发送校验数据块获取请求;
接收各个所述存储服务器响应所述校验数据块获取请求所反馈的校验数据块及其对应的数据块版本号;
当各个所述校验数据块对应的数据块版本号相同时,通过数据校验擦除码EC算法对各个所述校验数据块进行处理,得到各个所述目标数据块;
将各个所述目标数据块发送给所述客户端。
10.如权利要求1~7任一项所述的方法,其特征在于,所述文件读请求还携带文件句柄;
所述向各个存储所述目标数据块的所述存储服务器发送数据块获取请求,包括:
根据所述文件句柄在本地获取所述文件的文件属性,所述文件属性包括所述文件中各个数据块的存储路径;
根据各个所述目标数据块的存储路径,确定各个存储所述目标数据块的存储服务器;
向各个确定的存储服务器发送所述数据块获取请求。
11.一种基于分布式系统的文件读取装置,其特征在于,包括:
请求接收单元,用于接收客户端发送的文件读请求,所述文件读请求携带偏移地址以及读取数据量;
数据块确定单元,用于根据所述偏移地址以及所述读取数据量,确定所述客户端需要读取的至少一个目标数据块以及所述至少一个目标数据块所属的目标数据分条,一个文件包括至少一个数据分条,各个所述数据分条包括至少一个数据块;
请求发送单元,用于当所述至少一个目标数据块为所述目标数据分条中的部分数据时,向锁服务器发送针对所述目标数据分条的数据分条版本号获取请求;
版本号获取单元,用于接收所述锁服务器响应所述数据分条版本号获取请求所反馈的数据分条版本号;
所述请求发送单元,还用于向各个存储所述目标数据块的存储服务器发送数据块获取请求;
数据块接收单元,用于接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号;
数据块发送单元,用于当所述数据分条版本号和各个所述目标数据块对应的数据块版本号相同时,将各个所述目标数据块发送给所述客户端。
12.如权利要求11所述的装置,其特征在于,
所述请求发送单元,还用于当所述至少一个目标数据块为所述目标数据分条中的所有数据时,向各个存储所述目标数据块的存储服务器发送所述数据块获取请求;
所述数据块接收单元,还用于接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本号;
所述数据块发送单元,还用于当各个所述目标数据块对应的数据块版本号相同时,将各个所述目标数据块发送给所述客户端。
13.如权利要求11所述的装置,其特征在于,
所述请求发送单元,还用于当所述数据分条版本号和各个所述目标数据块对应的数据块版本号不完全相同时,向各个存储所述目标数据分条中数据块的存储服务器发送所述数据块获取请求;
所述数据块接收单元,还用于接收各个所述存储服务器响应所述数据块获取请求所反馈的各个所述数据块及其对应的数据块版本号;
所述数据块确定单元,还用于当各个所述数据块对应的数据块版本号相同时,在所述接收得到的数据块中确定各个所述目标数据块;
所述数据块发送单元,还用于将各个所述目标数据块发送给所述客户端。
14.如权利要求11所述的装置,其特征在于,
所述请求接收单元,还用于接收所述客户端发送的文件写请求,所述文件写请求携带文件句柄、偏移地址、写数据以及写数据量;
所述版本号获取单元,还用于通过版本号分配器获取所述文件句柄对应的文件的数据分条版本号;
所述数据块确定单元,还用于根据所述文件写请求携带的偏移地址以及所述写数据量,确定所述写数据所属的数据块以及所述数据块所属的数据分条;
所述装置还包括:
数据发送单元,用于将所述写数据发送给存储所述写数据所属数据块的存储服务器;
版本号发送单元,用于当所述写数据成功发送时,将所述数据分条版本号发送给所述锁服务器,以通知所述锁服务器更新所述数据分条的数据分条版本号。
15.如权利要求12所述的装置,其特征在于,所述装置还包括:
版本号发送单元,用于当各个所述目标数据块对应的数据块版本号相同时,将所述目标数据块对应的数据块版本号作为所述目标数据分条的数据分条版本号,并将所述数据分条版本号发送给所述锁服务器,以通知所述锁服务器更新所述目标数据分条的数据分条版本号。
16.如权利要求15所述的装置,其特征在于,所述版本号发送单元,具体用于:
向所述锁服务器发送锁释放请求,所述锁释放请求携带数据分条标识以及数据分条版本号,以通知所述锁服务器更新所述数据分条标识对应的数据分条的数据分条版本号;
接收所述锁服务器响应所述锁释放请求所反馈的锁释放响应消息。
17.如权利要求15所述的装置,其特征在于,所述版本号发送单元,具体用于:
接收所述锁服务器发送的锁召回请求,所述锁召回请求携带数据分条标识;
响应所述锁召回请求向所述锁服务器发送锁召回响应消息,所述锁召回响应消息携带所述数据分条标识对应的数据分条的数据分条版本号,以通知所述锁服务器更新所述数据分条标识对应的数据分条的数据分条版本号。
18.如权利要求11~17任一项所述的装置,其特征在于,所述请求发送单元向所述锁服务器发送针对所述目标数据分条的数据分条版本号获取请求,具体用于:
向所述锁服务器发送读锁获取请求,所述读锁获取请求携带所述目标数据分条的数据分条标识;
接收所述锁服务器响应所述读锁获取请求所反馈的对所述数据分条标识对应的目标数据分条的读授权响应消息,所述读授权响应消息携带所述目标数据分条的数据分条版本号。
19.如权利要求12所述的装置,其特征在于,
所述请求发送单元,还用于当各个所述目标数据块对应的数据块版本号不完全相同时,向各个存储所述目标数据分条中校验数据块的存储服务器发送校验数据块获取请求;
所述数据块接收单元,还用于接收各个所述存储服务器响应所述校验数据块获取请求所反馈的校验数据块及其对应的数据块版本号;
所述装置还包括:
数据块生成单元,用于当各个所述校验数据块对应的数据块版本号相同时,通过EC算法对各个所述校验数据块进行处理,得到各个所述目标数据块;
所述数据块发送单元,还用于将各个所述目标数据块发送给所述客户端。
20.如权利要求11~17任一项所述的装置,其特征在于,所述文件读请求还携带文件句柄;
所述请求发送单元向各个存储所述目标数据块的所述存储服务器发送所述数据块获取请求,具体用于:
根据所述文件句柄在本地获取所述文件的文件属性,所述文件属性包括所述文件中各个数据块的存储路径;
根据各个所述目标数据块的存储路径,确定各个存储所述目标数据块的存储服务器;
向各个确定的存储服务器发送所述数据块获取请求。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510807517.6A CN105426483B (zh) | 2015-11-19 | 2015-11-19 | 一种基于分布式系统的文件读取方法及装置 |
PCT/CN2016/105957 WO2017084563A1 (zh) | 2015-11-19 | 2016-11-15 | 一种基于分布式系统的文件读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510807517.6A CN105426483B (zh) | 2015-11-19 | 2015-11-19 | 一种基于分布式系统的文件读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426483A CN105426483A (zh) | 2016-03-23 |
CN105426483B true CN105426483B (zh) | 2019-01-11 |
Family
ID=55504695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510807517.6A Active CN105426483B (zh) | 2015-11-19 | 2015-11-19 | 一种基于分布式系统的文件读取方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105426483B (zh) |
WO (1) | WO2017084563A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426483B (zh) * | 2015-11-19 | 2019-01-11 | 华为技术有限公司 | 一种基于分布式系统的文件读取方法及装置 |
CN106527993B (zh) * | 2016-11-09 | 2019-08-30 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中的海量文件储存方法及装置 |
CN107025257B (zh) * | 2016-11-30 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种事务处理方法及装置 |
CN108241548A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种基于分布式系统的文件读取方法 |
CN109819005B (zh) * | 2017-11-22 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种信息获取方法及其设备、系统、终端、服务器 |
CN110309100B (zh) * | 2018-03-22 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 一种快照对象生成方法和装置 |
CN109542872B (zh) * | 2018-10-26 | 2021-01-22 | 金蝶软件(中国)有限公司 | 数据读取方法、装置、计算机设备和存储介质 |
CN109726036B (zh) * | 2018-11-21 | 2021-08-20 | 华为技术有限公司 | 一种存储系统中的数据重构方法和装置 |
CN109558086B (zh) * | 2018-12-03 | 2019-10-18 | 浪潮电子信息产业股份有限公司 | 一种数据读取方法、系统及相关组件 |
CN109634526B (zh) * | 2018-12-11 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种基于对象存储的数据操作方法及相关装置 |
CN110442558B (zh) * | 2019-07-30 | 2023-12-29 | 深信服科技股份有限公司 | 数据处理方法、分片服务器、存储介质及装置 |
CN112910936B (zh) * | 2019-11-19 | 2023-02-07 | 北京金山云网络技术有限公司 | 数据处理方法、装置、系统、电子设备及可读存储介质 |
CN112783866B (zh) * | 2021-01-29 | 2024-06-14 | 深圳追一科技有限公司 | 数据读取方法、装置、计算机设备和存储介质 |
CN114528258B (zh) * | 2022-02-18 | 2022-12-27 | 北京百度网讯科技有限公司 | 文件异步处理方法、装置、服务器、介质、产品及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725655B2 (en) * | 2006-02-16 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Method of operating distributed storage system in which data is read from replicated caches and stored as erasure-coded data |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334797B (zh) * | 2008-08-04 | 2010-06-02 | 中兴通讯股份有限公司 | 一种分布式文件系统及其数据块一致性管理的方法 |
EP3467671B1 (en) * | 2011-04-12 | 2020-07-15 | Amadeus S.A.S. | Cache memory structure and method |
CN103207866B (zh) * | 2012-01-16 | 2016-06-22 | 中国科学院声学研究所 | 一种基于分块策略的文件存储方法及系统 |
CN103729352B (zh) * | 2012-10-10 | 2017-07-28 | 腾讯科技(深圳)有限公司 | 分布式文件系统对多个副本数据进行处理的方法及该系统 |
US9772787B2 (en) * | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
CN105426483B (zh) * | 2015-11-19 | 2019-01-11 | 华为技术有限公司 | 一种基于分布式系统的文件读取方法及装置 |
-
2015
- 2015-11-19 CN CN201510807517.6A patent/CN105426483B/zh active Active
-
2016
- 2016-11-15 WO PCT/CN2016/105957 patent/WO2017084563A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725655B2 (en) * | 2006-02-16 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Method of operating distributed storage system in which data is read from replicated caches and stored as erasure-coded data |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
Non-Patent Citations (2)
Title |
---|
"分布式存储系统文件级连续数据保护技术研究";姚杰;《中国博士学位论文全文数据库 信息科技辑》;20111115;全文 |
"大规模Lustre集群文件系统关键技术的研究";钱迎进;《中国博士学位论文全文数据库 信息科技辑》;20120415;全文 |
Also Published As
Publication number | Publication date |
---|---|
WO2017084563A1 (zh) | 2017-05-26 |
CN105426483A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426483B (zh) | 一种基于分布式系统的文件读取方法及装置 | |
US10592873B2 (en) | Edit transactions for blockchains | |
CN110557964B (zh) | 数据写入方法、客户端服务器和系统 | |
CN104765661B (zh) | 一种云存储服务中元数据服务节点的多节点热备方法 | |
CN105242879B (zh) | 一种数据存储方法以及协议服务器 | |
US11115804B2 (en) | Subscription to dependencies in smart contracts | |
CN108628541B (zh) | 一种文件存储的方法、装置及存储系统 | |
CN113485636B (zh) | 一种数据访问方法、装置和系统 | |
CN103294610A (zh) | 可重复使用的内容可寻址存储 | |
US11263080B2 (en) | Method, apparatus and computer program product for managing cache | |
CN108616574A (zh) | 管理数据的存储方法、设备及存储介质 | |
US20130198198A1 (en) | Generating method, generating system, and recording medium | |
CN110245129B (zh) | 一种分布式全局数据去重方法和装置 | |
CN103491152A (zh) | 分布式文件系统中元数据获取方法、装置及系统 | |
JP2021510222A (ja) | データ処理方法、装置、およびコンピューティングデバイス | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN107211003A (zh) | 分布式存储系统及管理元数据的方法 | |
CN108829342A (zh) | 一种日志存储方法、系统及存储装置 | |
CN111475519A (zh) | 数据缓存方法及装置 | |
CN102682414B (zh) | 医疗信息管理系统及医疗信息管理方法 | |
JP4140910B2 (ja) | データ処理装置、データ管理装置、データ処理方法、データ管理方法、データ処理プログラム、データ管理プログラム、及び情報システム | |
US11606442B2 (en) | Subscription to edits of blockchain transaction | |
CN117591009A (zh) | 一种数据管理方法、存储装置及服务器 | |
US11507278B2 (en) | Proactive copy in a storage environment | |
CN107295059A (zh) | 业务推送量的统计系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |