CN111291002B - 文件对账方法、装置、计算机设备及存储介质 - Google Patents
文件对账方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111291002B CN111291002B CN202010148568.3A CN202010148568A CN111291002B CN 111291002 B CN111291002 B CN 111291002B CN 202010148568 A CN202010148568 A CN 202010148568A CN 111291002 B CN111291002 B CN 111291002B
- Authority
- CN
- China
- Prior art keywords
- indexes
- node
- hash value
- bucket
- client node
- 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
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
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)
Abstract
一种文件对账方法,所述方法包括:接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识;根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引;对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值;判断所述第二哈希值与所述第一哈希值是否相等;若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。本发明还提供一种文件对账方法及相关设备。本发明能够减少对服务端节点带宽的占用,提高对账速度。
Description
技术领域
本发明涉及文件存储技术领域,尤其涉及一种文件对账方法、装置、计算机设备及存储介质。
背景技术
边缘存储是相对于中心化存储而言的,在边缘存储中,使用客户端节点(比如家庭中的智能硬盘)作为存储节点。为了防止客户端节点故障而致文件丢失,每个文件被分割多份,以冗余的方式部署在不同地区的客户端节点上。为了记录这些数据片段存储在哪些客户端节点上,通常会采用一个文件多个索引的方式去记录,这样会导致索引的数量相比海量的文件而言,索引的数量更大。
为了确保服务端节点存储的索引与客户端节点实际存储的文件片段对应,需要采用对账服务。由于客户端节点的对账服务涉及外网通信,通信条件差,成本高,占用服务端节点很大的带宽。
发明内容
鉴于以上内容,有必要提供一种文件对账方法、装置、计算机设备及存储介质,能够减少对服务端节点带宽的占用,提高对账速度。
本发明的第一方面提供一种文件对账方法,应用于服务端节点,所述方法包括:
接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识,所述第一哈希值为所述客户端节点中所述桶标识对应的桶包括的多个索引在排序后进行哈希运算获得的哈希值;
根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引;
对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值;
判断所述第二哈希值与所述第一哈希值是否相等;
若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。
在一种可能的实现方式中,所述方法还包括:
若所述第二哈希值与所述第一哈希值不相等,将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
在一种可能的实现方式中,所述方法还包括:
接收客户端节点返回的索引丢失信息,所述索引丢失信息包括多个丢失索引;
从所述目标桶中,删除所述多个丢失索引。
本发明的第二方面提供一种文件对账方法,应用于客户端节点,所述方法包括:
获取需要进行文件对账的第一桶的多个索引;
对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值;
向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述节点标识以及所述桶标识进行本地索引的查询及排序,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据比较结果向所述客户端节点返回相关信息;
接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
在一种可能的实现方式中,所述方法还包括:
接收所述服务端节点针对所述文件对账请求返回的目标桶的多个索引;
将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较;
从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。
在一种可能的实现方式中,所述方法还包括:
若所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,以使所述服务端节点从所述目标桶的多个索引中,删除所述多个丢失索引。
本发明的第三方面提供一种文件对账装置,运行于服务端节点,所述文件对账装置包括:
接收模块,用于接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识,所述第一哈希值为所述客户端节点中所述桶标识对应的桶包括的多个索引在排序后进行哈希运算获得的哈希值;
查询模块,用于根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引;
排序计算模块,用于对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值;
判断模块,用于判断所述第二哈希值与所述第一哈希值是否相等;
发送模块,用于若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。
本发明的第四方面提供一种文件对账装置,运行于客户端节点,所述文件对账装置包括:
获取模块,用于获取需要进行文件对账的第一桶的多个索引;
排序计算模块,用于对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值;
发送模块,用于向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述节点标识以及所述桶标识进行本地索引的查询及排序,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据所述比较结果向所述客户端节点返回相关信息;
接收模块,用于接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
本发明的第五方面提供一种计算机设备,所述计算机设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的文件对账方法。
本发明的第六方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的文件对账方法。
在上述技术方案中,文件片段采用分桶的方式,每个桶中可以包括多个索引,当需要进行文件对账时,客户端节点和服务端节点可以分别对各自存储的桶中的索引进行排序并计算哈希值,服务端节点可以比较两个哈希值的差异,如果相等,则可以直接向客户端节点返回对账对平的通知消息,而不需要传递大量的索引,而且,客户端节点在发送文件对账请求时,只需要传递以分桶方式计算的哈希值,而不需要将所有文件片段对应的多个哈希值进行传递,从而可以节约大量带宽,同时,也可以提高对账速度。
附图说明
图1是本发明公开的一种文件对账方法的较佳实施例的流程图。
图2是本发明公开的另一种文件对账方法的较佳实施例的流程图。
图3是本发明公开的一种文件对账装置的较佳实施例的功能模块图。
图4是本发明公开的另一种文件对账装置的较佳实施例的功能模块图。
图5是本发明实现文件对账方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
其中,服务端节点可以是指能对网络中其它设备(如客户端节点)提供服务的计算机系统。客户端节点可以为部署在不同地区的家庭中的智能设备,比如智能摄像头、智能硬盘等。
请参见图1,图1是本发明公开的一种文件对账方法的较佳实施例的流程图。其中,所述文件对账方法应用于服务端节点,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11、服务端节点接收客户端节点发送的文件对账请求。
其中,针对分布式的边缘存储方式,可以将每个文件分割成多份,每份构成一个文件片段,以冗余的方式将每份文件片段部署在不同地区的多个客户端节点上。每个客户端节点作为存储节点,可以存储多个不同文件的多个不同文件片段以及每个文件片段对应的索引,服务端节点作为管理节点,可以存储各个不同的客户端节点上存储的文件片段对应的索引,通过自身存储的索引,对多个客户端节点存储的文件片段进行管理。其中,对每个文件片段进行哈希运算,得到的哈希值可以作为该文件片段的索引。
本发明实施例中,客户端节点和服务端节点均可以采用文件片段分桶的方式,将各自存储的多个索引通过分桶的方式进行分类,每个桶可以包括多个文件片段的多个索引。具体的,在对索引进行桶分配时,可以先计算每个文件片段的哈希值,将每个文件片段的哈希值与桶总数量进行相除,获得余数,将余数作为该文件片段对应的索引需要被分配的桶的桶标识,举例来说,假设余数为1,则将该索引分配到桶标识为1的桶中。其中,桶总数量可以是预先设置好的,比如500个,该桶总数量通常与节点(客户端节点或服务端节点)的磁盘容量有关。类似的,服务端节点在对索引进行桶分配时也采取上述类似的方法,在此不再赘述。
本发明实施例中,当需要进行文件对账时,客户端节点可以向服务端节点发送文件对账请求,以触发执行文件的对账服务。其中,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识,所述第一哈希值为客户端节点中所述桶标识对应的桶包括的多个索引在排序后进行哈希运算获得的哈希值。
其中,客户端节点在向服务端节点发送文件对账请求之前,先获取需要进行文件对账的第一桶的多个索引,其中,该第一桶可以是客户端节点包括的多个桶中的任意一个桶,客户端节点需要对每个桶依次进行文件对账,进一步地,客户端节点还需要对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值,之后,在将携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识的文件对账请求发送给服务端节点。
S12、服务端节点根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引。
本发明实施例中,在接收到文件对账请求之后,服务端节点可以根据所述节点标识,确定所述节点标识对应的客户端节点,进而通过所述桶标识,在本地从所述客户端节点的多个桶中查询到与所述桶标识对应的目标桶,并获取所述目标桶存储的多个索引。
作为一种可选的实施方式,在步骤S11之后,所述方法还包括:
对所述客户端节点进行身份校验;
若所述身份校验通过,则执行步骤S12。
其中,在客户端节点向服务端节点发送文件对账服务请求后,服务端节点还需要对该客户端节点进行身份校验,主要是校验客户端节点的校验信息是否合法,以及校验客户端节点的设备信息是否存在于本地数据库中,如果都满足,则表明身份校验通过,如果任何一个不满足,表明身份校验失败。
如果该客户端节点属于新的节点,通过身份校验可以避免非法节点的接入,如果该客户端节点属于已有的节点,通过身份校验,可以控制客户端节点的请求频率以及控制客户端节点只能操作属于自己的数据。
S13、服务端节点对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值。
本发明实施例中,如果服务端节点和客户端节点的索引相同而索引排序不同,会使得客户端节点与服务端节点计算的哈希值不一致,从而被错误的认为对账没有对平的问题,比如:客户端节点的索引是["A|1","B|2"],而服务端节点的索引是["B|2","A|1"],两边的索引其实是一样的。如果不先按某种规则排序,则求出来的哈希值就会不一样。因此,为了避免上述问题,需要对获取的多个索引进行排序,其中,该排序的规则可以是预先设定好的,客户端节点与服务端节点统一的排序规则,比如按照字符串ASCII排序。
其中,该计算得到的第二哈希值是以桶为单位对桶包括的多个索引进行计算得到的哈希值,不需要对每个索引分别求哈希值,从而可以减少计算量,提高对账服务的速度。
S14、服务端节点判断所述第二哈希值与所述第一哈希值是否相等,若相等,执行步骤S15,若不相等,执行步骤S16。
本发明实施例中,哈希值具备唯一性,可以用于唯一标识索引的内容,客户端节点对排序后的索引进行哈希计算获得的第一哈希值是唯一的,服务端节点对排序后的索引进行哈希计算获得的第二哈希值也是唯一的,如果服务端节点判断所述第二哈希值与所述第一哈希值相等,则表明所述第二哈希值对应的多个索引与所述第一哈希值对应的多个索引是完全相同的,可以反映出,服务端节点上存储的索引与客户端节点上实际存储的文件片段是对应的,针对该文件对账请求,实现了对账对平。反正,如果服务端节点判断所述第二哈希值与所述第一哈希值不相等,则表明所述第二哈希值对应的多个索引与所述第一哈希值对应的多个索引存在差异,可以反映出,服务端节点上存储的索引与客户端节点上实际存储的文件片段是不对应的,需要进一步地去比较二者之间的差异。
S15、服务端节点向所述客户端节点发送用于指示文件对账对平的通知消息,并结束本流程。
本发明实施例中,当服务端节点判断出所述第二哈希值与所述第一哈希值相等时,可以直接向所述客户端节点发送用于指示文件对账对平的通知消息,而不需要传递索引,从而可以节约大量的带宽。
S16、服务端节点将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
本发明实施例中,当服务端节点判断出所述第二哈希值与所述第一哈希值不相等时,表明所述第二哈希值对应的多个索引与所述第一哈希值对应的多个索引存在差异,而具体差异在哪里,需要进一步去比较,因此,服务端节点需要将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
作为一种可选的实施方式,所述方法还包括:
接收客户端节点返回的索引丢失信息,所述索引丢失信息包括多个丢失索引;
从所述目标桶中,删除所述多个丢失索引。
在该可选的实施方式中,客户端节点在对服务端节点返回的多个索引与本地存储的多个索引进行比较之后,如果发现本地存储的多个索引比服务端节点返回的多个索引的数量要少,或者,服务端节点返回的多个索引中有些索引不存在于客户端节点存储的多个索引中,比如服务端节点返回的多个索引中存在索引A,而客户端节点存储的多个索引中不存在索引A,表明客户端节点丢失了部分索引,客户端节点需要向服务端节点返回索引丢失信息,所述索引丢失信息包括多个丢失索引,服务端节点接收到该索引丢失信息之后,即可从所述目标桶中,删除所述多个丢失索引。其中,客户端节点丢失索引的情况通常由以下原因导致的:客户端节点掉线、客户端节点的磁盘出现故障、人为操作删除了客户端节点上的索引。通常,客户端节点丢失索引之后,客户端节点上存储的文件片段也就找不到了,该丢失的索引对应的文件片段就没有价值了,因此,服务端节点需要删除这些丢失的索引。
在图1所描述的方法流程中,文件片段采用分桶的方式,每个桶中可以包括多个索引,当需要进行文件对账时,客户端节点和服务端节点可以分别对各自存储的桶中的索引进行排序并计算哈希值,服务端节点可以比较两个哈希值的差异,如果相等,则可以直接向客户端节点返回对账对平的通知消息,而不需要传递大量的索引,而且,客户端节点在发送文件对账请求时,只需要传递以分桶方式计算的哈希值,而不需要将所有文件片段对应的多个哈希值进行传递,从而可以节约大量带宽,同时,也可以提高对账速度。
请参见图2,图2是本发明公开的另一种文件对账方法的较佳实施例的流程图。其中,所述文件对账方法应用于客户端节点,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S21、客户端节点获取需要进行文件对账的第一桶的多个索引。
其中,客户端节点可以采用文件片段分桶的方式,将存储的多个索引通过分桶的方式进行分类,每个桶可以包括多个文件片段的多个索引,每个文件片段对应一个索引,所述第一桶可以是客户端节点包括的多个桶中的任意一个桶。客户端节点可以依次对每个桶的索引进行对账。
当需要进行文件对账时,客户端节点可以先获取需要进行文件对账的第一桶的多个索引,其中,该多个索引可以是一个文件的多个不同片段对应的索引,或者,该多个索引也可以是不同文件的多个不同片段对应的索引,本发明实施例不做限定。
S22、客户端节点对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值。
其中,为了避免索引相同而索引排序不同,导致客户端节点与服务端节点计算的哈希值不一致的问题,客户端节点需要对获取的多个索引进行排序,其中,该排序的规则可以是预先设定好的,客户端节点与服务端节点统一的排序规则,比如按照字母的先后顺序对索引进行排序。
S23、客户端节点向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述第一哈希值、所述节点标识以及所述桶标识进行本地索引的查询,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据比较结果向所述客户端节点返回相关信息。
其中,客户端节点向服务端节点发送文件对账请求时,只需要携带以分桶的多个索引计算的一个哈希值,而不需要携带多个索引的多个哈希值,从而可以节省占用的带宽。
其中,所述服务端节点可以根据不同的比较结果,返回不同的相关信息,比如:比较一致时,返回用于指示文件对账对平的通知消息,又比如:比较存在差异时,返回本地查询到的多个索引。
S24、客户端节点接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
作为一种可选的实施方式,所述方法还包括:
接收所述服务端节点针对所述文件对账请求返回的目标桶的多个索引;
将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较;
从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。
在该可选的实施方式中,如果服务端节点对哈希值进行比较后,发现二者不同,则返回针对所述文件对账请求返回的目标桶的多个索引,客户端节点接收到该目标桶的多个索引后,将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较,以确定二者之间哪些索引存在差异。如果在所述第一桶的多个索引中存在部分索引,而该部分索引不存在于目标桶的多个索引中,比如所述第一桶的多个索引中存在索引A,而目标桶的多个索引中不存在索引A,则可以从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。其中,客户端节点中存在某个索引而服务端节点中不存在该某个索引,这种情况通常是由于该某个索引过期导致的,或者,是由于人为操作在服务端节点中删除了该某个索引。
作为一种可选的实施方式,所述方法还包括:
若所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,以使所述服务端节点从所述目标桶的多个索引中,删除所述多个丢失索引。
在该可选的实施方式中,如果客户端节点的第一桶的的多个索引比服务端节点返回的目标桶的多个索引的数量要少,或者,服务端节点返回的目标桶的多个索引中有些索引不存在于客户端节点的第一桶的多个索引中,则可以确定所述客户端节点丢失了部分索引,也即所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,此时,客户端节点需要将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,所述服务端节点接收到该索引丢失信息之后,即可从所述目标桶的多个索引中,删除所述多个丢失索引,这样,客户端节点上的索引和服务端节点上的索引就一致了,客户端节点实现了第一桶的对账对平。
类似的,客户端节点可以按照相同的方式,对客户端节点上的其他桶依次进行对账,直至所有的分桶全部对账完毕。
在图2所描述的方法流程中,文件片段采用分桶的方式,每个桶中可以包括多个索引,当需要进行文件对账时,客户端节点和服务端节点可以分别对各自存储的桶中的索引进行排序并计算哈希值,服务端节点可以比较两个哈希值的差异,如果相等,则可以直接向客户端节点返回对账对平的通知消息,而不需要传递大量的索引,而且,客户端节点在发送文件对账请求时,只需要传递以分桶方式计算的哈希值,而不需要将所有文件片段对应的多个哈希值进行传递,从而可以节约大量带宽,同时,也可以提高对账速度。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
请参见图3,图3是本发明公开的一种文件对账装置的较佳实施例的功能模块图。
在一些实施例中,所述文件对账装置运行于服务端节点中。所述文件对账装置可以包括多个由程序代码段所组成的功能模块。所述文件对账装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的文件对账方法中的部分或全部步骤。
本实施例中,所述文件对账装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块301、查询模块302、排序计算模块303、判断模块304及发送模块305。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
接收模块301,用于接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识。
其中,针对分布式的边缘存储方式,可以将每个文件分割成多份,每份构成一个文件片段,以冗余的方式将每份文件片段部署在不同地区的多个客户端节点上。每个客户端节点作为存储节点,可以存储多个不同文件的多个不同文件片段以及每个文件片段对应的索引,服务端节点作为管理节点,可以存储各个不同的客户端节点上存储的文件片段对应的索引,通过自身存储的索引,对多个客户端节点存储的文件片段进行管理。
本发明实施例中,客户端节点和服务端节点均可以采用文件片段分桶的方式,将各自存储的多个索引通过分桶的方式进行分类,每个桶可以包括多个文件片段的多个索引。具体的,在对索引进行桶分配时,可以先计算每个文件片段的哈希值,将每个文件片段的哈希值与桶总数量进行相除,获得余数,将余数作为该文件片段对应的索引需要被分配的桶的桶标识,举例来说,假设余数为1,则将该索引分配到桶标识为1的桶中。其中,桶总数量可以是预先设置好的,比如500个,该桶总数量通常与节点(客户端节点或服务端节点)的磁盘容量有关。类似的,服务端节点在对索引进行桶分配时也采取上述类似的方法,在此不再赘述。
本发明实施例中,当需要进行文件对账时,客户端节点可以向服务端节点发送文件对账请求,以触发执行文件的对账服务。其中,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识,所述第一哈希值为客户端节点中所述桶标识对应的桶包括的多个索引在排序后进行哈希运算获得的哈希值。
其中,客户端节点在向服务端节点发送文件对账请求之前,先获取需要进行文件对账的第一桶的多个索引,其中,该第一桶可以是客户端节点包括的多个桶中的任意一个桶,客户端节点需要对每个桶依次进行文件对账,进一步地,客户端节点还需要对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值,之后,在将携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识的文件对账请求发送给服务端节点。
查询模块302,用于根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引。
本发明实施例中,在接收到文件对账请求之后,服务端节点可以根据所述节点标识,确定所述节点标识对应的客户端节点,进而通过所述桶标识,在本地从所述客户端节点的多个桶中查询到与所述桶标识对应的目标桶,并获取所述目标桶存储的多个索引。
排序计算模块303,用于对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值。
本发明实施例中,为了避免索引相同而索引排序不同,导致客户端节点与服务端节点计算的哈希值不一致的问题,需要对获取的多个索引进行排序,其中,该排序的规则可以是预先设定好的,客户端节点与服务端节点统一的排序规则,比如按照字母的先后顺序对索引进行排序。
其中,该计算得到的第二哈希值是以桶为单位对桶包括的多个索引进行计算得到的哈希值,不需要对每个索引分别求哈希值,从而可以减少计算量,提高对账服务的速度。
判断模块304,用于判断所述第二哈希值与所述第一哈希值是否相等。
本发明实施例中,哈希值具备唯一性,可以用于唯一标识索引的内容,客户端节点对排序后的索引进行哈希计算获得的第一哈希值是唯一的,服务端节点对排序后的索引进行哈希计算获得的第二哈希值也是唯一的,如果服务端节点判断所述第二哈希值与所述第一哈希值相等,则表明所述第二哈希值对应的多个索引与所述第一哈希值对应的多个索引是完全相同的,可以反映出,服务端节点上存储的索引与客户端节点上实际存储的文件片段是对应的,针对该文件对账请求,实现了对账对平。反正,如果服务端节点判断所述第二哈希值与所述第一哈希值不相等,则表明所述第二哈希值对应的多个索引与所述第一哈希值对应的多个索引存在差异,可以反映出,服务端节点上存储的索引与客户端节点上实际存储的文件片段是不对应的,需要进一步地去比较二者之间的差异。
发送模块305,用于若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。
本发明实施例中,当服务端节点判断出所述第二哈希值与所述第一哈希值相等时,可以直接向所述客户端节点发送用于指示文件对账对平的通知消息,而不需要传递索引,从而可以节约大量的带宽。
可选的,所述发送模块305,还用于若所述第二哈希值与所述第一哈希值不相等,将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
本发明实施例中,当服务端节点判断出所述第二哈希值与所述第一哈希值不相等时,表明所述第二哈希值对应的多个索引与所述第一哈希值对应的多个索引存在差异,而具体差异在哪里,需要进一步去比较,因此,服务端节点需要将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
可选的,所述接收模块301,还用于接收客户端节点返回的索引丢失信息,所述索引丢失信息包括多个丢失索引;
所述文件对账装置还包括:
删除模块,用于从所述目标桶中,删除所述多个丢失索引。
在该可选的实施方式中,客户端节点在对服务端节点返回的多个索引与本地存储的多个索引进行比较之后,如果发现本地存储的多个索引比服务端节点返回的多个索引的数量要少,或者,服务端节点返回的多个索引中有些索引不存在于客户端节点存储的多个索引中,比如服务端节点返回的多个索引中存在索引A,而客户端节点存储的多个索引中不存在索引A,表明客户端节点丢失了部分索引,客户端节点需要向服务端节点返回索引丢失信息,所述索引丢失信息包括多个丢失索引,服务端节点接收到该索引丢失信息之后,即可从所述目标桶中,删除所述多个丢失索引。其中,客户端节点丢失索引的情况通常由以下原因导致的:客户端节点掉线、客户端节点的磁盘出现故障、人为操作删除了客户端节点上的索引。通常,客户端节点丢失索引之后,客户端节点上存储的文件片段也就找不到了,该丢失的索引对应的文件片段就没有价值了,因此,服务端节点需要删除这些丢失的索引。
在图3所描述的文件对账装置中,文件片段采用分桶的方式,每个桶中可以包括多个索引,当需要进行文件对账时,客户端节点和服务端节点可以分别对各自存储的桶中的索引进行排序并计算哈希值,服务端节点可以比较两个哈希值的差异,如果相等,则可以直接向客户端节点返回对账对平的通知消息,而不需要传递大量的索引,而且,客户端节点在发送文件对账请求时,只需要传递以分桶方式计算的哈希值,而不需要将所有文件片段对应的多个哈希值进行传递,从而可以节约大量带宽,同时,也可以提高对账速度。
请参见图4,图4是本发明公开的另一种文件对账装置的较佳实施例的功能模块图。
在一些实施例中,所述文件对账装置运行于客户端节点中。所述文件对账装置可以包括多个由程序代码段所组成的功能模块。所述文件对账装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的文件对账方法中的部分或全部步骤。
本实施例中,所述文件对账装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块401、排序计算模块402、发送模块403及接收模块404。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
获取模块401,用于获取需要进行文件对账的第一桶的多个索引。
其中,客户端节点可以采用文件片段分桶的方式,将存储的多个索引通过分桶的方式进行分类,每个桶可以包括多个文件片段的多个索引,每个文件片段对应一个索引,所述第一桶可以是客户端节点包括的多个桶中的任意一个桶。客户端节点可以依次对每个桶的索引进行对账。
当需要进行文件对账时,客户端节点可以先获取需要进行文件对账的第一桶的多个索引,其中,该多个索引可以是一个文件的多个不同片段对应的索引,或者,该多个索引也可以是不同文件的多个不同片段对应的索引,本发明实施例不做限定。
排序计算模块402,用于对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值。
其中,为了避免索引相同而索引排序不同,导致客户端节点与服务端节点计算的哈希值不一致的问题,客户端节点需要对获取的多个索引进行排序,其中,该排序的规则可以是预先设定好的,客户端节点与服务端节点统一的排序规则,比如按照字母的先后顺序对索引进行排序。
发送模块403,用于向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述第一哈希值、所述节点标识以及所述桶标识进行本地索引的查询,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据所述比较结果向所述客户端节点返回相关信息。
其中,客户端节点向服务端节点发送文件对账请求时,只需要携带以分桶的多个索引计算的一个哈希值,而不需要携带多个索引的多个哈希值,从而可以节省占用的带宽。
其中,所述服务端节点可以根据不同的比较结果,返回不同的相关信息,比如:比较一致时,返回用于指示文件对账对平的通知消息,又比如:比较存在差异时,返回本地查询到的多个索引。
接收模块404,用于接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
可选的,所述接收模块404,还用于接收所述服务端节点针对所述文件对账请求返回的目标桶的多个索引;
所述文件对账装置还包括:
比较模块,用于将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较;
删除模块,用于从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。
在该可选的实施方式中,如果服务端节点对哈希值进行比较后,发现二者不同,则返回针对所述文件对账请求返回的目标桶的多个索引,客户端节点接收到该目标桶的多个索引后,将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较,以确定二者之间哪些索引存在差异。如果在所述第一桶的多个索引中存在部分索引,而该部分索引不存在于目标桶的多个索引中,比如所述第一桶的多个索引中存在索引A,而目标桶的多个索引中不存在索引A,则可以从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。其中,客户端节点中存在某个索引而服务端节点中不存在该某个索引,这种情况通常是由于该某个索引过期导致的,或者,是由于人为操作在服务端节点中删除了该某个索引。
可选的,所述发送模块403,还用于若所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,以使所述服务端节点从所述目标桶的多个索引中,删除所述多个丢失索引。
在该可选的实施方式中,如果客户端节点的第一桶的的多个索引比服务端节点返回的目标桶的多个索引的数量要少,或者,服务端节点返回的目标桶的多个索引中有些索引不存在于客户端节点的第一桶的多个索引中,则可以确定所述客户端节点丢失了部分索引,也即所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,此时,客户端节点需要将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,所述服务端节点接收到该索引丢失信息之后,即可从所述目标桶的多个索引中,删除所述多个丢失索引,这样,客户端节点上的索引和服务端节点上的索引就一致了,客户端节点实现了第一桶的对账对平。
类似的,客户端节点可以按照相同的方式,对客户端节点上的其他桶依次进行对账,直至所有的分桶全部对账完毕。
在图4所描述的文件对账装置中,文件片段采用分桶的方式,每个桶中可以包括多个索引,当需要进行文件对账时,客户端节点和服务端节点可以分别对各自存储的桶中的索引进行排序并计算哈希值,服务端节点可以比较两个哈希值的差异,如果相等,则可以直接向客户端节点返回对账对平的通知消息,而不需要传递大量的索引,而且,客户端节点在发送文件对账请求时,只需要传递以分桶方式计算的哈希值,而不需要将所有文件片段对应的多个哈希值进行传递,从而可以节约大量带宽,同时,也可以提高对账速度。
如图5所示,图5是本发明实现文件对账方法的较佳实施例的计算机设备的结构示意图。所述计算机设备5包括存储器51、至少一个处理器52、存储在所述存储器51中并可在所述至少一个处理器52上运行的计算机程序53及至少一条通讯总线54。
本领域技术人员可以理解,图5所示的示意图仅仅是所述计算机设备5的示例,并不构成对所述计算机设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备5还可以包括输入输出设备、网络接入设备等。
所述计算机设备5是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述计算机设备还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA等。
所述至少一个处理器52可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器52可以是微处理器或者该处理器52也可以是任何常规的处理器等,所述处理器52是所述计算机设备5的控制中心,利用各种接口和线路连接整个计算机设备5的各个部分。
所述存储器51可用于存储所述计算机程序53和/或模块/单元,所述处理器52通过运行或执行存储在所述存储器51内的计算机程序和/或模块/单元,以及调用存储在存储器51内的数据,实现所述计算机设备5的各种功能。所述存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备5的使用所创建的数据(比如音频数据)等。此外,存储器51可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
结合图1,所述计算机设备5中的所述存储器51存储多个指令以实现一种文件对账方法,所述处理器52可执行所述多个指令从而实现:
接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识;
根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引;
对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值;
判断所述第二哈希值与所述第一哈希值是否相等;
若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。
在一种可选的实施方式中,所述处理器52可执行所述多个指令从而实现:
若所述第二哈希值与所述第一哈希值不相等,将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
在一种可选的实施方式中,所述处理器52可执行所述多个指令从而实现:
接收客户端节点返回的索引丢失信息,所述索引丢失信息包括多个丢失索引;
从所述目标桶中,删除所述多个丢失索引。
具体地,所述处理器52对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
结合图2,所述计算机设备5中的所述存储器51存储多个指令以实现一种文件对账方法,所述处理器52可执行所述多个指令从而实现:
获取需要进行文件对账的第一桶的多个索引;
对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值;
向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述第一哈希值、所述节点标识以及所述桶标识进行本地索引的查询,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据比较结果向所述客户端节点返回相关信息;
接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
在一种可选的实施方式中,所述处理器52可执行所述多个指令从而实现:
接收所述服务端节点针对所述文件对账请求返回的目标桶的多个索引;
将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较;
从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。
在一种可选的实施方式中,所述处理器52可执行所述多个指令从而实现:
若所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,以使所述服务端节点从所述目标桶的多个索引中,删除所述多个丢失索引。
具体地,所述处理器52对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。
在图5所描述的计算机设备5中,文件片段采用分桶的方式,每个桶中可以包括多个索引,当需要进行文件对账时,客户端节点和服务端节点可以分别对各自存储的桶中的索引进行排序并计算哈希值,服务端节点可以比较两个哈希值的差异,如果相等,则可以直接向客户端节点返回对账对平的通知消息,而不需要传递大量的索引,而且,客户端节点在发送文件对账请求时,只需要传递以分桶方式计算的哈希值,而不需要将所有文件片段对应的多个哈希值进行传递,从而可以节约大量带宽,同时,也可以提高对账速度。
所述计算机设备5集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器以及只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。系统权利要求中陈述的多个单元或装置也可以通过软件或者硬件来实现。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种文件对账方法,应用于服务端节点,其特征在于,所述方法包括:
接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识,所述第一哈希值为所述客户端节点中所述桶标识对应的桶包括的多个索引在排序后进行哈希运算获得的哈希值;
根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引;
对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值,其中,所述客户端节点中索引的排序规则与所述服务端节点中索引的排序规则相同;
判断所述第二哈希值与所述第一哈希值是否相等;
若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第二哈希值与所述第一哈希值不相等,将所述目标桶的多个索引发送给所述客户端节点,以使所述客户端节点将所述多个索引与本地存储的索引进行差异比较。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收客户端节点返回的索引丢失信息,所述索引丢失信息包括多个丢失索引;
从所述目标桶中,删除所述多个丢失索引。
4.一种文件对账方法,应用于客户端节点,其特征在于,所述方法包括:
获取需要进行文件对账的第一桶的多个索引;
对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值;
向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述节点标识以及所述桶标识进行本地索引的查询及排序,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据比较结果向所述客户端节点返回相关信息,其中,所述客户端节点中索引的排序规则与所述服务端节点中索引的排序规则相同;
接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述服务端节点针对所述文件对账请求返回的目标桶的多个索引;
将所述第一桶的多个索引与所述目标桶的多个索引进行差异比较;
从所述第一桶的多个索引中,删除所述服务端节点没有的索引的相关数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述目标桶的多个索引中存在所述客户端节点丢失的多个丢失索引,将携带有所述多个丢失索引的索引丢失信息发送给所述服务端节点,以使所述服务端节点从所述目标桶的多个索引中,删除所述多个丢失索引。
7.一种文件对账装置,运行于服务端节点,其特征在于,所述文件对账装置包括:
接收模块,用于接收客户端节点发送的文件对账请求,所述文件对账请求携带有第一哈希值、所述客户端节点的节点标识以及桶标识,所述第一哈希值为所述客户端节点中所述桶标识对应的桶包括的多个索引在排序后进行哈希运算获得的哈希值;
查询模块,用于根据所述节点标识以及所述桶标识,查询所述客户端节点中与所述桶标识对应的目标桶的多个索引;
排序计算模块,用于对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第二哈希值,其中,所述客户端节点中索引的排序规则与所述服务端节点中索引的排序规则相同;
判断模块,用于判断所述第二哈希值与所述第一哈希值是否相等;
发送模块,用于若所述第二哈希值与所述第一哈希值相等,向所述客户端节点发送用于指示文件对账对平的通知消息。
8.一种文件对账装置,运行于客户端节点,其特征在于,所述文件对账装置包括:
获取模块,用于获取需要进行文件对账的第一桶的多个索引;
排序计算模块,用于对所述多个索引进行排序,并对排序后的多个索引进行哈希计算,获得第一哈希值;
发送模块,用于向服务端节点发送文件对账请求,所述文件对账请求携带有所述第一哈希值、所述客户端节点的节点标识以及所述第一桶的桶标识,以使所述服务端节点根据所述节点标识以及所述桶标识进行本地索引的查询及排序,计算第二哈希值,并将所述第一哈希值与所述第二哈希值进行比较,根据比较结果向所述客户端节点返回相关信息,其中,所述客户端节点中索引的排序规则与所述服务端节点中索引的排序规则相同;
接收模块,用于接收所述服务端节点针对所述文件对账请求返回的通知消息,所述通知消息用于指示文件对账对平。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至3或4至6中任意一项所述的文件对账方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至3或4至6中任意一项所述的文件对账方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010148568.3A CN111291002B (zh) | 2020-03-05 | 2020-03-05 | 文件对账方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010148568.3A CN111291002B (zh) | 2020-03-05 | 2020-03-05 | 文件对账方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291002A CN111291002A (zh) | 2020-06-16 |
CN111291002B true CN111291002B (zh) | 2023-07-18 |
Family
ID=71029370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010148568.3A Active CN111291002B (zh) | 2020-03-05 | 2020-03-05 | 文件对账方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291002B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785408A (zh) * | 2021-02-26 | 2021-05-11 | 中国工商银行股份有限公司 | 基于哈希的对账方法及装置 |
CN113254457B (zh) * | 2021-07-01 | 2021-11-12 | 中邮消费金融有限公司 | 一种对账方法、系统及计算机可读存储介质 |
CN113421163A (zh) * | 2021-07-13 | 2021-09-21 | 北京沃东天骏信息技术有限公司 | 一种对账方法、对账应用集群和相关客户端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976322B (zh) * | 2010-11-11 | 2012-05-23 | 清华大学 | 基于一种完整性校验的安全元数据管理方法 |
GB201210234D0 (en) * | 2012-06-12 | 2012-07-25 | Fujitsu Ltd | Reconciliation of large graph-based data storage |
CN103810247A (zh) * | 2014-01-10 | 2014-05-21 | 国网信通亿力科技有限责任公司 | 基于分桶算法的灾备数据比对方法 |
CN110262998B (zh) * | 2019-05-14 | 2023-07-11 | 创新先进技术有限公司 | 一种对账数据处理方法及装置 |
CN110263001B (zh) * | 2019-06-18 | 2024-02-06 | 深圳前海微众银行股份有限公司 | 文件管理方法、装置、系统、设备及计算机可读存储介质 |
-
2020
- 2020-03-05 CN CN202010148568.3A patent/CN111291002B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111291002A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291002B (zh) | 文件对账方法、装置、计算机设备及存储介质 | |
EP2738665B1 (en) | Similarity analysis method, apparatus, and system | |
US9904717B2 (en) | Replication of data objects from a source server to a target server | |
WO2019097322A1 (en) | Optimization of high volume transaction performance on a blockchain | |
CN112597153B (zh) | 一种基于区块链的数据存储方法、装置及存储介质 | |
CN107247729B (zh) | 一种文件处理方法和装置 | |
CN110908589B (zh) | 数据文件的处理方法、装置、系统和存储介质 | |
CN111611249A (zh) | 数据管理方法、装置、设备及存储介质 | |
CN108563698B (zh) | 一种HBase表的Region合并方法和装置 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
EP3042316B1 (en) | Music identification | |
CN111198961A (zh) | 商品搜索方法、装置及服务器 | |
CN111198885A (zh) | 数据的处理方法及装置 | |
CN112445841B (zh) | 账户查询方法、装置、系统、服务器及介质 | |
CN109377391B (zh) | 一种信息追踪方法、存储介质和服务器 | |
CN114860722A (zh) | 基于人工智能的数据分片方法、装置、设备及介质 | |
CN114791912A (zh) | 一种数据处理方法、系统、电子设备及存储介质 | |
CN116107801A (zh) | 交易处理方法及相关产品 | |
US11580082B2 (en) | Object storage system with control entity quota usage mapping | |
CN116663068B (zh) | 联盟链归档方法、相关装置和介质 | |
CN109542900B (zh) | 一种数据处理方法及装置 | |
CN111857548A (zh) | 数据读取方法、装置及系统 | |
CN113392138B (zh) | 一种隐私数据的统计分析方法、装置、服务器和存储介质 | |
CN115314382B (zh) | 配置信息处理方法 | |
CN112860694B (zh) | 业务数据的处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |