CN105205011B - 一种获取文件块引用计数的方法、普通客户端和管理客户端 - Google Patents
一种获取文件块引用计数的方法、普通客户端和管理客户端 Download PDFInfo
- Publication number
- CN105205011B CN105205011B CN201410293722.0A CN201410293722A CN105205011B CN 105205011 B CN105205011 B CN 105205011B CN 201410293722 A CN201410293722 A CN 201410293722A CN 105205011 B CN105205011 B CN 105205011B
- Authority
- CN
- China
- Prior art keywords
- files
- blocks
- reference count
- storage system
- cloud storage
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种获取文件块引用计数的方法、普通客户端和管理客户端,能够实现大量用户同时对一个文件块的引用计数进行修改。该方法包括:所述普通客户端向云存储系统发起对文件块的访问请求;所述普通客户端确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包含所述文件块的唯一标识信息;所述普通客户端根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。该方法适用于存储技术领域。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种获取文件块引用计数方法、普通客户端和管理客户端。
背景技术
云存储是指企业或个人通过供应商提供的云存储服务,将数据备份到云存储系统上,以节约成本,更好的备份本地数据以及异地处理日常数据。
云存储服务的成本与两个重要因素有关:存储的数据量和存储的时间。由于存储的时间是无法缩短的,因此,减少存储的数据量成为降低将数据备份到云存储系统中的成本的最直接途径。
要减少存储的数据量,通常采用重复数据删除的方法,即,将存储到云存储系统的文件切分成很多块,相同的块在云存储系统中只存储一份,其他的被删除。
要实现重复数据删除,需要有效记录每个块被引用的次数,在现有技术中,用户面向一个专用代理端,该代理端面向云存储系统,用于对全局的引用计数锁进行控制和修改。当用户需要对一个文件块进行引用计数的修改时,向所述代理端发送修改请求。
通过引用计数锁进行引用计数的修改,每次只有一个请求能够修改引用计数。
然而,采用这种方式会带来如下两个问题:
第一个问题,必须采用专用的代理端,带来了较为昂贵的成本开销。
第二个问题,采用专用代理端使用锁机制进行引用计数,当海量用户需要同时修改某个块的引用计数时,只能按照顺序,一次只有一个用户的请求能够修改引用计数,无法并行修改,导致处理速度较低。
发明内容
本发明的实施例提供一种获取文件块引用计数的方法、普通客户端和管理客户端,通过该方法,不但能够解决使用专用代理端所带来的海量用户同时对一个文件块的引用计数进行修改时专用代理端处理速度较慢的问题,还避免了搭建专用代理端所带来的昂贵成本。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种获取文件块引用计数的方法,该方法应用于云存储架构,该架构包括云存储系统和多个客户端,其中,所述多个客户端与所述云存储系统相连接,所述云存储系统包括处理器和存储器,所述多个客户端中的一个客户端作为管理客户端,其他客户端作为普通客户端,该方法包括:
所述普通客户端向云存储系统发起对文件块的访问请求;
所述普通客户端确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包含所述文件块的唯一标识信息;
所述普通客户端根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。
在第一种可能的实施方式中,结合第一方面,所述文件块的唯一标识信息包含所述文件块的指纹信息、客户端信息、进程信息和时间信息。
第二方面,本发明实施例提供了一种获取文件块引用计数的方法,该方法应用于云存储架构,该架构包括云存储系统和多个客户端,其中,所述多个客户端与所述云存储系统相连接,所述云存储系统包括处理器和存储器,所述多个客户端中的一个客户端作为管理客户端,其他客户端作为普通客户端,该方法包括:
所述管理客户端从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息;
所述管理客户端根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数。
在第一种可能的实施方式中,结合第二方面,所述获取所述文件块的引用计数之后,该方法还包括:
若获取所述文件块的引用计数为0,所述管理客户端向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求所述处理器将所述文件块以及所述所有所述普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
在第二种可能的实施方式中,结合第二方面或第一种可能的实施方式,所述获取所述文件块的引用计数之后,该方法还包括:
所述管理客户端保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息;
所述管理客户端向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
在第三种可能的实施方式中,结合第二方面或第一种可能的实施方式,所述获取所述文件块的引用计数之后,该方法还包括:
所述管理客户端向所述云存储系统发送一个状态对象,所述状态对象用于表示所述文件块的引用计数,所述状态对象包含所述文件块的指纹信息;
所述管理客户端向所述云存储系统发送第三请求信息,所述第三请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
第三方面,本发明实施例提供了一种普通客户端,所述普通客户端与云存储系统直接相连接,所述云存储系统包括处理器和存储器,所述普通客户端包括:第一发送单元,确定单元和第二发送单元;
所述第一发送单元,用于向云存储系统发起对文件块的访问请求;
所述确定单元,用于确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包括所述文件块的唯一标识信息;
所述第二发送单元,用于根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。
在第一种可能的实施方式中,结合第三方面,所述文件块的唯一标识信息包含所述文件块的指纹信息、客户端信息、进程信息和时间信息。
第四方面,本发明实施例提供了一种管理客户端,所述管理客户端与云存储系统直接相连接,所述云存储系统包括处理器和存储器,所述管理客户端包括:第一获取单元和第二获取单元;
所述第一获取单元,用于从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息;
所述第二获取单元,用于根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数。
在第一种可能的实施方式中,结合第四方面,所述管理客户端还包括:发送单元;
所述发送单元,用于若所述文件块的引用计数为0,向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求所述处理器将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
在第二种可能的实施方式中,结合第四方面或第一种可能的实施方式,所述管理客户端还包括:记录单元;
所述记录单元,用于保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息;
所述发送单元还用于:向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
在第三种可能的实施方式中,结合第四方面或第一种可能的实施方式,所述发送单元还用于:
向所述云存储系统发送一个状态对象,所述状态对象用于表示所述文件块的引用计数,所述状态对象包含所述文件块的指纹信息;
向所述云存储系统发送第三请求信息,所述第三请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
本发明实施例提供了一种获取文件块引用计数的方法、普通客户端和管理客户端,该方法包括:所述普通客户端向云存储系统发起对文件块的访问请求;所述普通客户端确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包含所述文件块的唯一标识信息;所述普通客户端根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。通过该方法,普通客户端向云存储系统发送对文件块所对应的引用计数对象,使得管理客户端根据所述文件块所对应的所有普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数,不需要专用代理端控制和修改引用计数锁来修改一个文件块的引用计数,实现了大量客户端同时对一个文件块的引用计数进行修改的目的,并且节省了搭建专用代理端所带来的昂贵成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有技术提供的云存储结构示意图;
图2为一种本发明实施例提供的云存储结构示意图;
图3为一种获取文件块引用计数的方法的流程图;
图4为另一种获取文件块引用计数的方法的流程图;
图5为又一种获取文件块引用计数的方法的流程图;
图6为一种普通客户端示意图;
图7为一种管理客户端示意图一;
图8为一种管理客户端示意图二;
图9为一种管理客户端示意图三;
图10为另一种普通客户端示意图;
图11为一种管理客户端示意图四;
图12为一种管理客户端示意图五。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图1,示例性的描述了一种现有技术中的云存储系统结构图,如图1所示,客户端与一个专用代理端相连接,专用代理端与云存储系统相连接,所述云存储系统包括处理器和存储器,所述处理器用于实现文件或文件块的接收、获取等功能,所述存储器用于对文件或文件块进行存储。在存储器中,每个客户端被分配有一个独立的虚拟文件存储空间,所有客户端共享一个文件块存储空间,其中,所示虚拟文件存储空间1,虚拟文件存储空间2,虚拟文件存储空间3和虚拟文件存储空间4分别是客户端1,客户端2,客户端3和客户端4的独立的虚拟文件存储空间。
所述虚拟文件存储空间,用于存储虚拟文件,所述虚拟文件记录的是原文件的文件名,以及原文件被切分为文件块后每个文件块的指纹等信息。
所述文件块存储空间,用于存储原文件被切分后的文件块。
在客户端上传、更新或删除一个文件块的过程中,需要对该文件块的引用计数进行修改,此时,客户端将修改所述文件块引用计数的请求上报至专用代理端,专用代理端通过控制和修改引用计数锁对所述文件块的引用计数进行修改,但是,若多个用户(客户端)同时请求对一个文件块的引用计数进行修改,专用代理端通过引用计数锁每次只能完成一个修改请求,导致处理效率较低。
为解决使用专用代理端带来的大量用户同时对一个文件块的引用计数进行修改时专用代理端处理速度较慢的问题,结合图2,本发明方案提出如下云存储架构,省略专用代理端,该架构包括云存储系统和多个客户端,其中,所述多个客户端与所述云存储系统相连接,所述云存储系统包括处理器和存储器,所述多个客户端中的一个客户端作为管理客户端,其他客户端作为普通客户端,每个普通客户端在云存储系统的存储器中被分配有一个独立的虚拟文件存储空间,所有普通客户端共享一个文件块存储空间。
具体的,结合图3,本发明实施例提供了一种获取文件块引用计数的方法,该方法的执行主体是普通客户端,该方法包括:
301、所述普通客户端向云存储系统发起对文件块的访问请求。
具体的,所述普通客户端对文件块的访问请求包括对一个文件块的上传、更新、下载和删除等请求,所述文件块是通过将一个文件切分成多块得到的。
302、所述普通客户端确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包含所述文件块的唯一标识信息。
普通客户端在进行文件的上传,更新和删除的过程中,需要对所述文件的文件块进行引用计数的修改,所述普通客户端在进行文件下载的过程中,不需要对所述文件块的引用计数进行修改,具体的,本发明实施例从如下四个过程说明所述普通客户端如何判断是否对一个文件块的引用计数进行修改,以及若对所述文件块的引用计数进行修改,判断对该文件块的引用计数加1还是对该文件块的引用计数减1。
3021:所述普通客户端进行文件的上传过程。
普通客户端将文件切分成多个文件块,并通过云存储系统接口的列举(List)功能判断所述客户端的虚拟文件存储空间中是否有与该文件具有相同文件名的文件,若有,对所述文件进行更新,若没有,所述普通客户端获取一个本地的空的虚拟文件,和一个本地的用于存放文件块的指纹信息的缓存。
具体的,所述文件块的指纹信息是所述文件块的身份信息,可以唯一表示该文件块,可以通过消息摘要算法(Message Digest Algorithm,MD5)或安全哈希算法(SecureHash Algorithm,SHA1)计算得来,也可以根据其他算法计算得来,本发明实施例对此不做限定。
需要说明的是,对于同一个云存储系统,需要使用同一种算法计算文件块的指纹信息。
对于每一个文件块,计算其指纹信息,并将其指纹信息加入到本地虚拟文件中,需要说明的是,如果该文件中具有两个或多个相同指纹信息的文件块,则每个文件块的指纹信息都要被加入到本地虚拟文件中;
当本地的用于存放文件块的指纹信息的缓存中包含该文件中所有具有不同指纹信息的文件块的指纹信息时,例如,该文件被切分为5个文件块,其中,文件块1和文件块2具有相同的指纹信息,文件块3、文件块4和文件块5的指纹信息两两不同且与文件块1和文件块2的指纹信息不同,此时所述本地的用于存放文件块的标识信息的缓存中包含有文件块3文件块4和文件块5的指纹信息,以及文件块1和文件块2的一个指纹信息时,所述客户端通过云存储系统接口的列举功能判断所述本地缓存中的文件块的指纹信息所对应的文件块是否存在于云存储系统的文件块存储空间中;
第一种情况,所述文件块存储空间存在与所述本地缓存中的指纹信息相对应的文件块,所述普通客户端不需要向文件块存储空间上传所述文件块,确定所述文件块的引用计数类型为引用计数加1;
第二种情况,所述文件块存储空间不存在与所述本地缓存中的指纹信息相对应的文件块,所述普通客户端需要向所述文件块存储空间上传所述文件块,确定所述文件块的引用计数类型引用计数加1。
3022:所述普通客户端进行文件更新的过程。
结合3021,普通客户端在进行文件上传的过程中,通过云存储系统接口的列举功能判断所述普通客户端的虚拟文件存储空间中是否有与该文件具有相同文件名的文件,若有,对所述文件进行更新。
具体的更新过程为:所述普通客户端将待上传文件切分成块,并从其独立的虚拟文件存储空间中获取与待上传的文件的虚拟文件的文件名相同的虚拟文件;
所述普通客户端将待上传文件的虚拟文件和从虚拟文件存储空间获取的虚拟文件进行比较,具体的比较过程如下:
举例来说,待上传文件的虚拟文件为虚拟文件A,从客户端的虚拟文件存储空间获取的虚拟文件为虚拟文件B,虚拟文件A和虚拟文件B具有相同的文件名,虚拟文件A包含的文件块的指纹信息的顺序为文件块1,文件块2,文件块3,文件块2和文件块4的指纹信息,虚拟文件B包含的文件块的指纹信息的顺序为文件块1,文件块3,文件块2,文件块3和文件块5的指纹信息。通过比较,虚拟文件A和虚拟文件B共同包含的是文件块1,文件块2和文件块3的指纹信息,只有虚拟文件A包含的是文件块4的指纹信息,只有虚拟文件B包含的是文件块5的指纹信息。
此时,所述普通客户端需要将文件块4上传至云存储系统的文件块存储空间,并根据3021的文件上传过程判断所述文件块存储空间中是否已经存在文件块4,若存在,所述普通客户端判断不需要将文件块4上传至文件块存储空间,所述普通客户端确定所述文件块4的引用计数对象的类型为引用计数加1;
若不存在,所述普通客户端判断需要将文件块4上传至文件块存储空间,所述普通客户端判断所述文件块4的引用计数对象的类型为引用计数加1。
并且,对于文件块5,由于虚拟文件B中有文件块5,而待更新的文件的虚拟文件中没有文件块5,因此,所述普通客户端判断所述文件块5的引用计数对象的类型为引用计数减1。
比较结束后,所述普通客户端向所述云存储系统发送一个请求消息,所述云存储系统的处理器根据所述请求消息在所述普通客户端所对应的虚拟文件存储空间中删除所述虚拟文件B。
3023:所述普通客户端进行文件下载的过程。
所述普通客户端要下载一个文件,首先获取一个本地的原始文件,并根据所述待下载的文件的文件名,在云存储系统中所述普通客户端独有的虚拟文件存储空间中获取所述待下载的文件的虚拟文件;
根据所述待下载的文件的虚拟文件中各个文件块的指纹信息,在文件块存储空间中获取所述虚拟文件中各个文件块的指纹信息所对应的文件块,并将所述文件块添加到本地原始文件中。
在所述普通客户端进行文件下载的过程中,不需要对文件块的引用计数进行修改。
3024:所述普通客户端进行文件删除的过程。
普通客户端要删除一个文件,首先建立一个本地的用于存放文件块指纹信息的缓存,并在所述客户端独有的云存储系统的虚拟文件存储空间中获得待删除的文件的虚拟文件;
将待删除的文件的虚拟文件中每个文件块的指纹信息放入所述缓存中,其中,若所述虚拟文件中的至少两个文件块的指纹信息相同,则只将该指纹信息放入所述缓存中一次即可。
此时,所述客户端判断所述缓存中存在的指纹信息所对应的文件块的引用计数对象的类型为引用计数减1。
上述3021至3024分别为在本发明实施例提供的云存储结构中,普通客户端向云存储系统发起对文件块的访问请求,例如请求上传、更新、下载和删除文件后,判断是否对一个文件块的引用计数进行修改,以及若判断对一个文件块的引用计数进行修改,确定对该文件块的引用计数加1还是减1。
由于在本发明实施例中,省略了通过控制修改引用计数锁实现对一个文件块进行引用计数的代理端,所述客户端通过向云存储系统的所有客户端共享的文件块存储空间上传一个用于表示对一个文件块引用计数进行修改的引用计数对象来实现对一个文件块的引用计数进行修改的目的,具体的,所述文件块的对象包含两种类型,即对一个文件块增加引用计数的对象和减少引用计数的对象,分别表示对一个文件块的引用计数加1和对一个文件的引用计数减1。
通过3021到3024的过程,客户端可以确定文件块的引用计数对象的类型。
303、所述普通客户端根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。
具体的,若所述普通客户端判断将所述文件块的引用计数对象的类型为引用计数加1,所述普通客户端向云存储系统发送一个增加引用计数的对象,所述增加引用计数的对象用于表示对所述文件块的引用计数加1;
若所述普通客户端判断将所述文件块的引用计数对象的类型为引用计数减1,所述客户端向所述云存储系统发送一个减少引用计数的对象,所述减少引用计数的对象用于表示对所述文件块的引用计数减1,其中,所述增加引用计数的对象和所述减少引用计数的对象包含所述文件块的唯一标识信息。
需要说明的是,所述客户端将所述文件块的引用计数的对象发送至云存储系统的文件块存储空间。
具体的,结合3021所述的客户端的文件上传过程,在第一种情况下,所述文件块存储空间存在与所述本地缓存中的指纹信息相对应的文件块,所述普通客户端不需要向文件块存储空间上传所述文件块,判断所述文件块的引用计数加1,此时,所述普通客户端向所述文件块存储空间上传一个增加引用计数的对象。
需要说明的是,所述增加引用计数的对象或减少引用计数的对象通常为一个1B大小的空文件,用所述空文件的文件名携带所述文件块的唯一标识信息。具体的,所述文件块的唯一标识信息包含所述文件块的指纹信息,所述文件块所对应的客户端信息,进程信息和时间信息。
具体的,所述增加引用计数的对象的命名格式可以为:add_id_len_user_process_time;
所述减少引用计数的对象的命名格式可以为:del_id_len_user_process_time;
其中,id_len为所述文件块的指纹信息,user_process_time分别代表了所述文件块所对应的用户(客户端)信息,进程信息和时间信息。
在所述增加或减少引用计数对象的命名中增加user_process_time的原因是,具有相同命名的增加或减少引用计数的对象在所述文件块存储空间中只能存在一个,其他的会被覆盖掉,增加user_process_time信息可以区分不同用户,不同进程和不同时间的各个客户端上传的用于增加或减少引用计数的对象,以保证一个文件块引用计数的准确性。
基于此,在普通客户端上传一个文件块的增加或减少引用计数的对象时,所述文件块的指纹信息,所述客户端的信息,所述文件块所对应的进程信息和所述增加或减少引用计数的时间信息,构成了所述文件块的唯一标识信息。
举例来说,客户端1的两个进程,分别为进程1和进程2同时在时间1对一个文件块的引用计数加1,此时,客户端在时间1同时上传两个增加引用计数的对象,所述增加引用计数的对象的文件名分别为add_id_len_user1_process1_time1和add_id_len_user1_process2_time2,其中,id_len对应的是所述文件块的指纹信息。
需要说明的是,所述文件块的唯一标识信息中也可以不包含文件块的进程信息和时间信息,举例来说,同一用户在同一时间有多个进程对同一个文件块的引用计数加1,或同一用户的同一进程在不同时间对同一文件块的引用计数加1,此时,该用户(客户端)在上传该文件块所对应的增加引用计数的对象时,可以通过编号的方式按次序上传,举例来说,客户端1的两个进程,分别为进程1和进程2同时在时间1对一个文件块的引用计数加1,此时,客户端在时间1同时上传两个增加引用计数的对象,其命名可以分别为add_id_len_user1_1和add_id_len_user1_2,之后上传的增加引用计数的对象的编号可以依次增加。
除此之外,任何可以区分不同客户端,不同进程,不同时间并发对同一文件块的引用计数进行修改的增加或减少引用计数的对象的命名方法都在本发明的包含范围之内。
在第二种情况下,所述文件块存储空间不存在与所述本地缓存中的指纹信息相对应的文件块,所述普通客户端需要向所述文件块存储空间上传所述文件块,判断所述文件块的引用计数对象的类型为引用计数加1,此时,所述普通客户端向文件块存储空间上传一个状态为0的对象,所述状态为0的对象用于表示所述普通客户端在上传所述文件块之前,所述文件块的引用计数为0,并且所述状态为0的对象带有所述文件块的指纹信息。所述普通客户端上传所述状态为0的对象后,向所述文件块存储空间上传所述文件块,并向所述文件块存储空间上传一个增加引用计数的对象。
需要说明的是,若一个文件在切分成文件块的过程中,在文件的尾部剩余很少的一部分数据,其数据量远小于一个文件块的数据量,此时,可以将这部分数据直接放入该文件所对应的虚拟文件中,并将该文件所对应的虚拟文件放入普通客户端在云存储系统所独有的虚拟文件存储空间中。
举例来说,普通客户端1将文件1切分成5个文件块后,在文件的尾部还剩余一部分数据,所述普通客户端1可以将这部分数据直接放入所述文件1所对应的虚拟文件中,此时所述虚拟文件中包含所述文件的文件名,第1到第5个文件块的标识信息以及文件1被切分成5个文件块后剩余的数据。
所述普通客户端将所述待上传文件的虚拟文件上传至所述客户端在所述云存储系统独有的虚拟文件存储空间中,并释放本地用于存放文件块指纹信息的缓存以及所述本地的虚拟文件,至此,所述客户端的文件上传过程完成。
根据3022所述的普通客户端的文件更新过程,举例来说,对于文件块4,若通过3021所述的文件上传过程判断文件块存储空间中已经存在所述文件块4,则所述普通客户端向所述文件块存储空间中上传一个增加引用计数的对象,若所述文件块存储空间中不存储所述文件块4,所述普通客户端向文件块存储空间上传一个状态为0的对象,所述状态为0的对象用于表示所述普通客户端在上传所述文件块4之前,所述文件块4的引用计数为0。所述普通客户端上传所述状态为0的对象后,向所述文件块存储空间上传所述文件块4,并向所述文件块存储空间上传一个增加引用计数的对象。
对于文件块5,所述普通客户端判断所述文件块5的引用计数对象的类型为引用计数减1,则所述普通客户端向所述文件块存储空间上传一个减少引用计数的对象,所述减少引用计数的对象带有所述文件块5的唯一标识信息,所述减少引用计数的对象用于表示对所述文件块的引用计数减1,所述减少引用计数的对象可以是一个1B大小的空文件,用文件名存放文件块5的标识信息。
最后,所述普通客户端将虚拟文件A上传至所述客户端的虚拟文件存储空间,并释放本地的虚拟文件A和虚拟文件B。
结合3023所述的文件的下载过程,在普通客户端进行文件下载的过程中,不需要对文件块的引用计数进行修改。
若所述原文件在进行文件切分成块的过程中,在文件的尾部有少量的数据不足以构成一个文件块,这些数据被存放在所述文件对应的虚拟文件中,那么,所述普通客户端在文件下载的过程中,需要从所述虚拟文件中获取这部分数据,并将这部分数据放入本地原始文件中。
最后,所述普通客户端将获取至本地的虚拟文件删除。
结合3024所述的普通客户端进行文件删除的过程,所述普通客户端判断所述缓存中存在的指纹信息所对应的文件块的引用计数减1,此时,所述普通客户端向所述文件块存储空间上传引用计数减少的对象,其中,所述引用计数减少的对象的个数与所述缓存中存在的指纹信息的个数相同,所述引用计数减少的对象分别含有所述缓存中的指纹信息所对应的文件块的唯一标识信息。
举例来说,所述普通客户端要删除一个文件,该文件被切分为五个文件块,其顺序为文件块1,文件块2,文件块1,文件块3和文件块4,此时,所述普通客户端的本地用于存放文件块标识信息的缓存中分别含有文件块1,文件块2,文件块3和文件块4这四个文件块的标识信息,所述普通客户端向所述文件块存储空间上传四个用于减少引用计数的对象,分别为对象1,对象2,对象3和对象4,其中,对象1,对象2,对象3和对象4分别带有文件块1,文件块2,文件块3和文件块4的唯一标识信息。
最后,所述普通客户端请求云存储系统删除所述普通客户端所对应的虚拟文件空间中所述需要删除的文件的虚拟文件,以及从虚拟文件存储空间获得的虚拟文件,并释放用于存放文件块的指纹信息的缓存。
所述云存储系统中的管理客户端,从所述云存储系统获取的与所述云存储系统相连的所有普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,确定所述文件块的引用计数。
本发明实施例提供了一种云存储的方法,该方法包括:普通客户端向云存储系统发起对文件块的访问请求,其中,所述文件块为一个数据块,所述普通客户端为所述普通客户端;所述普通客户端确定所述文件块的引用计数对象的类型,其中,所述引用计数对象的类型包括引用计数加1或引用计数减1;所述普通客户端根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。在这一过程中,不需要专用代理端控制和修改引用计数锁来修改一个文件块的引用计数,大量用户可以通过向云存储系统发送一个文件块的引用计数对象,避免了大量用户对同一文件块的引用计数同时进行修改时,使用专用代理端处理器速度较慢的问题,同时节省了搭建专用代理端所带来的巨大成本。
本发明实施例提供了一种获取文件块引用计数的方法,该方法的执行主体是与所述云存储系统的存储器中的文件块存储空间直接相连的管理客户端,结合图4,该方法包括:
401、所述管理客户端从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息。
举例来说,对于云存储系统的文件块存储空间中的一个文件块1,管理客户端通过云存储系统接口的列举功能获取带有文件块1指纹信息所有引用计数对象(所述带有文件块1指纹信息的所有引用计数对象是与该云存储系统相连的所有普通客户端发送至所述云存储系统的,包括用于表示对所述文件块1的引用计数加1或对所述文件块引用计数减1的引用计数对象),根据所述文件块1所对应的所有引用计数对象的个数和类型,就可以获得所述文件块1的引用计数。
举例来说,所述文件块1所对应的所有引用计数对象中,带有文件块1的指纹信息的增加引用计数的对象的个数为4个,带有文件块1的指纹信息的减少引用计数的对象的个数为2个,则文件块1的引用计数为2。
402、所述管理客户端根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数。
得到一个文件块的引用计数后,若该文件块的引用计数为0,所述管理客户端向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息,以使得所述云存储系统中的处理器将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象从所述存储器中删除。
本发明实施例提供了一种云存储的方法,管理客户端直接与云存储系统的文件块存储空间相连,从云存储系统的存储器中的文件块存储空间中根据一个文件块的指纹信息获取所有带有该文件块指纹信息的增加或减少引用计数的对象,从而根据所有所述文件块所对应的引用计数对象的个数和类型,得到所述文件块的引用计数,通过这种方法,大量用户可以同时对同一文件块的引用计数进行修改,提高了处理效率,并且,由于不使用专用代理端,从而避免了搭建专用代理端所带来的昂贵开销。
本发明实施例提供了一种云存储的方法,该方法的执行主体是与云存储系统的存储器中的文件块存储空间直接相连的管理客户端,结合图5,该方法包括:
501、所述管理客户端从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息。
502、所述管理客户端根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数。
具体的,步骤501和步骤502的详细实施过程可参见上述实施例中的步骤401和步骤402,本发明实施例对此不再赘述。
503、所述管理客户端保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息。
具体的,若所述管理客户端实时计算文件块存储空间中每个文件块的引用计数,计算量非常大,基于此,所述管理客户端可以每隔预设时间计算一次文件块存储空间中的每个文件块的引用计数。
对于第一次计算引用计数的文件块,根据上述实施例中的步骤302中的普通客户端的文件上传过程可知,当普通客户端要上传所述文件块,并判断在文件块存储空间中不存在所述文件块时,所述普通客户端上传所述文件块,并向文件块存储空间上传一个状态为0的对象,所述状态为0的对象用于表示所述普通客户端在上传所述文件块之前,所述文件块的引用计数为0,并且所述状态为0的对象带有所述文件块的指纹信息。所述普通客户端上传所述状态为0的对象后,向所述文件块存储空间上传所述文件块,并向所述文件块存储空间上传一个增加引用计数的对象,所述增加引用计数的对象用于表示对所述文件块的引用计数加1。
所述管理客户端根据所述状态为0的对象,以及所述文件块被上传至文件块存储空间后至所述文件块第一次被管理客户端计算引用计数的这段时间内的增加或减少引用计数的对象,就可以获得所述文件块的引用计数。
当然,所述管理客户端在第一次计算一个文件块的引用计数时,也可以不通过所述状态为0的对象,直接根据带有所述文件块指纹信息的增加引用计数或减少引用计数的对象来获得所述文件块的引用计数。
举例来说,所述文件块为文件块2,是在第2s时被客户端2上传至所述文件块存储空间,管理客户端每隔5s计算一次文件块存储空间中各个文件块的引用计数,即分别在第0s,第5s,第10s,第15s…分别计算一次文件块存储空间中各个文件块的引用计数,在第5s时,所述文件块存储空间中有带有文件块2指纹信息的增加引用计数的对象的个数为5个,减少引用计数的对象的个数为1个,所述管理客户端据此以及带有所述文件块2指纹信息的状态为0的对象,计算出所述文件块2在第5s时的引用计数为4。
所述文件块2的第5s时的引用计数为4,但是,若所述文件块2在第5s的引用计数不是4,而是0,此时,所述管理客户端向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息,以使得所述云存储系统中的处理器将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象从所述存储器中删除,从而实现了垃圾的回收。
所述文件块2在第5s的引用计数为4,大于0,此时,所述管理客户端保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息,即所述第一记录消息用于记录所述文件块2在第5s时的引用计数为4,所述第一记录消息中包含所述文件块2的指纹信息。
所述管理客户端向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求将所述所有普通客户端发送的所述文件块2所对应的引用计数对象删除的信息,以使得所述云存储系统中的处理器将所述所有普通客户端发送的所述文件块2所对应的引用计数对象从所述存储器中删除。
需要说明的是,所述管理客户端在第5s计算出所述文件块2的引用计数大于0后,也可以向所述文件块存储空间上传一个状态对象,所述状态对象包含所述文件块2在第5s的引用计数以及所述文件块2的指纹信息。
当然,所述管理客户端也可以通过其他方式记录所述文件块的引用计数,本发明实施例对此不做限定。
所述管理客户端在第10s,在所述文件块存储空间获取所述文件块2所对应的增加引用计数或减少引用计数的对象,其中,所述带有文件块2指纹信息的增加引用计数的对象和减少引用计数的对象是所有在第5s到第10s被与所述云存储系统直接相连的普通客户端上传至所述文件块存储空间的。
所述管理客户端在第10s,从所述文件块存储空间获得的带有所述文件块2指纹信息的增加引用计数对象的个数为10个,减少引用计数的对象的个数为4个,所述文件块2在第5s记录的引用计数为4,则所述文件块2在第10s的引用计数为4+10-4=10。
或者,所述管理客户端在第10s,从所述文件块存储空间获得的带有所述文件块2指纹信息的增加引用计数对象的个数为10个,减少引用计数的对象的个数为4个,所述管理客户端在第10s从所述文件块存储空间获得的带有文件块2指纹信息的状态对象表示所述文件块2的第5s的引用计数为4,则所述文件块2在第10s的引用计数为4+10-4=10。
此时,所述管理客户端通过向云存储系统发送请求消息将所述用于表示文件块2的在第5s的引用计数的对象删除,在第10s上传一个新的包含有文件块2指纹信息和所述文件块2在第10s的引用计数的状态对象。并且,所述管理客户端在第10s通过向云存储系统发送请求消息将文件块存储空间中包含有所述文件块2指纹信息的增加或减少引用计数的对象从云存储系统的文件块存储空间删除。
当然,所述管理客户端也可以不删除带有所述文件块指纹信息的增加或减少引用计数的对象,举例来说,所述文件块2在第2s被客户端2上传至所述文件块存储空间,当所述管理客户端在第5s计算所述文件块的引用计数时,可以根据第2s到第5s上传至所述文件块存储空间的带有文件块2指纹信息的增加或减少引用计数的对象获取所述文件块2在第5s的引用计数。
若所述文件块2在第5s的引用计数大于零,所述管理客户端在第10s时可以根据第2s到第10s上传至所述文件块存储空间的带有文件块2指纹信息的增加或减少引用计数的对象来获取所述文件块2在第10s的引用计数,以此类推,所述管理客户端获取文件块2在第15s,第20s…的引用计数。
但是,用这种方式的话文件块存储空间中会存储大量的增加或减少引用计数的对象,造成资源的浪费。
若所述管理客户端获得文件块2在第10s的引用计数为0,则所述管理客户端在第10s将所述文件块2从所述文件块存储空间删除,并将所述文件块2所对应的增加或减少引用计数的对象删除。
本发明实施例提供了一种云存储的方法,通过该方法,所述管理客户端每隔预设时间计算一次文件块存储空间中每个文件块的引用计数,并将计算出的所述文件块的引用计数记录下来,及时删除每个文件块所对应的增加或减少引用计数的对象,不但避免了大量用户对同一文件块的引用计数同时进行修改时,使用专用代理端处理器速度较慢的问题,还减少了存储资源的浪费。
本发明实施例提供了一种普通客户端,所述普通客户端与云存储系统直接相连接,所述云存储系统包括处理器和存储器,结合图6,该普通客户端包括:第一发送单元601,确定单元602和第二发送单元603;
所述第一发送单元601,用于向云存储系统发起对文件块的访问请求;
所述确定单元602,用于确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包括所述文件块的唯一标识信息;
所述第二发送单元603,用于根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。
具体的,所述文件块的唯一标识信息包含所述文件块的指纹信息,客户端信息、进程信息和时间信息。
本发明实施例提供了一种普通客户端,所述普通客户端通过确定一个文件块的引用计数对象的类型,向云存储系统发送对应的引用计数对象,所述引用计数对象用于实现对文件块引用计数的修改,其他与所述普通客户端相同的普通客户端,也可以通过确定一个文件块的引用计数对象的类型,向云存储系统发送对应的引用计数对象,从而实现普通客户端与其他普通客户端同时对一个文件块的引用计数进行修改的目的,解决了大量用户对同一文件块的引用计数同时进行修改时,使用专用代理端处理器速度较慢的问题,并且避免了搭建专用代理端带来的巨大成本。
本发明实施例提供了一种管理客户端,所述管理客户端与云存储系统直接相连接,所述云存储系统包括处理器和存储器,结合图7,所述管理客户端包括:第一获取单元701和第二获取单元702;
所述第一获取单元701,用于从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息;
所述第二获取单元702,用于根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数。
具体的,结合图8,所述管理客户端还包括:发送单元703;
所述发送单元703,用于若所述文件块的引用计数为0,向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求所述处理器将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
可选的,结合图9,所述管理客户端还包括:记录单元704;
所述记录单元704,用于保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息;
所述发送单元703还用于:向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
可选的,所述发送单元703还用于:向所述云存储系统发送一个状态对象,所述状态对象用于表示所述文件块的引用计数,所述状态对象包含所述文件块的指纹信息;
向所述云存储系统发送第三请求信息,所述第三请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
本发明实施例提供了一种管理客户端端,该管理客户端通过所有的普通客户端发送至云存储系统的文件块的引用计数对象的个数和类型,就可以得到所述文件块的引用计数,避免了大量用户对同一文件块的引用计数同时进行修改时,使用专用代理端处理器速度较慢的问题,同时,所述管理客户端相较于专用代理端更易搭建,费用较低。
本发明实施例提供了一种普通客户端,结合图10,该普通客户端包括:处理器1001、总线1002、存储器1003和发送器1004;
所述处理器1001通过总线1002调用所述存储器1003中的指令,以用于:
向云存储系统发起对文件块的访问请求;
确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包含所述文件块的唯一标识信息;
所述发送器1004,用于向所述云存储系统发送所述文件块的引用计数对象的类型所对应的引用计数对象,所述引用计数对象被存储在所述云存储系统的存储器中。
具体的,所述文件块的唯一标识信息包含所述文件块的指纹信息,客户端信息、进程信息和时间信息。
本发明实施例提供了一种普通客户端,所述普通客户端通过确定一个文件块的引用计数对象的类型,向云存储系统发送对应的引用计数对象,所述引用计数对象用于实现对文件块引用计数的修改,其他与所述普通客户端相同的普通客户端,也可以通过确定一个文件块的引用计数对象的类型,向云存储系统发送对应的引用计数对象,从而实现普通客户端与其他普通客户端同时对一个文件块的引用计数进行修改的目的,解决了大量用户对同一文件块引用计数同时修改时,使用专用代理端处理速度较慢的问题,并且避免了搭建专用代理端带来的巨大成本。
本发明实施例提供了一种管理客户端,结合图11,该管理客户端包括:接收器1101和处理器1102,总线1103和存储器1104,其中,所述处理器通过总线调用存储器中的指令,以用于:
所述接收器1101,用于接收从所述云存储系统获取的与所述云存储系统相连的所有所述普通客户端发送的所述文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息;
所述处理器1102,用于根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数。
具体的,结合图12,所述管理客户端还包括:发送器1105;所述发送器1105,用于:
若所述文件块的引用计数为0,向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求所述处理器将所述文件块以及所述所有所述普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
可选的,所述处理器1102还用于:向存储器1104中保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息;
所述发送器1105还用于:向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
可选的,所述发送器1105还用于:向所述云存储系统发送一个状态对象,所述状态对象用于表示所述文件块的引用计数,所述状态对象包含所述文件块的指纹信息;
向所述云存储系统发送第三请求信息,所述第三请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
本发明实施例提供了一种管理客户端端,该管理客户端通过所有的普通客户端发送至云存储系统的文件块的引用计数对象的个数和类型,就可以得到所述文件块的引用计数,避免了当大量用户同时对一个文件块的引用计数进行修改时,通过专用代理端处理速度较慢的问题,同时,所述管理客户端相较于专用代理端更易搭建,费用较低。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种获取文件块引用计数的方法,其特征在于,该方法应用于云存储架构,该架构包括云存储系统和多个客户端,其中,所述多个客户端与所述云存储系统相连接,所述云存储系统包括处理器和存储器,所述多个客户端中的一个客户端作为管理客户端,其他客户端作为普通客户端,该方法包括:
所述普通客户端向云存储系统发起对文件块的访问请求;
所述普通客户端确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包含所述文件块的唯一标识信息;
所述普通客户端根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,以使得所述管理客户端从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,并根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,所述管理客户端获取所述文件块的引用计数;所述引用计数对象被存储在所述云存储系统的存储器中。
2.根据权利要求1所述的方法,其特征在于,所述文件块的唯一标识信息包含所述文件块的指纹信息、客户端信息、进程信息和时间信息。
3.一种获取文件块引用计数的方法,其特征在于,该方法应用于云存储架构,该架构包括云存储系统和多个客户端,其中,所述多个客户端与所述云存储系统相连接,所述云存储系统包括处理器和存储器,所述多个客户端中的一个客户端作为管理客户端,其他客户端作为普通客户端,该方法包括:
所述管理客户端从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息;
所述管理客户端根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数;其中所述引用计数对象的类型是所述普通客户端向所述云存储系统发起对文件块的访问请求后,由所述普通客户端确定的所述文件块的引用计数对象的类型,所述引用计数对象的类型包括引用计数加1或引用计数减1。
4.根据权利要求3所述的方法,其特征在于,所述获取所述文件块的引用计数之后,该方法还包括:
若获取所述文件块的引用计数为0,所述管理客户端向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求所述处理器将所述文件块以及所述所有所述普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
5.根据权利要求3或4所述的方法,其特征在于,所述获取所述文件块的引用计数之后,该方法还包括:
所述管理客户端保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息;
所述管理客户端向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
6.根据权利要求3或4所述的方法,其特征在于,所述获取所述文件块的引用计数之后,该方法还包括:
所述管理客户端向所述云存储系统发送一个状态对象,所述状态对象用于表示所述文件块的引用计数,所述状态对象包含所述文件块的指纹信息;
所述管理客户端向所述云存储系统发送第三请求信息,所述第三请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
7.一种普通客户端,其特征在于,所述普通客户端与云存储系统直接相连接,所述云存储系统包括处理器和存储器,所述普通客户端包括:第一发送单元,确定单元和第二发送单元;
所述第一发送单元,用于向云存储系统发起对文件块的访问请求;
所述确定单元,用于确定所述文件块的引用计数对象的类型,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象的类型包括引用计数加1或引用计数减1,所述引用计数对象包括所述文件块的唯一标识信息;
所述第二发送单元,用于根据所述引用计数对象的类型,向所述云存储系统发送对应的引用计数对象,以使得管理客户端从所述云存储系统获取与所述云存储系统相连的所有所述普通客户端发送的文件块所对应的引用计数对象,并根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,所述管理客户端获取所述文件块的引用计数;所述引用计数对象被存储在所述云存储系统的存储器中。
8.根据权利要求7所述的普通客户端,其特征在于,所述文件块的唯一标识信息包含所述文件块的指纹信息、客户端信息、进程信息和时间信息。
9.一种管理客户端,其特征在于,所述管理客户端与云存储系统直接相连接,所述云存储系统包括处理器和存储器,所述管理客户端包括:第一获取单元和第二获取单元;
所述第一获取单元,用于从所述云存储系统获取与所述云存储系统相连的所有普通客户端发送的文件块所对应的引用计数对象,其中,所述引用计数对象用于表示所述文件块的引用计数,所述引用计数对象包含所述文件块的唯一标识信息;
所述第二获取单元,用于根据所有所述普通客户端发送的所述文件块所对应的引用计数对象的个数和类型,获取所述文件块的引用计数;其中所述引用计数对象的类型是所述普通客户端向所述云存储系统发起对文件块的访问请求后,由所述普通客户端确定的所述文件块的引用计数对象的类型,所述引用计数对象的类型包括引用计数加1或引用计数减1。
10.根据权利要求9所述的管理客户端,其特征在于,所述管理客户端还包括:发送单元;
所述发送单元,用于若所述文件块的引用计数为0,向所述云存储系统发送第一请求信息,所述第一请求信息中包含请求所述处理器将所述文件块以及所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
11.根据权利要求9或10所述的管理客户端,其特征在于,所述管理客户端还包括:记录单元;
所述记录单元,用于保存第一记录消息,所述第一记录消息用于记录所述文件块的引用计数,所述第一记录消息中包含所述文件块的指纹信息;
所述发送单元还用于:向所述云存储系统发送第二请求信息,所述第二请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
12.根据权利要求9或10所述的管理客户端,其特征在于,所述发送单元还用于:
向所述云存储系统发送一个状态对象,所述状态对象用于表示所述文件块的引用计数,所述状态对象包含所述文件块的指纹信息;
向所述云存储系统发送第三请求信息,所述第三请求信息中包含请求所述处理器将所述所有普通客户端发送的所述文件块所对应的引用计数对象删除的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410293722.0A CN105205011B (zh) | 2014-06-25 | 2014-06-25 | 一种获取文件块引用计数的方法、普通客户端和管理客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410293722.0A CN105205011B (zh) | 2014-06-25 | 2014-06-25 | 一种获取文件块引用计数的方法、普通客户端和管理客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105205011A CN105205011A (zh) | 2015-12-30 |
CN105205011B true CN105205011B (zh) | 2019-01-18 |
Family
ID=54952705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410293722.0A Active CN105205011B (zh) | 2014-06-25 | 2014-06-25 | 一种获取文件块引用计数的方法、普通客户端和管理客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105205011B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301019B (zh) * | 2017-06-22 | 2020-05-19 | 重庆大学 | 一种结合引用引用时间图和容器位表的垃圾回收方法 |
CN111124939A (zh) * | 2018-10-31 | 2020-05-08 | 深信服科技股份有限公司 | 一种基于全闪存阵列的数据压缩方法及系统 |
CN115442317B (zh) * | 2021-12-17 | 2023-10-10 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、系统、设备及介质 |
CN117093408B (zh) * | 2023-10-20 | 2024-01-23 | 恒生电子股份有限公司 | 数据处理方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110338A1 (en) * | 2010-10-27 | 2012-05-03 | Max Planck Gesellschaft Zur Foerderung Der Wissenschaften | Protecting the Integrity and Privacy of Data with Storage Leases |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN103002029A (zh) * | 2012-11-26 | 2013-03-27 | 北京百度网讯科技有限公司 | 上传文件的管理方法、系统和客户端 |
CN103873503A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据块备份系统及方法 |
-
2014
- 2014-06-25 CN CN201410293722.0A patent/CN105205011B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110338A1 (en) * | 2010-10-27 | 2012-05-03 | Max Planck Gesellschaft Zur Foerderung Der Wissenschaften | Protecting the Integrity and Privacy of Data with Storage Leases |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN103002029A (zh) * | 2012-11-26 | 2013-03-27 | 北京百度网讯科技有限公司 | 上传文件的管理方法、系统和客户端 |
CN103873503A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据块备份系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105205011A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11507305B2 (en) | Concurrently performing normal system operations and garbage collection | |
CN106294585B (zh) | 一种云计算平台下的存储方法 | |
US9959280B1 (en) | Garbage collection of data tiered to cloud storage | |
CN103548003B (zh) | 用于提高去重复系统备份性能的客户端侧指纹缓存的方法和系统 | |
US9588977B1 (en) | Data and metadata structures for use in tiering data to cloud storage | |
CN106156359B (zh) | 一种云计算平台下的数据同步更新方法 | |
US10872037B2 (en) | Estimating worker nodes needed for performing garbage collection operations | |
US9727470B1 (en) | Using a local cache to store, access and modify files tiered to cloud storage | |
CN104090806B (zh) | 升级包、升级请求的处理方法及装置 | |
CN105677250B (zh) | 对象存储系统中的对象数据的更新方法和更新装置 | |
CN102629247B (zh) | 一种数据处理方法、装置和系统 | |
CN104391930A (zh) | 分布式文件存储装置和方法 | |
US11392490B2 (en) | Marking impacted similarity groups in garbage collection operations in deduplicated storage systems | |
US20140081911A1 (en) | Optimizing automatic deletion of backup files | |
CN105205011B (zh) | 一种获取文件块引用计数的方法、普通客户端和管理客户端 | |
CN102833298A (zh) | 分布式的重复数据删除系统及其处理方法 | |
CN104573064B (zh) | 一种大数据环境下的数据处理方法 | |
GB2509504A (en) | Accessing de-duplicated data files stored across networked servers | |
CN105183400A (zh) | 一种基于内容寻址的对象存储方法和系统 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN109522283A (zh) | 一种重复数据删除方法及系统 | |
US20200310965A1 (en) | Deleting data in storage systems that perform garbage collection | |
CN103067519A (zh) | 一种异构平台下数据分布存储的方法及装置 | |
CN105956491B (zh) | 对公有云存储系统的数据进行多账号备份的方法及系统 | |
GB2529436A (en) | Data processing apparatus and method |
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 |