CN106407320B - 文件处理方法、装置及*** - Google Patents
文件处理方法、装置及*** Download PDFInfo
- Publication number
- CN106407320B CN106407320B CN201610791702.5A CN201610791702A CN106407320B CN 106407320 B CN106407320 B CN 106407320B CN 201610791702 A CN201610791702 A CN 201610791702A CN 106407320 B CN106407320 B CN 106407320B
- Authority
- CN
- China
- Prior art keywords
- file
- state table
- data node
- node
- deleted
- 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
Images
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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- 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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开是关于一种文件处理方法、装置及***,属于互联网技术领域。所述方法包括:指定数据节点接收客户端发送的删除文件指令;从主节点中下载主节点当前存储的状态表,状态表至少包括所删除文件的文件标识;将文件标识添加到状态表中,得到更新后的状态表;向主节点发送更新后的状态表,由主节点存储更新后的状态表。本公开通过由主节点存储状态表,则指定数据节点接收到删除文件指令时从主节点中下载当前存储的状态表,将所删除文件的文件标识添加到状态表中,向主节点发送更新后的状态表,实现了对状态表的更新,保证了分布式文件***中的节点或者客户端根据主节点存储的状态表均会确定文件已经被删除,保证了不同设备所确定的文件状态一致。
Description
技术领域
本公开是关于互联网技术领域,具体来说是关于一种文件处理方法、装置及***。
背景技术
随着互联网中数据量的成倍增长,采用硬盘存储数据的方式已不足以满足大量数据的存储需求,而分布式文件***有效解决了这一存储难题,能够由位于不同地点的众多数据节点存储大量数据。为了保证数据一致性,多个数据节点分别存储相同的副本文件,主数据节点存储的副本称为主副本文件,从数据节点存储的副本称为从副本文件。
存储文件时还会涉及到删除文件的操作,当客户端要删除文件时,向主数据节点发送删除文件指令,由主数据节点向从数据节点发送该删除文件指令。在上述过程中,当主数据节点接收到该删除文件指令时,删除所存储的主副本文件,删除完成以后向该客户端发送删除成功消息。而从数据节点接收到该删除文件指令时,删除存储的从副本文件,但无需向该客户端发送删除成功消息。那么,当客户端接收到主数据节点发送的删除成功消息时,即可认为文件已经成功删除。
发明内容
为了解决相关技术中存在的问题,本公开提供了一种文件处理方法、装置及***。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种文件处理方法,应用于分布式文件***中,所述分布式文件***至少包括主节点和多个数据节点,所述多个数据节点用于存储副本文件,所述方法包括:
指定数据节点接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,所述指定数据节点为所述多个数据节点中的任一个;
从所述主节点中下载所述主节点当前存储的状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
将所述文件标识添加到所述状态表中,得到更新后的状态表;
向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表。
在一种可能的实现方式中,所述方法还包括:
所述指定数据节点接收所述客户端发送的读取文件指令,所述读取文件指令包括所述文件标识;
判断当前存储的状态表中是否包括所述文件标识;
如果所述当前存储的状态表中包括所述文件标识,则向所述客户端发送文件删除提示信息,所述文件删除提示信息用于提示待读取的文件已经被删除。
在另一种可能的实现方式中,所述方法还包括:
所述指定数据节点获取当前存储的状态表中所删除文件的文件标识;
将获取到的文件标识对应的文件删除。
在另一种可能的实现方式中,所述状态表至少包括文件删除字段,所述文件删除字段包括所删除文件的文件标识。
在另一种可能的实现方式中,所述多个数据节点包括主数据节点和多个从数据节点,所述方法还包括:
所述指定数据节点为从数据节点时,向所述主数据节点发送删除成功消息,由所述主数据节点向所述客户端发送所述删除成功消息。
根据本公开实施例的第二方面,提供了一种文件处理装置,应用于分布式文件***的指定数据节点中,所述分布式文件***至少包括主节点和多个数据节点,所述多个数据节点用于存储副本文件,所述指定数据节点为所述多个数据节点中的任一个,所述装置包括:
接收模块,用于接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识;
下载模块,用于从所述主节点中下载所述主节点当前存储的状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
更新模块,用于将所述文件标识添加到所述状态表中,得到更新后的状态表;
发送模块,用于向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表。
在一种可能的实现方式中,所述装置还包括:
所述接收模块,还用于接收所述客户端发送的读取文件指令,所述读取文件指令包括所述文件标识;
判断模块,用于判断当前存储的状态表中是否包括所述文件标识;
所述发送模块,还用于如果所述当前存储的状态表中包括所述文件标识,则向所述客户端发送文件删除提示信息,所述文件删除提示信息用于提示待读取的文件已经被删除。
在另一种可能的实现方式中,所述装置还包括:
获取模块,用于获取当前存储的状态表中所删除文件的文件标识;
删除模块,用于将获取到的文件标识对应的文件删除。
在另一种可能的实现方式中,所述状态表至少包括文件删除字段,所述文件删除字段包括所删除文件的文件标识。
在另一种可能的实现方式中,所述多个数据节点包括主数据节点和多个从数据节点,所述指定数据节点为从数据节点时,所述发送模块,还用于向所述主数据节点发送删除成功消息,由所述主数据节点向所述客户端发送所述删除成功消息。
根据本公开实施例的第三方面,提供了一种文件处理装置,应用于分布式文件***的指定数据节点中,所述分布式文件***至少包括主节点和多个数据节点,所述多个数据节点用于存储副本文件,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,所述指定数据节点为所述多个数据节点中的任一个;
从所述主节点中下载所述主节点当前存储的状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
将所述文件标识添加到所述状态表中,得到更新后的状态表;
向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表。
根据本公开实施例的第四方面,提供了一种分布式文件***,所述分布式文件***包括主节点、主数据节点和多个从数据节点;
所述主节点用于存储状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
所述主数据节点和所述多个从数据节点用于存储副本文件;
所述主数据节点还用于接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,并通过与指定数据节点之间的中间数据节点,向所述指定数据节点发送所述删除文件指令,所述指定数据节点为所述多个从数据节点中的任一个;
所述指定数据节点用于接收所述删除文件指令,从所述主节点中下载所述状态表,并将所述文件标识添加到所述状态表中,得到更新后的状态表,向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表。
在一种可能的实现方式中,所述指定数据节点还用于得到更新后的状态表后,通过所述中间数据节点,向所述主数据节点发送删除成功消息,由所述主数据节点向所述客户端发送所述删除成功消息。
本公开的实施例提供的技术方案可以包括以下有益效果:
本实施例提供的方法和装置,通过由主节点存储状态表,状态表用于确定所删除的文件,则指定数据节点接收到删除文件指令时从该主节点中下载当前存储的状态表,将所删除文件的文件标识添加到该状态表中,向该主节点发送该更新后的状态表,实现了对该状态表的更新,保证了分布式文件***中的节点或者客户端根据该主节点存储的状态表均会确定该文件已经被删除,保证了不同设备所确定的文件状态一致。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种分布式文件***的结构示意图;
图2是根据一示例性实施例示出的一种文件处理方法的流程图;
图3是根据一示例性实施例示出的一种文件处理方法的流程图;
图4是根据一示例性实施例示出的一种文件处理装置的框图;
图5是根据一示例性实施例示出的一种文件处理装置的框图;
图6是根据一示例性实施例示出的一种文件处理装置的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
本公开实施例提供一种主节点设置方法及装置,以下结合附图对本公开进行详细说明。
图1是根据一示例性实施例示出的一种分布式文件***的结构示意图,如图1所示,该分布式文件***包括主节点、主数据节点和多个从数据节点;
该主节点用于存储状态表,该状态表至少包括所删除文件的文件标识,且该状态表至少用于确定所删除的文件;该主数据节点和该多个从数据节点用于存储副本文件;
该主数据节点还用于接收客户端发送的删除文件指令,该删除文件指令包括待删除文件的文件标识,并通过与指定数据节点之间的中间数据节点,向该指定数据节点发送该删除文件指令,该指定数据节点为该多个从数据节点中的任一个;
该指定数据节点用于接收该删除文件指令,从该主节点中下载该状态表,并将该文件标识添加到该状态表中,得到更新后的状态表,向该主节点发送该更新后的状态表,由该主节点存储该更新后的状态表。
在一种可能的实现方式中,该指定数据节点还用于得到更新后的状态表后,通过该中间数据节点,向该主数据节点发送删除成功消息,由该主数据节点向该客户端发送该删除成功消息。
在另一种可能的实现方式中,该主数据节点和该多个从数据节点中除该指定数据节点以外的任一数据节点还用于当接收到该指定数据节点发送的删除成功消息时,从该主节点下载该更新后的状态表,并按照已确定的数据节点顺序,向上一个数据节点发送删除成功消息,直至该主数据节点接收到该删除成功消息时,向该客户端发送该删除成功消息。
本实施例中,通过设置状态表,根据状态表中是否包括文件标识来确定对应的文件是否已经被删除,那么,该分布式文件***中的主节点、主数据节点、任一从数据节点以及客户端均根据同一状态表来确定某一文件是否已经被删除,保证了文件状态的一致性,不会出现某个设备查询到文件已经被删除,而其他设备查询到文件还未被删除的情况。
图2是根据一示例性实施例示出的一种文件处理方法的流程图,如图2所示,文件处理方法用于上述图1所示的分布式文件***中,该文件处理方法包括以下步骤:
在步骤201中,指定数据节点接收客户端发送的删除文件指令,该删除文件指令包括待删除文件的文件标识,该指定数据节点为该多个数据节点中的任一个。
在步骤202中,从该主节点中下载该主节点当前存储的状态表,该状态表至少包括所删除文件的文件标识,且该状态表至少用于确定所删除的文件。
在步骤203中,将该文件标识添加到该状态表中,得到更新后的状态表。
在步骤204中,向该主节点发送该更新后的状态表,由该主节点存储该更新后的状态表。
本实施例提供的方法,通过由主节点存储状态表,状态表用于确定所删除的文件,则指定数据节点接收到删除文件指令时从该主节点中下载当前存储的状态表,将所删除文件的文件标识添加到该状态表中,向该主节点发送该更新后的状态表,实现了对该状态表的更新,保证了分布式文件***中的节点或者客户端根据该主节点存储的状态表均会确定该文件已经被删除,保证了不同设备所确定的文件状态一致。
在一种可能的实现方式中,该方法还包括:
该指定数据节点接收该客户端发送的读取文件指令,该读取文件指令包括该文件标识;
判断当前存储的状态表中是否包括该文件标识;
如果该当前存储的状态表中包括该文件标识,则向该客户端发送文件删除提示信息,该文件删除提示信息用于提示待读取的文件已经被删除。
在另一种可能的实现方式中,该方法还包括:
该指定数据节点获取当前存储的状态表中所删除文件的文件标识;
将获取到的文件标识对应的文件删除。
在另一种可能的实现方式中,该状态表至少包括文件删除字段,该文件删除字段包括所删除文件的文件标识。
在另一种可能的实现方式中,该多个数据节点包括主数据节点和多个从数据节点,该方法还包括:
该指定数据节点为从数据节点时,向该主数据节点发送删除成功消息,由该主数据节点向该客户端发送该删除成功消息。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据一示例性实施例示出的一种文件处理方法的流程图,如图3所示,文件处理方法用于上述图1所示的分布式文件***中,该文件处理方法包括以下步骤:
在步骤301中,指定数据节点接收客户端发送的删除文件指令,该删除文件指令包括待删除文件的文件标识。
本实施例中,分布式文件***中的多个数据节点用于存储副本文件,其中的主数据节点存储主副本文件,从数据节点存储从副本文件,主副本文件和对应的多个从副本文件实际上是同一文件的不同副本,其文件标识和内容均相同。其中,文件标识用于唯一确定对应的文件,可以为待删除文件的名称、序号等,本实施例对此不做限定。
通过在多个数据节点上存储同一文件的多个副本文件,可以避免文件丢失,提高了分布式文件***的可靠性。
当客户端要删除存储的文件时,为了保证多个数据节点的一致性,需要将多个数据节点上的副本文件均删除。但是,如果某个数据节点发生故障而未能删除副本文件,而其他数据节点已删除副本文件,该客户端读取文件时,根据所选择的数据节点的不同,所确定的文件状态不同,读取结果也不同,也即是出现了在多个数据节点上确定的文件状态不一致的情况。
因此,为了保证所确定的文件状态一致,本实施例设置一个状态表,该状态表至少包括所删除文件的文件标识,且该状态表至少用于确定所删除的文件。也即是,对于任一文件来说,如果该状态表包括该文件的文件标识,表示该文件已经被删除,如果该状态表不包括该文件的文件标识,表示该文件还没有被删除。
那么,分布式文件***中的任一节点或者客户端均根据该状态表确定某一文件是否已经被删除,在确定文件状态之后才决定是否要读取文件。由于文件状态由该状态表唯一确定,因此不会出现确定的文件状态不一致的情况。
另外,除所删除文件的文件标识之外,该状态表中还可以包括该多个数据节点中每个数据块的属性信息,该属性信息可以包括数据块的标识、访问时间、修改时间、尺寸等,本实施例对此不做限定。
为了维护该状态表,当该客户端要删除某一文件时,获取待删除文件的文件标识,向指定数据节点发送携带该文件标识的删除文件指令,由该指定数据节点接收该删除文件指令,对该状态表进行更新。
其中,该待删除文件可以包括任一个或多个文件,且该待删除文件可以包括音频文件、视频文件、文本文件等,本实施例对此不做限定。该指定数据节点可以为该多个数据节点中的任一个,如主数据节点或者任一从数据节点,本实施例对此也不做限定。
在一种可能的实现方式中,指定数据节点为主数据节点,则客户端向主数据节点发送删除文件指令,主数据节点接收该删除文件指令。
在另一种可能的实现方式中,指定数据节点为任一从数据节点,且该多个数据节点之间存在先后顺序。客户端向主数据节点发送该删除文件指令,由主数据节点接收到该删除文件指令,按照确定的先后顺序将该删除文件指令发送给下一个从数据节点,由接收到该删除文件指令的从数据节点继续将该删除文件指令发送给下一个从数据节点,直至发送给该指定数据节点。也即是,主数据节点通过与该指定数据节点之间的中间数据节点,向该指定数据节点发送该删除文件指令。
例如,该指定数据节点可以为最后一个从数据节点,则当该指定数据节点收到该删除文件指令时,能够确定该多个数据节点未出现故障,均已经收到删除文件指令。
本实施例中,除包括文件标识之外,该删除文件指令还可以包括待删除文件的位置信息,该位置信息用于确定该待删除文件的位置,可以包括相互对应的多个数据节点标识、多个磁盘标识和多个数据块标识等,本实施例对此不做限定。
其中,数据节点中包括一个或多个磁盘,每个磁盘上可以创建一个或多个数据块,数据块中可以存储文件。数据节点标识用于确定存储该待删除文件的数据节点,可以为数据节点的名称、序号等,磁盘标识用于确定数据节点上存储该待删除文件的磁盘,可以为磁盘在对应数据节点中的序号等,数据块标识用于确定数据节点的磁盘上存储该待删除文件的数据块,可以为数据块在磁盘上的序号或者存储地址等,本实施例对此均不做限定。
为了便于存储每个文件的位置信息,可以设置位置信息表,在位置信息表中存储文件的位置信息,该位置信息表可以存储于主节点中,该客户端可以在该主节点中查询该位置信息表。
在一种可能的实现方式中,该位置信息表中的多个数据节点标识可以按照先后顺序排列,则针对于任一个数据节点来说,该数据节点可以从主节点下载位置信息表,根据该多个数据节点标识的先后顺序确定该数据节点的下一个数据节点,从而能够在接收到删除文件指令时向下一个数据节点发送该删除文件指令。
需要说明的是,上述位置信息表和状态表可以为同一个数据表,也可以为不同的数据表,本实施例对此不做限定。其中,当位置信息表和状态表为不同的数据表时,在每次更新状态表时,不会对位置信息表进行更新,不会影响到存储的位置信息。
在步骤302中,指定数据节点从该主节点中下载该主节点当前存储的状态表。
本实施例中,将该状态表存储于主节点中,分布式文件***中的任一节点或者客户端均可从该主节点中下载该状态表,根据该状态表确定某一文件是否已经被删除。
当该指定数据节点接收到删除文件指令时,即可从该主节点下载该主节点当前存储的状态表,从而对该状态表进行更新。
在步骤303中,指定数据节点将该文件标识添加到该状态表中,得到更新后的状态表。
在一种可能的实现方式中,该状态表至少包括文件删除字段,该文件删除字段包括所删除文件的文件标识。也即是,每次要删除文件时,将所删除文件的文件标识添加到该状态表的文件删除字段中。
该状态表可以包括多个文件删除字段,每个文件删除字段只用于存储多个所删除文件中的某一个所删除文件的文件标识,或者该状态表也可以只包括一个文件删除字段,该文件删除字段中列出所有所删除文件的文件标识,从而减小该状态表中的字段数量,节省了该状态表的空间,缩小了该状态表的尺寸,本实施例对文件删除字段的数量不做限定。
另外,为了使得所删除文件的信息更加完整,该指定数据节点除了将所删除文件的文件标识添加到该状态表中之外,还可以将所删除文件的创建时间、修改时间、读取时间、尺寸、格式、类型等其他信息添加到该状态表中,本实施例对该状态表的更新方式不做限定。
例如,每次要删除文件时,将所删除文件的文件标识以及创建时间、修改时间、读取时间、尺寸、格式、类型等其他信息均添加至文件删除字段中。
需要说明的是,该状态表还可以多个数据节点中各个数据块的元数据信息,该元数据信息可以包括数据块的标识、访问时间、修改时间、尺寸等,本实施例对此不做限定。
当要删除文件时,存储该文件的数据块也会相应发生变化,此时可以根据发生的变化,更新该状态表中的该数据块的元数据信息。例如,要删除文件时数据块的尺寸减小,则更新该状态表中存储的数据块尺寸。
举例来说,该状态表中存储的信息可以如下:
其中,BlockStat即为数据块的元数据信息,IdleFiles字段即为文件删除字段,该文件删除字段中包括已经删除的文件的文件删除时间RemoveTimeRemoveTime和文件标识InternalId。
在步骤304中,指定数据节点向该主节点发送该更新后的状态表,由该主节点存储该更新后的状态表。
该主节点接收到更新后的状态表时,删除原来存储的状态表,并存储该更新后的状态表。
需要说明的是,该指定数据节点还可以向该客户端发送删除成功消息,当客户端接收到该删除成功消息时确定文件已经被删除。
在一种可能的实现方式中,指定数据节点为主数据节点,则主数据节点向该客户端发送删除成功消息,当客户端接收到该删除成功消息时确定文件已经被删除。
在另一种可能的实现方式中,指定数据节点为任一从数据节点,该指定数据节点得到更新后的状态表后,通过与主节点之间的中间数据节点,向该主数据节点发送删除成功消息,由该主数据节点向该客户端发送该删除成功消息。
例如,该多个数据节点之间存在先后顺序,则指定数据节点按照确定的先后顺序将该删除成功消息发送给上一个从数据节点,由接收到该删除成功消息的从数据节点继续将该删除文件指令发送给上一个数据节点,直至发送给该主数据节点,由主数据节点向该客户端发送删除成功消息,当客户端接收到该删除成功消息时确定文件已经被删除。也即是,该指定数据节点通过与主数据节点之间的中间数据节点,向客户端发送该删除成功消息。
例如,该指定数据节点可以为最后一个从数据节点,则当该客户端收到该删除成功消息时,能够确定该多个数据节点未出现故障,均已经收到删除成功消息。
需要说明的是,上述过程仅说明了指定数据节点接收到删除文件指令时对状态表的更新过程,而未限定文件删除的时机。而在实际应用中,该指定数据节点为最后一个从数据节点时,每个数据节点均可在接收到该删除文件指令将该文件标识对应的副本文件删除。或者,每个数据节点可以在任一时刻根据该状态表来删除存储的副本文件。
也即是,在任一时刻,对于任一数据节点来说,该数据节点获取当前存储的状态表中所删除文件的文件标识,将获取到的文件标识对应的文件删除。例如,该指定数据节点可以从主节点中下载位置信息表和状态表,获取状态表中的文件标识,在该位置信息表中查询该文件标识对应的位置信息,根据该位置信息查找到要删除的文件,并将该文件删除。
例如,当每个数据节点接收到删除成功消息后删除存储的副本文件,也可以设置多个删除时间,每当到达设置的任一删除时间时,每个数据节点删除存储的副本文件;另外,还可以设置删除条件,当符合删除条件后,每个数据节点删除存储的副本文件,比如设置每个数据节点当前存储的状态表中所删除文件的文件标识数量的阈值,当所删除文件的文件标识数量超过该阈值时,每个数据节点删除存储的副本文件;或者,由分布式文件***的维护人员发出删除指令,每个数据节点收到删除指令后删除存储的副本文件。本实施例不对该删除过程的执行时机进行限定。
在步骤305中,该指定数据节点接收该客户端发送的读取文件指令,该读取文件指令包括该文件标识,判断该状态表中是否包括该文件标识。
当该指定数据节点向该主节点发送该更新后的状态表之后,该指定数据节点可以存储更新后的状态表,或者也可以删除该更新后的状态表,当后续要使用状态表时再从该主节点上下载最新的状态表。
该指定数据节点接收到该客户端发送的读取文件指令时,可以从该主节点中下载状态表或者获取本地存储的状态表,判断该状态表是否包括该文件标识,以判断要读取的文件是否已经被删除。
该读取文件指令还可以包括待读取文件的位置信息,该位置信息用于确定该待读取文件的位置,可以包括相互对应的多个数据节点标识、多个磁盘标识和多个数据块标识等,本实施例对此不做限定。
当该指定数据节点确定该状态表中不包括该文件标识时,表示该文件还没有被删除,则该指定数据节点可以从主节点中下载位置信息表,在该位置信息表中查询该文件标识对应的位置信息,根据该位置信息查找到要读取的文件,将要读取的文件传送给客户端。
在步骤306中,如果该状态表中包括该文件标识,则该指定数据节点向该客户端发送文件删除提示信息,该文件删除提示信息用于提示该客户端待读取的文件已经被删除。
如果该当前存储的状态表中包括该文件标识,表示该客户端要读取的文件已经被删除,不能进行文件读取,则该指定数据节点向该客户端发送文件删除提示信息,当该客户端接收到文件删除提示信息时,即可获知要读取的文件已经被删除。
其中,该文件删除提示信息可以为文本信息、图片信息、提示音信息,本实施例对此不做限定。例如该文件删除提示信息可以为“ERROR_NOT_FOUND”。
本实施例提供的方法,通过由主节点存储状态表,状态表用于确定所删除的文件,则指定数据节点接收到删除文件指令时从该主节点中下载当前存储的状态表,将所删除文件的文件标识添加到该状态表中,向该主节点发送该更新后的状态表,实现了对该状态表的更新,保证了分布式文件***中的节点或者客户端根据该主节点存储的状态表均会确定该文件已经被删除,保证了不同设备所确定的文件状态一致。
图4是根据一示例性实施例示出的一种文件处理装置的框图。参见图4,该装置包括接收模块401,下载模块402、更新模块403和发送模块404。
接收模块401,用于接收客户端发送的删除文件指令,该删除文件指令包括待删除文件的文件标识;
下载模块402,用于从该主节点中下载该主节点当前存储的状态表,该状态表至少包括所删除文件的文件标识,且该状态表至少用于确定所删除的文件;
更新模块403,用于将该文件标识添加到该状态表中,得到更新后的状态表;
发送模块404,用于向该主节点发送该更新后的状态表,由该主节点存储该更新后的状态表。
本实施例提供的装置,通过由主节点存储状态表,状态表用于确定所删除的文件,则指定数据节点接收到删除文件指令时从该主节点中下载当前存储的状态表,将所删除文件的文件标识添加到该状态表中,向该主节点发送该更新后的状态表,实现了对该状态表的更新,保证了分布式文件***中的节点或者客户端根据该主节点存储的状态表均会确定该文件已经被删除,保证了不同设备所确定的文件状态一致。
参见图5,在一种可能的实现方式中,该装置包括接收模块501,下载模块502、更新模块503和发送模块504,该装置还包括:
该接收模块501,还用于接收该客户端发送的读取文件指令,该读取文件指令包括该文件标识;
判断模块505,用于判断当前存储的状态表中是否包括该文件标识;
该发送模块504,还用于如果该当前存储的状态表中包括该文件标识,则向该客户端发送文件删除提示信息,该文件删除提示信息用于提示待读取的文件已经被删除。
在另一种可能的实现方式中,该装置还包括:
获取模块506,用于获取当前存储的状态表中所删除文件的文件标识;
删除模块507,用于将获取到的文件标识对应的文件删除。
在另一种可能的实现方式中,该状态表至少包括文件删除字段,该文件删除字段包括所删除文件的文件标识。
在另一种可能的实现方式中,该多个数据节点包括主数据节点和多个从数据节点,该指定数据节点为从数据节点时,该装置还包括:
该发送模块504,还用于向该主数据节点发送删除成功消息,由该主数据节点向该客户端发送该删除成功消息。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的文件处理装置在处理文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将指定数据节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件处理装置与文件处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据一示例性实施例示出的一种文件处理装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述文件处理方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
该服务器可以用于执行上述实施例中主节点、指定数据节点或者其他数据节点所执行的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种文件处理方法,其特征在于,应用于分布式文件***中,所述分布式文件***至少包括主节点和多个数据节点,所述多个数据节点用于存储副本文件,所述多个数据节点包括主数据节点和多个从数据节点,所述方法包括:
指定数据节点接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,所述指定数据节点为所述多个数据节点中的任一个,所述多个数据节点之间存在先后顺序;
从所述主节点中下载所述主节点当前存储的状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
将所述文件标识添加到所述状态表中,得到更新后的状态表,以使所述指定数据节点在任一时刻获取当前存储的状态表中所删除文件的文件标识;将获取到的文件标识对应的文件删除;
向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表;
删除所述更新后的状态表,当使用状态表时从所述主节点上下载最新的状态表;
所述指定数据节点接收客户端发送的删除文件指令,包括:
所述客户端向所述主数据节点发送所述删除文件指令,所述主数据节点接收到所述删除文件指令后按照确定的先后顺序将所述删除文件指令发送给下一个从数据节点,由接收到所述删除文件指令的从数据节点继续将所述删除文件指令发送给下一个从数据节点,直至发送给所述指定数据节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述指定数据节点接收所述客户端发送的读取文件指令,所述读取文件指令包括所述文件标识;
判断当前存储的状态表中是否包括所述文件标识;
如果所述当前存储的状态表中包括所述文件标识,则向所述客户端发送文件删除提示信息,所述文件删除提示信息用于提示待读取的文件已经被删除。
3.根据权利要求1所述的方法,其特征在于,所述状态表至少包括文件删除字段,所述文件删除字段包括所删除文件的文件标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述指定数据节点为从数据节点时,向所述主数据节点发送删除成功消息,由所述主数据节点向所述客户端发送所述删除成功消息。
5.一种文件处理装置,其特征在于,应用于分布式文件***的指定数据节点中,所述分布式文件***至少包括主节点和多个数据节点,所述多个数据节点用于存储副本文件,所述多个数据节点包括主数据节点和多个从数据节点,所述指定数据节点为所述多个数据节点中的任一个,所述多个数据节点之间存在先后顺序,所述装置包括:
接收模块,用于接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,所述删除文件指令为所述客户端向所述主数据节点发送的删除文件指令,所述主数据节点接收到所述删除文件指令后按照确定的先后顺序将所述删除文件指令发送给下一个从数据节点,由接收到所述删除文件指令的从数据节点继续将所述删除文件指令发送给下一个从数据节点,直至发送给所述指定数据节点;
下载模块,用于从所述主节点中下载所述主节点当前存储的状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
更新模块,用于将所述文件标识添加到所述状态表中,得到更新后的状态表;
获取模块,用于在任一时刻获取当前存储的状态表中所删除文件的文件标识;
删除模块,用于将获取到的文件标识对应的文件删除;
发送模块,用于向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表;
所述装置,用于删除所述更新后的状态表,当使用状态表时从所述主节点上下载最新的状态表。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
所述接收模块,还用于接收所述客户端发送的读取文件指令,所述读取文件指令包括所述文件标识;
判断模块,用于判断当前存储的状态表中是否包括所述文件标识;
所述发送模块,还用于如果所述当前存储的状态表中包括所述文件标识,则向所述客户端发送文件删除提示信息,所述文件删除提示信息用于提示待读取的文件已经被删除。
7.根据权利要求5所述的装置,其特征在于,所述状态表至少包括文件删除字段,所述文件删除字段包括所删除文件的文件标识。
8.根据权利要求5所述的装置,其特征在于,所述指定数据节点为从数据节点时,所述发送模块,还用于向所述主数据节点发送删除成功消息,由所述主数据节点向所述客户端发送所述删除成功消息。
9.一种文件处理装置,其特征在于,应用于分布式文件***的指定数据节点中,所述分布式文件***至少包括主节点和多个数据节点,所述多个数据节点用于存储副本文件,所述多个数据节点包括主数据节点和多个从数据节点,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,所述指定数据节点为所述多个数据节点中的任一个,所述多个数据节点之间存在先后顺序;
从所述主节点中下载所述主节点当前存储的状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
将所述文件标识添加到所述状态表中,得到更新后的状态表;
向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表,以使所述指定数据节点在任一时刻获取当前存储的状态表中所删除文件的文件标识;将获取到的文件标识对应的文件删除;
删除所述更新后的状态表,当使用状态表时从所述主节点上下载最新的状态表;
所述接收客户端发送的删除文件指令,包括:
所述客户端向所述主数据节点发送所述删除文件指令,所述主数据节点接收到所述删除文件指令后按照确定的先后顺序将所述删除文件指令发送给下一个从数据节点,由接收到所述删除文件指令的从数据节点继续将所述删除文件指令发送给下一个从数据节点,直至发送给所述指定数据节点。
10.一种分布式文件***,其特征在于,所述分布式文件***包括主节点和多个数据节点,所述多个数据节点包括主数据节点和多个从数据节点;
所述主节点用于存储状态表,所述状态表至少包括所删除文件的文件标识,且所述状态表至少用于确定所删除的文件;
所述主数据节点和所述多个从数据节点用于存储副本文件;
所述主数据节点还用于接收客户端发送的删除文件指令,所述删除文件指令包括待删除文件的文件标识,并通过与指定数据节点之间的中间数据节点,向所述指定数据节点发送所述删除文件指令,所述指定数据节点为所述多个从数据节点中的任一个,所述多个数据节点之间存在先后顺序;
所述指定数据节点用于接收所述删除文件指令,从所述主节点中下载所述状态表,获取当前存储的状态表中所删除文件的文件标识;将获取到的文件标识对应的文件删除,并将所述文件标识添加到所述状态表中,得到更新后的状态表,向所述主节点发送所述更新后的状态表,由所述主节点存储所述更新后的状态表,以使所述指定数据节点在任一时刻获取当前存储的状态表中所删除文件的文件标识;将获取到的文件标识对应的文件删除;
所述指定数据节点用于,删除所述更新后的状态表,当使用状态表时从所述主节点上下载最新的状态表;
所述指定数据节点用于接收客户端发送的删除文件指令,包括:
所述客户端向所述主数据节点发送所述删除文件指令,所述主数据节点接收到所述删除文件指令后按照确定的先后顺序将所述删除文件指令发送给下一个从数据节点,由接收到所述删除文件指令的从数据节点继续将所述删除文件指令发送给下一个从数据节点,直至发送给所述指定数据节点。
11.根据权利要求10所述的***,其特征在于,所述指定数据节点还用于得到更新后的状态表后,通过所述中间数据节点,向所述主数据节点发送删除成功消息,由所述主数据节点向所述客户端发送所述删除成功消息。
12.根据权利要求10所述的***,其特征在于,所述主数据节点和所述多个从数据节点中除所述指定数据节点以外的任一数据节点还用于当接收到所述指定数据节点发送的删除成功消息时,从所述主节点下载所述更新后的状态表,并按照已确定的数据节点顺序,向上一个数据节点发送删除成功消息,直至所述主数据节点接收到所述删除成功消息时,向所述客户端发送所述删除成功消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610791702.5A CN106407320B (zh) | 2016-08-31 | 2016-08-31 | 文件处理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610791702.5A CN106407320B (zh) | 2016-08-31 | 2016-08-31 | 文件处理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106407320A CN106407320A (zh) | 2017-02-15 |
CN106407320B true CN106407320B (zh) | 2020-07-03 |
Family
ID=58001369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610791702.5A Active CN106407320B (zh) | 2016-08-31 | 2016-08-31 | 文件处理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106407320B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527750A (zh) * | 2020-12-15 | 2021-03-19 | 中孚安全技术有限公司 | 一种国产操作***文件存储方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753349B (zh) * | 2008-12-09 | 2012-08-15 | ***通信集团公司 | 数据节点的升级方法、升级调度节点及升级*** |
CN101539873B (zh) * | 2009-04-15 | 2011-02-09 | 成都市华为赛门铁克科技有限公司 | 数据恢复的方法、数据节点及分布式文件*** |
-
2016
- 2016-08-31 CN CN201610791702.5A patent/CN106407320B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106407320A (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107861686B (zh) | 文件存储方法、服务端和计算机可读存储介质 | |
CN109144785B (zh) | 用于备份数据的方法和装置 | |
WO2015117426A1 (zh) | 文件管理方法及装置 | |
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
WO2013086842A1 (zh) | 一种文件同步方法和装置 | |
CN104503864A (zh) | 一种基于局域网的文件备份方法和装置 | |
CN104182294A (zh) | 一种文件备份、文件恢复方法及装置 | |
WO2017166791A1 (zh) | 应用程序备份方法及装置 | |
CN108810055B (zh) | 一种大文件传输方法及装置 | |
CN112866406B (zh) | 一种数据存储方法、***、装置、设备及存储介质 | |
CN110830580A (zh) | 一种存储数据同步方法及装置 | |
CN111240892A (zh) | 数据备份方法及装置 | |
CN115510163A (zh) | 镜像文件的同步方法、装置、存储介质及电子设备 | |
CN111770153A (zh) | 一种对象下载方法、装置及电子设备和存储介质 | |
CN111176706A (zh) | 终端升级方法、装置、电子设备及存储介质 | |
KR101467583B1 (ko) | 미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체 | |
CN106407320B (zh) | 文件处理方法、装置及*** | |
CN112579877B (zh) | 信源***的控制方法、装置、存储介质和设备 | |
CN109522177A (zh) | 一种任务日志处理***、方法以及装置 | |
CN112000850A (zh) | 进行数据处理的方法、装置、***及设备 | |
CN116756108A (zh) | 一种文件同步方法、***、装置及可读存储介质 | |
TWI571754B (zh) | 用來進行檔案同步控制之方法與裝置 | |
CN110798358A (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN113315801B (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 |