CN110399340A - 一种文件处理方法及装置 - Google Patents
一种文件处理方法及装置 Download PDFInfo
- Publication number
- CN110399340A CN110399340A CN201910576189.1A CN201910576189A CN110399340A CN 110399340 A CN110399340 A CN 110399340A CN 201910576189 A CN201910576189 A CN 201910576189A CN 110399340 A CN110399340 A CN 110399340A
- Authority
- CN
- China
- Prior art keywords
- file
- title
- structural body
- cryptographic hash
- stored
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000003860 storage Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 17
- 238000005457 optimization Methods 0.000 abstract description 8
- 238000013507 mapping Methods 0.000 abstract description 4
- 241000208340 Araliaceae Species 0.000 description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 235000008434 ginseng Nutrition 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000002230 centromere Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
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
-
- 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
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)
- Storage Device Security (AREA)
Abstract
本申请提供一种文件处理方法及装置,所述方法包括:将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;根据每个对象的第二名称对所述待存储文件进行存储处理。本申请以对象内容为参数的哈希值进行存储映射,避免了相同内容的文件对象的重复存储,从而可以减少数据占用的存储空间,实现底层存储空间的优化。
Description
技术领域
本发明涉及计算机领域,尤其涉及文件处理方法及装置。
背景技术
分布式存储长期大规模应用于互联网、云数据中心,能够带来高扩展性和极低的成本控制,具有构建和提供出企业级存储的能力。Sheepdog(一种分布式存储***)是开源社区新兴的分布式块存储文件***,采用完全对称的结构,没有类似元数据服务的中心节点,依靠大量普通PC(Personal Computer,个人计算机)服务器通过网络互联,对外作为一个整体提供存储服务。
然而,普通PC服务器虽然能显著降低成本,但稳定性是完全不可信任的,不可避免的会发生节点宕机,磁盘离线或者损坏等问题。因此,在分布式***中为了保证高可用和数据高可靠,会在两方面进行设计;首先,集群管理采用CFT(Crash Fault Tolerance,一类容忍节点崩坏的集群管理算法)设计,允许不多于半数的集群节点同时宕机,保证业务不间断。其次,数据管理采取多副本冗余策略处理,即数据会存在多份副本,副本分布满足故障隔离,避免数据丢失和单点故障。但是,多副本带来的问题是底层存储空间需要提供额外的存储空间存放副本,Sheepdog也采用这样的冗余来实现高可用性,并提供自动恢复数据,平衡数据存储的特性,因此导致了底层数据大量占用存储空间的问题。
现有Sheepdog的数据存储过程如下:如图1和图2所示,假设文件1以4M大小的空间被切分为1,2,3,4个对象,切分后的对象名称由两部分组成,即hash(“文件1”)+索引index,index为对象切分后的序号;接着,对象管理模块根据存储***的节点个数组成一个哈希环,每个物理节点对象环上的一组节点vnode;最后,以对象名称为参数计算每个对象的哈希值,将该哈希值在哈希环上映射,从而决定对象1,2,3,4所存储的位置;对于不同的副本策略,一个对象还会被映射到多个卷volume上。从上述内容可以看出,现有的数据存储方式存在相同内容的对象的重复存储,从而导致了底层数据大量占用存储空间的问题。
发明内容
本申请所要解决的技术是提供一种文件处理方法及装置,减少底层数据占用的存储空间。
为了解决上述技术问题,本申请提供了一种文件处理方法,所述方法包括:
将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;
根据每个对象的第二名称对所述待存储文件进行存储处理。
可选地,所述根据每个对象的第二名称对所述待存储文件进行存储处理包括:
将每个对象的信息存储到对应的结构体中;
所述根据每个对象对应的结构体对所述待存储文件进行存储处理;
其中,一个结构体对应一个第二名称,第二名称相同的对象的信息存储在同一个结构体中,所述对象的信息包括对象的第一名称、第二名称以及引用记录,所述引用记录为将信息存储到该结构体中的对象的数量,所述第一名称组。
可选地,所述根据每个对象对应的结构体对所述待存储文件进行存储处理包括:
计算每个结构体对应的第三哈希值,其中,所述第三哈希值为以结构体对应的第二名称为参数的哈希值;
根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
可选地,所述方法还包括:
当删除文件时,根据所述文件的每个对象的第二名称查找相应的结构体,将所述结构体中的引用记录的数值减1。
可选地,所述方法还包括:
当结构体中的引用记录的数值为0时,删除所述结构体。
本申请还提供一种文件处理装置,包括:存储器和处理器;所述存储器,用于保存用于文件处理的程序;
所述处理器,用于读取执行所述用于文件处理的程序,执行如下操作:
将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;
根据每个对象的第二名称对所述待存储文件进行存储处理。
可选地,所述根据每个对象的第二名称对所述待存储文件进行存储处理包括:
将每个对象的信息存储到对应的结构体中;
所述根据每个对象对应的结构体对所述待存储文件进行存储处理;
其中,一个结构体对应一个第二名称,第二名称相同的对象的信息存储在同一个结构体中,所述对象的信息包括对象的第一名称、第二名称以及引用记录,所述引用记录为将信息存储到该结构体中的对象的数量,所述第一名称组。
可选地,所述根据每个对象对应的结构体对所述待存储文件进行存储处理包括:
计算每个结构体对应的第三哈希值,其中,所述第三哈希值为以结构体对应的第二名称为参数的哈希值;
根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
可选地,所述处理器,用于读取执行所述用于文件处理的程序,还执行如下操作:
当删除文件时,根据所述文件的每个对象的第二名称查找相应的结构体,将所述结构体中的引用记录的数值减1。
可选地,所述处理器,用于读取执行所述用于文件处理的程序,还执行如下操作:
当结构体中的引用记录的数值为0时,删除所述结构体。
与现有技术相比,本申请包括:将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;根据每个对象的第二名称对所述待存储文件进行存储处理。本申请以对象内容为参数的哈希值进行存储映射,避免了相同内容的文件对象的重复存储,从而可以减少数据占用的存储空间,实现底层存储空间的优化。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是现有技术中Sheepdog的数据存储过程的示意图;
图2是现有技术中Sheepdog的数据存储过程的另一示意图;
图3是本发明实施例一的文件处理方法的流程示意图;
图4是本发明实施例一的文件处理装置的结构示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
实施例一
如图3所示,本实施例提供一种文件处理方法,所述方法包括:
步骤S101、将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;
步骤S102、根据每个对象的第二名称对所述待存储文件进行存储处理。
本实施例中,可以按照不同的大小对文件进行划分,从而分成若干对象。
可选地,所述根据每个对象的第二名称对所述待存储文件进行存储处理包括:
将每个对象的信息存储到对应的结构体中;
所述根据每个对象对应的结构体对所述待存储文件进行存储处理;
其中,一个结构体对应一个第二名称,第二名称相同的对象的信息存储在同一个结构体中,所述对象的信息包括对象的第一名称、第二名称以及引用记录,所述引用记录为将信息存储到该结构体中的对象的数量,所述第一名称组。
可选地,所述根据每个对象对应的结构体对所述待存储文件进行存储处理可以包括:
计算每个结构体对应的第三哈希值,其中,所述第三哈希值为以结构体对应的第二名称为参数的哈希值;
根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
可选地,所述方法还可以包括:
当删除文件时,根据所述文件的每个对象的第二名称查找相应的结构体,将所述结构体中的引用记录的数值减1。
可选地,所述方法还可以包括:
当结构体中的引用记录的数值为0时,删除所述结构体。
上述技术方案基于以对象内容为参数的哈希值进行存储映射,避免了相同内容的文件对象的重复存储,从而可以减少数据占用的存储空间,实现底层存储空间的优化。
如4图所示,本实施例还提供一种文件处理装置,包括:存储器10和处理器11;
所述存储器10,用于保存用于文件处理的程序;
所述处理器11,用于读取执行所述用于文件处理的程序,执行如下操作:
将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;
根据每个对象的第二名称对所述待存储文件进行存储处理。
可选地,所述根据每个对象的第二名称对所述待存储文件进行存储处理包括:
将每个对象的信息存储到对应的结构体中;
所述根据每个对象对应的结构体对所述待存储文件进行存储处理;
其中,一个结构体对应一个第二名称,第二名称相同的对象的信息存储在同一个结构体中,所述对象的信息包括对象的第一名称、第二名称以及引用记录,所述引用记录为将信息存储到该结构体中的对象的数量,所述第一名称组。
可选地,所述根据每个对象对应的结构体对所述待存储文件进行存储处理可以包括:
计算每个结构体对应的第三哈希值,其中,所述第三哈希值为以结构体对应的第二名称为参数的哈希值;
根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
可选地,所述处理器11,用于读取执行所述用于文件处理的程序,还可以执行如下操作:
当删除文件时,根据所述文件的每个对象的第二名称查找相应的结构体,将所述结构体中的引用记录的数值减1。
可选地,所述处理器11,用于读取执行所述用于文件处理的程序,还可以执行如下操作:
当结构体中的引用记录的数值为0时,删除所述结构体。
上述技术方案基于以对象内容为参数的哈希值进行存储映射,避免了相同内容的文件对象的重复存储,从而可以减少数据占用的存储空间,实现底层存储空间的优化。
下面结合具体示例进一步说明本申请的文件处理方法。
示例一
假设有两个待存储文件,文件A和文件B,本示例的文件处理方法可以包括:
步骤1、将待存储文件分为多个对象;
将文件A分为4个对象,对象1、对象2、对象3和对象4;将文件B分为三个对象,对象5、对象6和对象7。
如表1和表2所示,本示例中,第一名称可以称为本地名称,第二名称称为网络名称。
每个对象对应有一个本地名称和一个网络名称。
文件名称 | 对象标识 | 序号 | 对象内容 | 本地名称 | 网络名称 |
A | 对象1 | 1 | a | Hash(A)1 | Hash(a) |
A | 对象2 | 2 | a | Hash(A)2 | Hash(a) |
A | 对象3 | 3 | b | Hash(A)3 | Hash(b) |
A | 对象4 | 4 | c | Hash(A)4 | Hash(c) |
表1
文件名称 | 对象标识 | 序号 | 对象内容 | 本地名称 | 网络名称 |
B | 对象5 | 1 | b | Hash(B)1 | Hash(b) |
B | 对象6 | 2 | b | Hash(B)2 | Hash(b) |
B | 对象7 | 3 | a | Hash(B)3 | Hash(a) |
表2
步骤2、根据对象的网络名称,将每个对象的信息存储到对应的结构体中;
从表3至表5可以看出,每个对象对应有相应的本地名称和网络名称,根据网络名称将每个对象存储到相应的结构体中。
每个结构体对应一个网络名称,结构体1对应的网络名称为Hash(a),结构体2对应的网络成为Hash(b),结构体3对应的网络成为Hash(c)。
对象1、对象2和对象7具有相同的对象内容a。对象1、对象2和对象7的网络名称相同,都是Hash(a)。因此,对象1、对象2和对象7的信息存储在结构体1中。对于结构体1,网络名称为对象1、对象2和对象7共有的网络名称Hash(a),本地名称字段内可以存储对象1的本地名称、对象2的本地名称和对象7的本地名称,引用记录为将信息存储在结构体1中的对象的数量,也就是3。
对象3、对象5和对象6具有相同的对象内容b。对象3、对象5和对象6的网络名称相同,都是Hash(b)。因此,对象3、对象5和对象6的信息存储在结构体2中。对于结构体2,网络名称为对象3、对象5和对象6共有的网络名称Hash(b),本地名称字段内可以存储对象3的本地名称、对象5的本地名称以及对象6的本地名称,引用记录为将信息存储在结构体2中的对象的数量,也就是3。
对象4的对象内容c。对象4的网络名称是Hash(c)。因此,对象4的信息存储在结构体3中。对于结构体3,网络名称为对象4的网络名称Hash(c),本地名称字段内可以存储对象4的本地名称,引用记录为将信息存储在结构体3中的对象的数量,也就是1。
需要说明的是,本示例中,结构体中的本地名称字段对应的存储信息可以表示为一个集合,该集合记录了与该结构体对应的网络名称相同的对象的本地名称的集合。
本示例中,可以将结构体存储在一个以树或者其它便于查找的数据中,以便后续可以快速查找到对象的网络名称。
表3
表4
结构体标识 | 网络名称 | 本地名称组 | 引用记录 | … |
结构体3 | Hash(c) | {Hash(A)4} | 1 | … |
表5
步骤3、计算每个结构体对应的第三哈希值,根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
如表6所示,为结构体1至结构体3对应的第三哈希值,每个结构体对应的第三哈希值为以结构体对应的网络名称为参数的哈希值。
结构体标识 | 第三哈希值 |
结构体1 | Hash(Hash(a)) |
结构体2 | Hash(Hash(b)) |
结构体3 | Hash(Hash(c)) |
表6
本示例中一共有7个对象,这7个对象分别存储到3个结构体中,对于相同对象内容的对象仅对应一个结构体,这样在根据3个结构体对应的哈希值,可以将7个对象映射到对应的存储节点上,具体映射到哪些节点上可以根据哈希环的节点个数以及哈希值的散列情况确定,本实施例中,可以是每个结构体分别对应不同的节点,也可以是多个结构体对应一个节点。
从上述示例可以看出,本申请不再使用以对象名称为参数计算对象的Hash值,而是采取以对象内容为参数计算对象的Hash值,避免了相同内容的文件对象的重复存储,从而可以减少数据占用的存储空间,实现底层存储空间的优化。
示例二
下面在示例一的基础上进一步说明文件删除的过程。
假设在对文件A和文件B进行存储之后,现在需要删除文件A。
删除文件A可以按照对象进行删除,也就是相应的删除对象1、对象2、对象3和对象4.在删除对象1时,从结构体1中删除对应的对象1的信息,并将引用记录的数值减1,这样,在删除对象1之后,结构体1的内容可以如表7所示。
结构体标识 | 网络名称 | 本地名称 | 引用记录 | … |
结构体1 | Hash(a) | {Hash(A)2、Hash(B)3} | 2 | … |
表7
同样,在删除对象2之后,结构体1的内容可以如表8所示。
结构体标识 | 网络名称 | 本地名称 | 引用记录 | … |
结构体1 | Hash(a) | {Hash(B)3} | 1 | … |
表8
同样,在删除对象3之后,结构体2的内容可以如表9所示。
结构体标识 | 网络名称 | 本地名称 | 引用记录 | … |
结构体2 | Hash(b) | {Hash(B)1、Hash(B)2} | 2 | … |
表9
在删除对象4之后,结构体3的引用记录的数值减1后为0,也就是存储***中没有与网络名称Hash(c)对应的对象,此时将删除结构体3。
本示例通过将对象的信息存储在结构体中,可以更加有效的对各对象进行高效管理,实现对象的快速查找以及空间快速回收等优点。
本申请的技术方案,基于对象内容进行存储优化,能够有效节约存储空间,尤其是针对内容相同的文件或者对象,能够带来数量级的空间优化。对于多个内容相同的对象,即对象网络名称相同,则底层仅会对具备该网络名称的对象存储一次;同理,如果多个文件存在大量一致的内容,则可以有效减少重复操作,有效实现了存储空间的优化。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且包括任何信息递送介质。
Claims (10)
1.一种文件处理方法,其特征在于,所述方法包括:
将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;
根据每个对象的第二名称对所述待存储文件进行存储处理。
2.根据权利要求1所述的文件处理方法,其特征在于,所述根据每个对象的第二名称对所述待存储文件进行存储处理包括:
将每个对象的信息存储到对应的结构体中;
所述根据每个对象对应的结构体对所述待存储文件进行存储处理;
其中,一个结构体对应一个第二名称,第二名称相同的对象的信息存储在同一个结构体中,所述对象的信息包括对象的第一名称、第二名称以及引用记录,所述引用记录为将信息存储到该结构体中的对象的数量,所述第一名称组。
3.根据权利要求2所述的文件处理方法,其特征在于,所述根据每个对象对应的结构体对所述待存储文件进行存储处理包括:
计算每个结构体对应的第三哈希值,其中,所述第三哈希值为以结构体对应的第二名称为参数的哈希值;
根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
4.根据权利要求3所述的文件处理方法,其特征在于,所述方法还包括:
当删除文件时,根据所述文件的每个对象的第二名称查找相应的结构体,将所述结构体中的引用记录的数值减1。
5.根据权利要求4所述的文件处理方法,其特征在于,所述方法还包括:
当结构体中的引用记录的数值为0时,删除所述结构体。
6.一种文件处理装置,包括:存储器和处理器;其特征在于:
所述存储器,用于保存用于文件处理的程序;
所述处理器,用于读取执行所述用于文件处理的程序,执行如下操作:
将待存储文件分为多个对象;其中,每个对象对应有第一名称和第二名称,第一名称由第一哈希值和所述对象在所述文件中的序号组成,所述第一哈希值为以文件名称为参数的哈希值;第二名称由第二哈希值组成,所述第二哈希值为以对象内容为参数的哈希值;
根据每个对象的第二名称对所述待存储文件进行存储处理。
7.根据权利要求6所述的文件处理装置,其特征在于,所述根据每个对象的第二名称对所述待存储文件进行存储处理包括:
将每个对象的信息存储到对应的结构体中;
所述根据每个对象对应的结构体对所述待存储文件进行存储处理;
其中,一个结构体对应一个第二名称,第二名称相同的对象的信息存储在同一个结构体中,所述对象的信息包括对象的第一名称、第二名称以及引用记录,所述引用记录为将信息存储到该结构体中的对象的数量,所述第一名称组。
8.根据权利要求7所述的文件处理装置,其特征在于,所述根据每个对象对应的结构体对所述待存储文件进行存储处理包括:
计算每个结构体对应的第三哈希值,其中,所述第三哈希值为以结构体对应的第二名称为参数的哈希值;
根据所述第三哈希值,将待存储文件的每个对象映射到相应的存储节点上。
9.根据权利要求8所述的文件处理装置,其特征在于,所述处理器,用于读取执行所述用于文件处理的程序,还执行如下操作:
当删除文件时,根据所述文件的每个对象的第二名称查找相应的结构体,将所述结构体中的引用记录的数值减1。
10.根据权利要求9所述的文件处理装置,其特征在于,所述处理器,用于读取执行所述用于文件处理的程序,还执行如下操作:
当结构体中的引用记录的数值为0时,删除所述结构体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910576189.1A CN110399340A (zh) | 2019-06-28 | 2019-06-28 | 一种文件处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910576189.1A CN110399340A (zh) | 2019-06-28 | 2019-06-28 | 一种文件处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110399340A true CN110399340A (zh) | 2019-11-01 |
Family
ID=68323659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910576189.1A Pending CN110399340A (zh) | 2019-06-28 | 2019-06-28 | 一种文件处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399340A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090628A (zh) * | 2019-12-20 | 2020-05-01 | 上海米哈游网络科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN113282243A (zh) * | 2021-06-09 | 2021-08-20 | 杭州海康威视***技术有限公司 | 存储对象文件的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236525A (zh) * | 2008-01-24 | 2008-08-06 | 创新科存储技术(深圳)有限公司 | 文件存储、读取、删除及复制方法及其相关*** |
CN107220005A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据操作方法及*** |
CN107229420A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 数据存储方法、读取方法、删除方法和数据操作*** |
US20170300550A1 (en) * | 2015-11-02 | 2017-10-19 | StoreReduce | Data Cloning System and Process |
-
2019
- 2019-06-28 CN CN201910576189.1A patent/CN110399340A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236525A (zh) * | 2008-01-24 | 2008-08-06 | 创新科存储技术(深圳)有限公司 | 文件存储、读取、删除及复制方法及其相关*** |
US20170300550A1 (en) * | 2015-11-02 | 2017-10-19 | StoreReduce | Data Cloning System and Process |
CN107220005A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据操作方法及*** |
CN107229420A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 数据存储方法、读取方法、删除方法和数据操作*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090628A (zh) * | 2019-12-20 | 2020-05-01 | 上海米哈游网络科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN111090628B (zh) * | 2019-12-20 | 2023-11-14 | 上海米哈游网络科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN113282243A (zh) * | 2021-06-09 | 2021-08-20 | 杭州海康威视***技术有限公司 | 存储对象文件的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200257690A1 (en) | Tiering with pluggable storage system for parallel query engines | |
CN103440301B (zh) | 一种数据多副本混合存储方法及*** | |
US8468291B2 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters | |
US20120143873A1 (en) | Method and apparatus for updating a partitioned index | |
US9515878B2 (en) | Method, medium, and system for configuring a new node in a distributed memory network | |
US8837480B2 (en) | Data redistribution in data replication systems | |
KR20200093567A (ko) | 클라이언트 동기화 업데이트들의 효율적인 관리 | |
CN102708165B (zh) | 分布式文件***中的文件处理方法及装置 | |
US20140344221A1 (en) | Partitioning online databases | |
US20140156586A1 (en) | Big-fast data connector between in-memory database system and data warehouse system | |
CN107180113B (zh) | 一种大数据检索平台 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN106201771A (zh) | 数据存储***和数据读写方法 | |
CN106326035A (zh) | 一种基于文件元数据的增量备份方法 | |
CN110399340A (zh) | 一种文件处理方法及装置 | |
CN102508902A (zh) | 云存储***中可变分块大小的块数据分块方法 | |
CN106161193B (zh) | 一种邮件处理方法、装置和*** | |
CN105677915A (zh) | 一种基于引擎的分布式业务数据存取方法 | |
CN112685223A (zh) | 基于文件类型的文件备份 | |
US10831709B2 (en) | Pluggable storage system for parallel query engines across non-native file systems | |
CN107357522A (zh) | 数据处理方法和装置 | |
CN111522791A (zh) | 一种分布式文件重复数据删除***及方法 | |
US9678971B2 (en) | Packing deduplicated data in a self-contained deduplicated repository | |
CN107408239B (zh) | 通过多个邮箱在通信应用中进行海量数据管理的架构 | |
CN107493309A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191101 |