本发明专利技术的实施方式提供了一种文件存储方法。该方法包括:响应于接收发送设备发送的、针对待存储文件的数据块计算的哈希值列表,判断待存储文件的哈希值列表和已存储文件的哈希值列表是否匹配;如果不匹配,则通知发送设备从待存储文件中与第一个不匹配的哈希值对应的数据块开始发送待存储文件的内容,直至待存储文件的内容结束,并根据接收到的数据块来存储待存储文件。本发明专利技术的实施方式通过文件级别的存储方式,可以以较小的代价维护文件索引,从而降低接收设备的处理资源和性能开销。此外,本发明专利技术的实施方式提供了一种文件存储设备,例如,服务器。此外,本发明专利技术的实施方式还提供了一种文件发送方法,以及一种文件发送设备,例如客户端。
【技术实现步骤摘要】
本专利技术的实施方式涉及互联网领域,更具体地,本专利技术的实施方式涉及文件存储方法和设备、文件发送方法和设备。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。在互联网高速发展的今天,利用互联网进行设备之间的数据交互也越来越普遍,例如,不同用户之间可能会采用不同的客户端传输文件,或者,用户还可能会通过客户端向服务器上传文件,再或者,服务器之间可能还会存在文件互相传输和共享的情况。以用户通过客户端向服务器上传文件为例,对于服务器来讲,服务器可以保存多个用户通过多个客户端上传的图片或者文字等,并且其可以与海量客户端进行文件交互,或者将保存的文件提供给更多的用户进行下载。一般情况下,因为网络环境比较复杂,各个设备之间的对于文件的存储情况并不一致,所以为了避免文件各个设备之间的重复传输,在接收设备方可以将文件分成若干数据块进行存储,这样的话,发送设备如果需要发送某个文件至接收设备进行存储,就需要先将该文件的各个数据块的哈希值都发送给接收设备,由接收设备根据哈希值判断该文件的某个或者某些数据块,与自身存储的某个或某些数据块是否重复,在存在数据块重复的情况下,就不再需要发送设备重复发送该文件中这些重复的数据块。
技术实现思路
但是,本专利技术人在研究 过程中发现,在现有技术中采用的在接收设备方进行数据块级别的存储方式,需要为每一个数据块都建立对应的索引,而在接收设备方实现海量数据块对应的索引维护的代价非常大,就会导致接收设备的处理资源和性能开销较大。进一步地,接收设备在查询一个文件的时候,因为数据块索引量较大,就需要接收设备耗费更多的资源来查找一个文件,使得文件查找的复杂度很高,因此文件查询效率也就较低。再进一步地,因为采用数据块级别的存储方式,会使得一个文件的多个数据块一般情况下并不是连续存储的,这就使接收设备在读取文件的时候的磁盘输入输出(10, Input/Output)代价相对较高,这就影响了接收设备对文件的读取效率,同时也会占用较多的接收设备的磁盘IO资源。再从发送设备来看,由于文件在接收设备方并不是连续存储的,而是分散为各个数据块进行存储,所以发送设备在发送文件之前,需要计算待存储文件的全部数据块的哈希值并将其传送给接收设备,才能使接收设备判断得出都有哪些数据块存在重复的结果,而这对于发送设备来讲,就意味着那些不重复的数据块的哈希值也需要发送给接收设备,这无形中也会降低发送设备向接收设备发送文件的效率。为此,非常需要一种改进的文件存储方法和设备,以及一种改进的文件发送方法和设备,以解决现有技术的文件存储方法导致的接收设备的处理资源和性能开销较大这一技术问题。进一步地,在文件存储至接收设备之后,还能提高接收设备端的文件查询效率。进一步地,还能提高发送设备发送文件的效率。在本上下文中,本专利技术的实施方式期望提供一种文件存储方法和设备,以及一种文件发送方法和设备。在本专利技术实施方式的第一方面中,提供了一种文件存储方法,例如可以包括:响应于接收发送设备发送的、针对待存储文件的数据块计算的哈希值列表,判断所述待存储文件的哈希值列表和已存储文件的哈希值列表是否匹配;如果不匹配,则通知所述发送设备从所述待存储文件中与第一个不匹配的哈希值对应的数据块开始发送所述待存储文件的内容,直至所述待存储文件的内容结束,并根据接收到的数据块来存储所述待存储文件。在本专利技术的一个实施方式中,其中,所述待存储文件中的数据块按照文件内容从前到后的顺序进行排序,且所述待存储文件中的数据块按照预设的发送顺序划分为若干数据块集合;所述判断所述待存储文件的哈希值列表和已存储文件的哈希值列表是否匹配,包括:按照所述各数据块集合的发送顺序以及数据块集合内各数据块的排序,依次判断所述各数据块集合中各个数据块的哈希值是否与所述已存储文件的哈希值列表中的各个哈希值匹配;其中,所述已存储文件的哈希值列表中各个哈希值的排列顺序与所述待存储文件的各数据块的排序相同。在本专利技术的另一实施方式中,其中,所述待存储文件中的第一个数据块集合中仅包括第一个数据块;则所述依次判断所述各数据块集合中各个数据块的哈希值是否与所述已存储文件的哈希值列表中的各个哈希值匹配,包括:判断所述待存储文件的第一个数据块的哈希值是否与所述已存储文 件的哈希值列表中的第一个哈希值匹配,如果是,则针对发送设备继续发送的其他数据块集合,依次判断所述其他数据块集合中各个数据块的哈希值是否与对应的所述已存储文件的哈希值列表中的其他哈希值匹配。在本专利技术的另一实施方式中,其中,如果所述待存储文件的第一个数据块的哈希值与所述已存储文件的哈希值列表中的第一个哈希值不匹配,则所述根据接收到的数据块来存储所述待存储文件,包括:将所述接收到的数据块确定为所述待存储文件的全部内容;存储所述待存储文件。在本专利技术的再一实施方式中,其中,所述已存储文件的文件标识、存储路径和哈希值列表保存在元数据索引表中,则所述方法例如还可以包括:将所述待存储文件的文件标识、存储路径和哈希值列表对应保存至所述元数据索引表中。在本专利技术的另一实施方式中,其中,所述待存储文件的哈希值列表包括针对所述待存储文件的部分或全部数据块计算的哈希值;如果所述待存储文件的所述哈希值列表包括针对所述待存储文件的部分数据块计算的哈希值,且所述待存储文件的所述哈希值列表与所述已存储文件的哈希值列表匹配,例如还可以包括:通知所述发送设备继续发送针对所述待存储文件的剩余部分或剩余全部数据块计算的哈希值列表。在本专利技术的又一个实施方式中,其中,所述根据接收到的数据块来存储所述待存储文件,包括:将所述接收到的数据块确定为第一文件内容,并和第二文件内容组合为所述待存储文件,其中,所述第二文件内容拷贝自所述已存储文件中与所述待存储文件中匹配的文件内容;存储所述待存储文件。在本专利技术的又一个实施方式中,其中,所述待存储文件的哈希值列表包括针对所述待存储文件的部分或全部数据块计算的哈希值;如果所述待存储文件的所述哈希值列表包括针对所述待存储文件的全部数据块计算的哈希值,且所述待存储文件的哈希值列表和已存储文件的哈希值列表匹配,例如还可以包括:将所述已存储文件的存储路径返回至所述发送设备。在本专利技术的再一个实施方式中,其中,所述已存储文件的文件标识、存储路径和哈希值列表保存在元数据索引表中。在本专利技术的再一个实施方式中,所述元数据索引表还包括已存储文件的引用计数,则将所述已存储文件的存储路径返回至发送设备之后,还包括:将所述已存储文件对应的引用计数增加一。在本专利技术实施方式的第二方面中,提供了一种文件发送方法,包括:以数据块为单位计算并发送待存储文件的哈希值列表至接收设备,以便所述接收设备判断所述待存储文件的哈希值列表和已存储文件的哈希值列表是否匹配;响应于从所述接收设备接收判断结果为不匹配的通知,从所述待存储文件中与第一个不匹配的哈希值对应的数据块开始向所述接收设备发送所述待存储文件的内容,直至所述待存储文件的内容结束。在本专利技术的一个实施方式中,其中,所述待存储本文档来自技高网...
【技术保护点】
一种方法,包括:响应于接收发送设备发送的、针对待存储文件的数据块计算的哈希值列表,判断所述待存储文件的哈希值列表和已存储文件的哈希值列表是否匹配;如果不匹配,则通知所述发送设备从所述待存储文件中与第一个不匹配的哈希值对应的数据块开始发送所述待存储文件的内容,直至所述待存储文件的内容结束,并根据接收到的数据块来存储所述待存储文件。
【技术特征摘要】
【专利技术属性】
技术研发人员:王磊,周欣然,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。