CN107045422B - 分布式存储方法和设备 - Google Patents
分布式存储方法和设备 Download PDFInfo
- Publication number
- CN107045422B CN107045422B CN201610083819.8A CN201610083819A CN107045422B CN 107045422 B CN107045422 B CN 107045422B CN 201610083819 A CN201610083819 A CN 201610083819A CN 107045422 B CN107045422 B CN 107045422B
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- small
- thread service
- thread
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种分布式存储方法,该方法应用于分布式存储系统,系统包括文件系统、第一线程服务和第二线程服务,第一线程服务按照第一规则将文件系统中的M个小文件离线合并成一个第一文件,小文件小于预定字节,M为大于1的整数。本发明实施例的分布式存储方法和设备,通过第一线程服务和第二线程服务,在文件系统上的存储小文件时,能够大幅降低名字节点的内存开销和数据节点的句柄开销,并且能够提高映射归约的计算效率,从而能够提高存储小文件的效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及计算机技术中的分布式存储方法和设备。
背景技术
分布式计算(Hadoop)分布式文件系统(Hadoop Distributed File System,简称“HDFS”)是一个以块的形式存储文件的分布式文件系统,其中,名字节点(NameNode)用于存储文件的元数据,包括目录树的结构和文件存储的快信息,数据节点(DataNode)用于存储数据块。
小文件是指文件的大小小于一个块的大小的文件。HDFS是基于Google的谷歌文件系统(Google File System,简称“GFS”)论文设计的,目的是存储大文件。目前,在HDFS中,块大小的默认值128MB,过去旧版本的块大小的默认值是64MB,块大小的趋势是越来越大。然而,HDFS在大量小文件的场景下,并不能很好地工作。
在HDFS中,小文件存储的问题主要是NameNode的内存管理问题和映射归约(MapReduce,简称“MR”)的性能问题。
一方面,NameNode的内存管理问题具体在于:从经验上来看,HDFS NameNode中的每一个文件,目录和块对象占用的内存大小是150个字节。如果有一千万个文件,每个文件使用的一个块,即每个文件的大小小于一个块,则NameNode将使用大约3GB的内存。如果扩大系统规模,就会远远超出这一水平,因而需要硬件支撑和软件优化,带来新的问题。
另外,HDFS不是针对小文件设计的,因而,不能有效地支持访问小文件。HDFS主要是用来输入输出流式的大型文件的访问,读取小文件通常会导致从一个DataNode到另一个DataNode的大量地查找和检索,是一个低效率的数据访问模式。
另一方面,MR的性能问题具体在于:
MR任务是先执行映射再执行归约,映射的任务数是根据文件数和块数目综合得来的,如果我们每个文件的大小都小于块大小,那对每个文件都有一个映射任务(task),这样每个task读取的文件大小都很小,造成task的启停时间远远大于task计算执行的时间,造成性能上的退化。
如果将小文件合成大文件,每个映射任务处理一个或多个大文件,则每个task就能处理很多小文件。
因此,综合以上两个方面,在HDFS中,大量存储小文件时,存在名字节点的内存开销过大以及映射归约的计算性能较低的问题。
发明内容
本发明实施例提供了一种分布式存储方法,以解决在文件系统中存储小文件时,名字节点的内存开销大以及映射归约的计算性能较低的问题。
第一方面,本发明实施例提供了一种分布式存储方法,该方法应用于分布式存储系统,系统包括文件系统、第一线程服务和第二线程服务,
第一线程服务按照第一规则将文件系统中的M个小文件离线合并成一个第一文件,小文件小于预定字节,M为大于1的整数;
第一线程服务在离线合并的过程中生成M个元数据,M个元数据用于分别指示M个小文件在第一文件中的位置;
第二线程服务将M个元数据加载到元数据集合中,元数据集合包括任意离线合并过程中产生的元数据;
当第二线程服务接收用户发来的第一指令时,第二线程在元数据集合中查找是否存在第一小文件的元数据,第一指令用于指示对第一小文件进行操作;
若第二线程服务在元数据集合中查找到存在第一小文件的元数据,则执行第一指令对应的操作。
因此,本发明实施例的分布式存储方法,通过第一线程服务和第二线程服务,在文件系统上存储小文件时,能够大幅降低名字节点的内存开销和数据节点的句柄开销,并且能够提高映射归约的计算效率,从而能够提高存储小文件的效率。
可选地,第一指令用于指示对第一小文件进行读取时,方法还包括:
若第二线程服务在元数据集合中没有查找到第一小文件的元数据,第二线程服务向用户返回第一小文件不存在的消息。
因此,本发明实施例的分布式存储方法,第二线程服务接收到读取第一小文件的指示后,在元数据集合中没有查找到第一小文件的元数据,第二线程服务向用户返回第一小文件不存在的消息,能够方便用户使用,提高用户体验。
可选地,第一指令用于指示对第一小文件进行读取时,第二线程服务根据执行第一指令对应的操作包括:第二线程服务读取第一小文件的元数据。
因此,本发明实施例的分布式存储方法,第二线程服务通过读取元数据集合中第一文件的元数据进而读取小文件,能够提高读取文件系统中小文件的速率。
可选地,第一指令用于指示对第一小文件进行创建时,方法还包括:
若元数据集合不包括第一小文件的元数据,第二线程服务在文件系统中创建第一小文件。
因此,本发明实施例的分布式存储方法,第二线程服务接收到创建第一小文件的指示后,在元数据集合中没有查找到第一小文件的元数据时,第二线程服务创建第一小文件,能够减少系统不必要的内存开销,提高存储小文件的效率。
可选地,第一指令用于指示对第一小文件进行创建时,第二线程服务根据执行第一指令对应的操作包括:
向用户发送是否覆盖第一小文件内容的提示;
若用户没有输入是否覆盖第一小文件内容时,第二线程服务向用户返回创建失败的消息。
因此,本发明实施例的分布式存储方法,第二线程服务接在元数据集合中查找到第一小文件的元数据后,且用户没有输入是否覆盖第一小文件内容时,第二线程服务向用户返回创建失败的消息,能够方便用户使用,同时减少系统不必要的内存开销,提高存储小文件的效率。
可选地,第一指令用于指示对第一小文件进行创建时,第二线程服务根据执行第一指令对应的操作还包括:
向用户发送是否覆盖第一小文件内容的提示;
若用户输入要覆盖第一小文件内容时,第二线程服务删除元数据集合中的第一小文件的元数据,重新创建元数据集合中第一小文件的元数据。
因此,本发明实施例的分布式存储方法,第二线程服务接在元数据集合中查找到第一小文件的元数据后,且用户输入要覆盖第一小文件内容时,第二线程服务重新创建元数据集合中第一小文件的元数据,能够减少系统内存开销,提高存储小文件的效率。
可选地,第一指令用于指示对第一小文件进行创建时,第二线程服务根据执行第一指令对应的操作还包括:
向用户发送是否覆盖第一小文件内容的提示;
若用户输入要覆盖第一小文件内容时,第二线程服务替换元数据集合中第一小文件的元数据。
因此,本发明实施例的分布式存储方法,第二线程服务接在元数据集合中查找到第一小文件的元数据后,且用户输入要覆盖第一小文件内容时,第二线程服务替换元数据集合中第一小文件的元数据,能够减少系统内存开销,提高存储小文件的效率。
可选地,第一指令用于指示对第一小文件进行删除时,方法还包括:
当元数据集合不包括第一小文件的元数据时,第二线程服务删除文件系统中的第一小文件。
因此,本发明实施例的分布式存储方法,第二线程服务接收到删除第一小文件的指示后,在元数据集合中没有查找到第一小文件的元数据,第二线程服务删除第一小文件,能够减少文件系统中冗余数据,提高存储小文件的效率。
可选地,第一指令用于指示对第一小文件进行删除时,第二线程服务根据执行对第一指令对应的操作包括:
当用户有删除第一文件的权限时,第二线程服务删除元数据集合中的第一小文件的元数据。
因此,本发明实施例的分布式存储方法,用户有删除第一文件的权限时,第二线程服务删除元数据集合中的第一小文件的元数据,能够提供一定的用户管理权限,增强用户体验,提高存储小文件的效率。
可选地,在第二线程服务删除元数据集合中的第一小文件元数据后,第二线程服务将删除过程中生成的增量元数据和deletelog加载到文件系统中,deletelog包括删除信息,删除信息用于指示删除第一文件中第一小文件。
因此,本发明实施例的分布式存储方法,第二线程服务将删除过程中生成的增量元数据和deletelog加载到文件系统中,便于后续删除第一文件中小文件的操作。
可选地,按照第一规则将文件系统中的M个小文件离线合并成一个第一文件,包括:
第一线程服务遍历文件系统中小文件的目录;
第一线程服务按照第二规则将文件系统中所有小文件进行分组;
第一线程服务启动映射归约MR任务,按照第一规则,将每组内至少M个小文件离线合并成一个第一文件;
第一线程服务在离线合并的过程中生成M个元数据,M个元数据用于分别指示M个小文件在第一文件中的位置;
第一线程服务启动检查点(checkpoint)操作,第二线程服务将上述离线合并过程中生成的M个元数据,加载到元数据集合中。
因此,本发明实施例的分布式存储方法,通过第一线程服务和第二线程服务,能够将文件系统中M个小文件离线合并成第一文件,能够大幅降低名字节点的内存开销和数据节点的句柄开销,并且能够提高映射归约的计算效率,从而能够提高存储小文件的效率。
可选地,系统还包括第三线程服务,第三线程服务读取deletelog,并和元数据集合中M个小文件的元数据进行匹配;
若deletelog指示删除第一文件中的N个小文件,删除N个小文件,N为小于M的正整数;
若deletelog指示删除第一文件中的M个小文件,删除第一文件。
因此,本发明实施例的分布式存储方法,通过第三线程服务能够删除第一文件中的无效的小文件或删除第一文件,清除文件系统中的冗余数据,从而提高存储小文件的效率。
可选地,系统还包括第四线程服务,第四线程服务遍历文件系统中小文件的目录,并和元数据集合中元数据进行匹配;
若目录中没有小文件索引到第一文件上,第四线程服务删除第一文件;
若目录中小文件和元数据集合中小文件重名,则调用第二线程服务,删除元数据集合中小文件的元数据;
第四线程服务清除删除过程中生成的增量元数据和deletelog。
因此,本发明实施例的分布式存储方法,通过第四线程服务能够清除系统中的冗余的数据,从而提高存储小文件的效率。
可选地,第一线程服务为离线合并小文件的线程服务,第二线程服务为命名空间的线程服务。
可选地,第三线程服务为离线删除第一文件中小文件的线程服务。
可选地,第四线程服务为清理冗余的线程服务。
可选地,第二规则为按照用户文件权限和用户组文件权限进行分组。
因此,本发明实施例的分布式存储方法,第一线程服务按照第二规则将文件系统中所有小文件按照用户文件权限和用户组文件权限进行分组,能够增强用户权限管理,增强用户体验,提高系统的存储效率。
第二方面,一种分布式存储的设备,其特征在于,包括存储器和处理器以及总线,存储器与处理器通过总线连接通信,存储器存储有程序和指令,处理器调用存储器中的程序和指令,用于执行如第一方面或第一方面的任一可能的实现方式中的方法。
因此,本发明实施例的分布式存储方法和设备,通过第一线程服务和第二线程服务,在文件系统上存储小文件时,能够大幅降低名字节点的内存开销和数据节点的句柄开销,并且能够提高映射归约的计算效率,从而能够提高在文件系统上存储小文件的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的分布式存储方法的示意性流程图;
图2是本发明实施例的分布式存储系统的示意性架构图;
图3是根据本发明实施例的LevelDB的结构示意图;
图4是根据本发明实施例的分布式存储系统的可用性(High Availability,简称“HA”)流程图;
图5是根据本发明实施例的分布式存储系统的另一架构图;
图6是根据本发明实施例的分布式存储方法中离线合并小文件的示意性流程图;
图7是根据本发明实施例的分布式存储方法中目录操作的示意性流程图;
图8是根据本发明实施例的分布式存储方法中读取第一小文件的示意性流程图;
图9是根据本发明实施例的分布式存储方法中删除第一小文件的示意性流程图;
图10是根据本发明实施例的分布式存储方法中删除大文件中小文件的示意性流程图;
图11是根据本发明实施例的分布式存储方法中清除冗余数据的示意性流程图;
图12是根据本发明实施例的分布式存储设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是根据本发明实施例的分布式存储方法的示意性流程图,该方法包括S110至S150。如图1所示,该方法应用于分布式存储系统100,系统100包括文件系统120、第一线程服务111和第二线程服务112,
S110,第一线程服务111按照第一规则将文件系统120中的M个小文件离线合并成一个第一文件,小文件小于预定字节,M为大于1的整数;
S120,第一线程服务111在离线合并的过程中生成M个元数据,M个元数据用于分别指示M个小文件在第一文件中的位置;
S130,第二线程服务112将M个元数据加载到元数据集合中,元数据集合包括任意离线合并过程中产生的元数据;
S140,当第二线程服务112接收用户发来的第一指令时,第二线程服务112在元数据集合中查找是否存在第一小文件的元数据,第一指令用于指示对第一小文件进行操作;
S150,若第二线程服务112在元数据集合中查找到存在第一小文件的元数据,则执行第一指令对应的操作。
因此,本发明实施例的分布式存储方法,通过第一线程服务111和第二线程服务112,在文件系统120上存储小文件时,能够大幅降低名字节点的内存开销和数据节点的句柄开销,并且能够提高映射归约的计算效率,从而能够提高在文件系统上存储小文件的效率。
应理解,该小文件可以是文件的大小小于一个块大小的文件,第一文件可以是文件的大小大于或等于一个块大小的文件,该块的大小可以是目前默认的块的大小,即128MB,也可以是旧版本块的大小,即64MB,本发明实施例不限制块的大小,为便于理解,本发明后续实施例中可以将第一文件称为“大文件”。
应理解,该分布式存储系统100包括文件系统110、第一线程服务111和第二线程服务112。该文件系统110可以为HDFS 110、第一线程服务111可以为离线合并小文件的线程服务111,第二线程服务112可以为命名空间的线程服务112。在本发明后续实施例中,将第一线程服务111以“离线合并小文件的线程服务111”,将第二线程服务以“命名空间的线程服务112”,将文件系统以“HDFS 120”为例进行说明,但本发明实施例对此不做任何限制。
还应理解,小文件后台服务主进程110,可以包括离线合并小文件的线程服务111和命名空间的线程服务112,小文件后台服务主进程,例如FGCService 110,FGCService110可以用于负责调度离线合并数据任务和管理小文件的元数据。
还应理解,如图2所示,本发明实施例的分布式存储系统的示意性架构图,该系统100还可以包括小文件访问接口130,例如SmallFSClient 130,SmallFSClient 130用于提供FGCService 110的访问接口,例如FGCClient 111和提供HDFS 120的访问接口,例如HDFSClient 112。
具体地,SmallFSClient130,可以用于实现小文件访问接口,其中,FGCClient131,可以通过远程过程调用协议(Remote Procedure Call Protocol,简称“RPC”)访问FGCService 110,再通过命名空间的线程服务112访问小文件索引;HDFSClient 132,可以通过RPC访问HDFS 120,访问小文件或大文件。
应理解,该分布式存储系统中的FGCService 110、HDFS 120和SmallFSClient 130可以在同一物理设备上,也可以分别在不同的物理设备上,或者是该分布式存储系统中的任意两个部分在同一物理设备上。
可选地,该分布式存储系统100还可以包括元数据集合。
应理解,FGCService 110可以访问该元数据集合,该元数据集合可以任意一种以键(Key)值(Value)形式存储的小文件的元数据集合,本发明对此不做任何限制。例如,该元数据集合可以是LevelDB或者是元数据库等,本发明后续实施例中的元数据集合均以LevelDB为例进行阐述。
在本发明的实施例中,为方便管理小文件的元数据,提高接口的访问性能,针对每个HDFS 120上的小文件目录可以创建一个LevelDB,用于存储小文件的元数据,该LevelDB可以如图3所示。
具体地,如图3所示,该LevelDB的元数据结构包括键和值,其中,键用于表示小文件的文件名,例如,小文件1、小文件2、小文件n;值包括大文件名、小文件的大小以及小文件在大文件中的偏移量,例如,值中的大文件1:1024:0表示,大文件名为大文件1,大文件中小文件的大小为1024k,小文件在大文件中的偏移量为0,同理,例如,大文件2:2345:1024或大文件n:1024:xxxx。
因此,通过FGCService 110能够将小文件离线合并成大文件,并且以键和值的形式存储HDFS 120的小文件的元数据,能够减少HDFS 120中文件和块的数据量,从而达到减少名字节点中内存开销和数据节点的句柄的目的,提高分布式存储系统的可扩展性。
可选地,分布式存储系统100还可以包括一个主FGCService和至少一个备FGCService。
应理解,备FGCService可以包括离线合并小文件的线程服务111和命名空间的线程服务112,具体地,备FGCService可以作为备用的FGCService,例如,当主FGCService出现故障时,分布式存储系统100可以使用备FGCService代替主FGCService。
如图4所示是根据本发明实施例的分布式存储系统的HA流程图,当分布式存储系统100中包括两个FGCService时,两个FGCService 110启动后注册到分布式应用程序协调服务(Zookeeper,简称“ZK”)上,尝试自己升主,能够成功建立时域(Session)目录的就是主(Active)FGCService 110,另一个则为备(Standby)FGCService 140。
应理解,该主FGCService 110可以访问LevelDB 1,该备FGCService 140可以访问LevelDB 2,该LevelDB 1和LevelDB 2都可以用于存储HDFS 120上的小文件的元数据,并且该LevelDB 1和LevelDB 2之间的元数据同步,可以通过增量元数据(Editlog)进行,该增量元数据可以存储在HDFS 120上,保证可靠性。
还应理解,ZK可以是一个或者多个,该ZK可以存储状态信息,具体地,可以存储FGCService中哪一个FGCService为主FGCService 110,哪一个为备FGCService 140。
具体地,FGCClient 111可以通过RPC访问主FGCService,HDFSClient112可以通过RPC访问HDFS 120。
应理解,该ZK可以包括一个ZK或者可以是一个ZK集群,该ZK集群可以是包括至少一个ZK。
应理解,主FGCService 110可以生成存储在HDFS 120上的增量元数据,备FGCService 140可以定期获取该增量元数据,进行Checkpoint操作,调用命名空间的服务线程112将该增量元数据加载到备FGCService 140的LevelDB 2中。
因此,本发明的实施例的分布式存储方法,通过主FGCService 110和备FGCService 140,在HDFS 120上存储小文件时,能够提高系统的可靠性,并且能够提高映射归约的计算效率,从而能够提高在HDFS上存储小文件的效率。
可选地,FGCService 110还可以包括第三线程服务113,该第三线程服务可以为离线删除大文件中小文件的线程服务113,该离线删除大文件中小文件的线程服务113,可以用于删除大文件中的小文件。
可选地,FGCService 110还可以包括第四线程服务114,该第四线程服务可以为清理冗余的线程服务114,该清理冗余的线程服务114,可以用于清除HDFS 120或FGCService110上的冗余数据。
因此,应理解,FGCService 110可以用于调度离线合并、删除和清理冗余数据任务;管理小文件的元数据;提供远程过程调用协议RPC访问元数据的接口,并支持基于ZK的HA部署。
可选地,如图5所示,是根据本发明实施例的分布式存储系统的架构图,该分布式存储系统100还可以包括:离线删除大文件中的小文件的线程服务113、清理冗余的线程服务114和一个备FGCService 140。
还应理解,当主FGCService 110没有出现故障时,系统通常不会启用备FGCService 120,因此,本发明后续实施例中的FGCService均以主FGCService 110为例进行阐述,并且将主FGCService 110简称为“FGCService110”,主FGCService 110访问的LevelDB 1简称为“LevelDB”。
具体地,如图6所示,用户可以根据需求,访问SmallFSClient 130,其中,用户可以通过访问FGCClient 131,实现读取小文件、创建小文件、删除小文件以及目录相关的操作,同时,FGCService 110可以定时自启动合并小文件或者删除大文件中的小文件或者清理冗余数据的任务。
因此,本发明的实施例的分布式存储方法,通过该分布式存储系统,在HDFS 120上存储小文件时,能提高映射归约的计算效率,并且能够支持删除小文件或者小文件目录,还能够提供用户的权限管理功能,从而能够提高在HDFS 120上存储小文件的效率。
上述内容描述了本发明实施例的分布式存储方法,下面将具体描述该分布式存储方法中各部分功能的具体实现方式。
应理解,FGCService 110包括离线合并小文件的线程服务111,例如,MergeService111,该离线合并小文件的线程服务111可以定时被启动。如图6所示,是根据本发明的分布式存储方法中离线合并小文件的方法的示意性流程图,当FGCService 110定时启动离线合并小文件的线程服务111时,在分布式存储系统100中,可以执行以下操作:
离线合并小文件的线程服务111,遍历HDFS 120中的小文件目录,将小文件进行分组。
具体地,离线合并小文件的线程服务111,把文件系统中的小文件可以按照第二规则进行分组,例如,先按用户分组,再把每组内的小文件按照大小之和分组,应理解,离线合并小文件的线程服务111,还可以根据其他条件对小文件进行分组,本发明对此不做任何限制。
离线合并小文件的线程服务111,启动MR任务,按照第一规则,将每组小文件合并成一个大文件,并且启动checkpoint操作,调用命名空间的线程服务112将合并过程中生成的增量元数据,加载到LevelDB中。
具体地,MR任务或者checkpoint操作都可以是定时启动的,第一规则可以是同目录下的文件的大小,小于一定的配置阈值,并且生成时间在一定时间以前的小文件,按文件权限的用户和用户组进行分组,组的大小达到大文件的大小时进行合并,本发明对文件系统中,将小文件离线合并成一个大文件的合并规则不作任何限制。
应理解,该配置阈值可以是提前设定的阈值也可以是随机设定的阈值,该一定时间以前可以指一天以前或者12个小时以前,本发明对此不做任何限制。
可选地,在离线合并小文件的线程服务111启动checkpoint操作后,离线合并小文件的线程服务111,删除HDFS 120中完成合并的小文件。
因此,本发明的实施例,通过离线合并小文件的线程服务111和命名空间的线程服务112,能够将HDFS 120中的小文件离线合并成大文件,并且支持删除完成合并的小文件,从而能够提高在HDFS 120上存储小文件的效率。
可选地,如图7所示,是根据本发明实施例的分布式存储方法中目录操作的示意性流程图,在分布式存储系统100中,FGCService 110包括命名空间的线程服务112,当用户通过FGCClient 131发出删除HDFS 120目录的请求时,命名空间的线程服务112,可以删除HDFS 120目录和LevelDB,并且加载删除过程中生成的增量元数据到HDFS 120中。
可选地,如图7所示,在分布式存储系统100中,当用户通过HDFSClient132,发出读或写或修改HDFS目录的请求时,HDFSClient 132可以访问HDFS 120,在HDFS 120上实现读或写或修改HDFS 120目录。
应理解,该HDFS目录和LevelDB中的内容可以是对应的,包括小文件的元数据,只是对于小文件的元数据的存储形式可能有所不同。
因此,本发明的实施例,用户可以通过命名空间的线程服务112以及HDFS 120,实现对小文件目录的相关操作,从而能够提高在HDFS 120上存储小文件的效率。
可选地,如图8所示,是本发明实施例的分布式存储方法中读取小文件的示意性流程图,在分布式存储系统100中,当用户通过HDFSClient 132,发出读取第一小文件的请求时,并且当HDFS 120包括该第一小文件时,用户可以通过HDFSClient 132读取该第一小文件;当HDFS 120不包括该第一小文件时,FGCClient 131,可以访问命名空间的线程服务112。
具体地,当LevelDB中不包括第一小文件的元数据时,命名空间的线程服务112向用户返回第一小文件不存在的消息。
当LevelDB中包括第一小文件的元数据时,命名空间的线程服务112,读取第一小文件的元数据,并通过该第一小文件的元数据,访问HDFS 120中的第一小文件对应的合并后的大文件。
因此,本发明的实施例,用户可以通过命名空间的线程服务112,能够读取HDFS120上的小文件,从而能够提高在HDFS 120上读取小文件的效率。
可选地,在分布式存储系统100中,当用户通过FGCClient 131,发出创建第一小文件的请求时,命名空间的线程服务112可以判断LevelDB中是否存在第一小文件的元数据。
具体地,当LevelDB包括第一小文件的元数据,且用户输入要覆盖第一小文件的内容时,命名空间的线程服务112,可以删除LevelDB中的第一小文件的元数据,重新创建LevelDB中的第一小文件的元数据。
当LevelDB包括第一小文件的元数据,且用户没有输入是否覆盖第一小文件的内容时,命名空间的线程服务112,可以向用户返回创建失败的消息。
当LevelDB不包括第一小文件的元数据时,HDFSClient 132可以调用HDFS 120,创建该第一小文件。
因此,本发明的实施例,用户可以通过命名空间的线程服务112,能够创建小文件,从而能够提高在HDFS 120上存储小文件的效率。
可选地,如图9所示是根据本发明实施例的分布式存储方法中删除小文件的示意性流程图,在分布式存储系统100中,当用户通过FGCClient 131,发出删除第一小文件的请求时,命名空间的线程服务112可以判断LevelDB中是否存在第一小文件的元数据。
具体地,当LevelDB不包括第一小文件的元数据时,则删除HDFS中的第一小文件。
当LevelDB包括第一小文件的元数据时,且用户有删除第一小文件对应的合并后的大文件的权限时,删除LevelDB中的第一小文件的元数据,并且加载删除过程中产生的增量元数据和deletelog到HDFS 120。
应理解,该增量元数据可以用于同步主备节点的元数据,deletelog可以包括删除信息,删除信息可以用于后台删除服务删除大文件中第一小文件。
因此,本发明的实施例,用户可以通过命名空间的线程服务112,能够删除小文件以及LevelDB中小文件的元数据,从而能够提高在HDFS 120上存储小文件的效率。
可选地,在分布式存储系统100中,可以包括离线删除大文件中小文件的线程服务113,该离线删除大文件中小文件的线程服务113可以定时被启动。当FGCService 110定时启动离线删除大文件中小文件的线程服务113时,如图10所示,本发明实施例的分布式存储方法中删除大文件中小文件的示意性流程图,在分布式存储系统100中,可以包括以下操作:
离线删除大文件中小文件的线程服务113,读取deletelog的大文件和元数据集合中小文件的元数据;大文件可能包括需要删除的小文件和需要保留的小文件,若deletelog指示删除大文件中的N个小文件,删除N个小文件;若deletelog指示删除大文件中的所有小文件,删除该大文件。
离线删除大文件中小文件的线程服务113,启动MR任务,从大文件中,获取要保留的小文件数据,重新生成新的大文件;启动checkpoint操作,调用命名空间的线程服务112,将删除过程中生成的增量元数据,加载到元数据集合中。
离线删除大文件中小文件的线程进程113,删除该大文件和deletelog。
因此,本发明的实施例的分布式存储的方法,用户可以通过离线删除大文件中小文件的线程服务113,能够删除大文件中的小文件,从而能够提高在HDFS 120上存储小文件的效率。
可选地,在分布式存储系统100中,可以包括清除冗余的线程服务114,该清除冗余的线程服务114可以定时被启动。当FGCService 110定时启动清除冗余的线程服务114时,如图11所示,是根据本发明实施例的分布式存储方法中清除冗余的示意性流程图,在分布式存储系统100中,可以包括以下操作:
清理冗余的线程服务114,遍历HDFS 120上的小文件的目录,并和LevelDB中小文件的元数据进行匹配;当目录中的小文件没有索引到小文件的元数据中的大文件上,则删除该大文件;当目录中的小文件和小文件的元数据中的小文件重名,则调用命名空间的线程服务112,删除LevelDB中的小文件的元数据;
可选地,清理冗余的线程服务114,在删除LevelDB中的小文件的元数据之后,调用离线删除大文件中小文件的线程服务113,执行离线删除大文件中小文件的线程服务。
具体地,清理冗余的线程服务114,可以调用离线删除大文件中小文件的线程服务113,清除增量元数据、deletelog以及其他垃圾数据。
因此,本发明的实施例,通过清除冗余数据的线程服务114,能够清除系统中的冗余数据,从而能够提高在HDFS 120上存储小文件的效率。
上文中结合图1至图11,详细描述了根据本发明实施例的分布式存储方法,下面将描述根据本发明实施例的分布式存储设备。
图12是根据本发明实施例的分布式存储设备的示意图,一种分布式存储的设备200,其特征在于,包括存储器210和处理器220以及总线230,存储器210与处理器220通过总线230连接通信,存储器210存储有程序和指令,处理器220调用存储器210中的程序和指令,用于执行图1的方法。
应理解,设备200还可以包括发送器240和接收器250,接收器250可以用于接收指令或信息等,发送器240可以用于发送指令或信息等。
应理解,图12中的设备200可用于执行本发明实施例中的方法,并且设备200中的各个部分的上述和其它操作和/或功能分别为了实现图1中各个方法的相应流程,为了简洁,在此不再赘述。
本发明实施例的分布式存储方法,通过分布式存储设备200,在文件系统上的存储小文件时,能够大幅降低名字节点的内存开销和数据节点的句柄开销,并且能够提高映射归约的计算效率,从而能够提高存储小文件的效率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种分布式存储的方法,其特征在于,所述方法应用于分布式存储系统,所述系统包括文件系统、第一线程服务和第二线程服务,
所述第一线程服务按照第一规则将所述文件系统中的M个小文件离线合并成一个第一文件,所述小文件小于预定字节,M为大于1的整数;
所述第一线程服务在所述离线合并的过程中生成M个元数据,所述M个元数据用于分别指示所述M个小文件在所述第一文件中的位置;
所述第二线程服务将所述M个元数据加载到元数据集合中,所述元数据集合包括任意离线合并过程中产生的元数据;
当所述第二线程服务接收用户发来的第一指令时,所述第二线程在所述元数据集合中查找是否存在第一小文件的元数据,所述第一指令用于指示对所述第一小文件进行操作;
若所述第二线程服务在所述元数据集合中查找到存在所述第一小文件的元数据,则执行所述第一指令对应的操作;
其中,所述按照第一规则将所述文件系统中的M个小文件离线合并成一个所述第一文件,包括:
所述第一线程服务遍历所述文件系统中小文件的目录;
所述第一线程服务按照用户文件权限和用户组文件权限,将所述文件系统中所有小文件进行分组;
所述第一线程服务启动映射归约MR任务,按照所述第一规则,将每组内至少M个小文件离线合并成一个所述第一文件。
2.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行读取时,所述方法还包括:
若所述第二线程服务在所述元数据集合中没有查找到所述第一小文件的元数据,所述第二线程服务向用户返回所述第一小文件不存在的消息。
3.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行读取时,所述第二线程服务根据执行所述第一指令对应的操作包括:
所述第二线程服务读取所述第一小文件的元数据。
4.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行创建时,所述方法还包括:
若所述元数据集合不包括所述第一小文件的元数据,所述第二线程服务在所述文件系统中创建所述第一小文件。
5.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行创建时,所述第二线程服务根据执行所述第一指令对应的操作包括:
向用户发送是否覆盖所述第一小文件内容的提示;
若用户没有输入是否覆盖所述第一小文件内容时,所述第二线程服务向用户返回创建失败的消息。
6.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行创建时,所述第二线程服务根据执行所述第一指令对应的操作还包括:
向用户发送是否覆盖所述第一小文件内容的提示;
若用户输入要覆盖所述第一小文件内容时,所述第二线程服务删除所述元数据集合中的所述第一小文件的元数据,重新创建所述元数据集合中所述第一小文件的元数据。
7.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行删除时,所述方法还包括:
当所述元数据集合不包括所述第一小文件的元数据时,所述第二线程服务删除所述文件系统中的所述第一小文件。
8.如权利要求1所述的方法,其特征在于,所述第一指令用于指示对所述第一小文件进行删除时,所述第二线程服务根据执行对所述第一指令对应的操作包括:
当用户有删除第一文件的权限时,所述第二线程服务删除所述元数据集合中的所述第一小文件的元数据。
9.如权利要求8所述的方法,其特征在于,在所述第二线程服务删除所述元数据集合中的所述第一小文件元数据后,所述第二线程服务将所述删除过程中生成的增量元数据和deletelog加载到所述文件系统中,所述deletelog包括删除信息,所述删除信息用于指示删除所述第一文件中所述第一小文件。
10.如权利要求9所述的方法,其特征在于,所述系统还包括第三线程服务,所述第三线程服务读取所述deletelog,并和所述元数据集合中M个小文件的元数据进行匹配;
若所述deletelog指示删除所述第一文件中的N个小文件,删除所述N个小文件,N为小于M的正整数;
若所述deletelog指示删除所述第一文件中的M个小文件,删除所述第一文件。
11.如权利要求1-10任一项所述的方法,其特征在于,所述系统还包括第四线程服务,所述第四线程服务遍历所述文件系统中小文件的目录,并和所述元数据集合中元数据进行匹配;
若所述目录中没有小文件索引到所述第一文件上,所述第四线程服务删除所述第一文件;
若所述目录中小文件和所述元数据集合中小文件重名,则调用所述第二线程服务,删除所述元数据集合中小文件的元数据;
所述第四线程服务清除删除过程中生成的增量元数据和deletelog。
12.如权利要求1所述的方法,其特征在于,所述第一线程服务为离线合并小文件的线程服务,所述第二线程服务为命名空间的线程服务。
13.如权利要求10所述的方法,其特征在于,所述第三线程服务为离线删除第一文件中小文件的线程服务。
14.如权利要求11所述的方法,其特征在于,所述第四线程服务为清理冗余的线程服务。
15.一种分布式存储的设备,其特征在于,包括存储器和处理器以及总线,所述存储器与所述处理器通过所述总线连接通信,所述存储器存储有程序和指令,所述处理器调用所述存储器中的程序和指令,用于执行如权利要求1-14任一项所述方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610083819.8A CN107045422B (zh) | 2016-02-06 | 2016-02-06 | 分布式存储方法和设备 |
PCT/CN2016/095228 WO2017133216A1 (zh) | 2016-02-06 | 2016-08-15 | 分布式存储方法和设备 |
US15/851,212 US11301154B2 (en) | 2016-02-06 | 2017-12-21 | Distributed storage method and device |
US17/688,030 US11809726B2 (en) | 2016-02-06 | 2022-03-07 | Distributed storage method and device |
US18/474,959 US20240020038A1 (en) | 2016-02-06 | 2023-09-26 | Distributed Storage Method and Device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610083819.8A CN107045422B (zh) | 2016-02-06 | 2016-02-06 | 分布式存储方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107045422A CN107045422A (zh) | 2017-08-15 |
CN107045422B true CN107045422B (zh) | 2020-12-01 |
Family
ID=59500411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610083819.8A Active CN107045422B (zh) | 2016-02-06 | 2016-02-06 | 分布式存储方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11301154B2 (zh) |
CN (1) | CN107045422B (zh) |
WO (1) | WO2017133216A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196841B (zh) * | 2018-06-21 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 文件的存储方法和装置、查询方法和装置及服务器 |
US11036678B2 (en) * | 2018-06-27 | 2021-06-15 | Aetna Inc. | Optimizing files stored in a distributed file system |
CN108921728B (zh) * | 2018-07-03 | 2020-11-13 | 北京科东电力控制系统有限责任公司 | 基于电网调度系统的分布式实时库系统 |
CN109240999A (zh) * | 2018-08-24 | 2019-01-18 | 浪潮电子信息产业股份有限公司 | 一种基于小文件的自动化聚合打包方法及系统 |
CN109344119B (zh) * | 2018-10-24 | 2023-04-28 | 三六零科技集团有限公司 | 文件合并处理方法、装置、计算设备及计算机存储介质 |
CN109408466B (zh) * | 2018-11-01 | 2020-03-13 | 江苏农牧科技职业学院 | 一种农业物联网用冗余数据处理方法及装置 |
CN111666260A (zh) * | 2019-03-08 | 2020-09-15 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及装置 |
CN111857538A (zh) * | 2019-04-25 | 2020-10-30 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置及存储介质 |
CN110297810B (zh) * | 2019-07-05 | 2022-01-18 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
CN111352897A (zh) * | 2020-03-02 | 2020-06-30 | 广东科徕尼智能科技有限公司 | 一种实时数据存储方法、设备、存储介质 |
US11243695B2 (en) | 2020-05-28 | 2022-02-08 | International Business Machines Corporation | Leasing unordered items in namespace indices |
US11188419B1 (en) * | 2020-05-28 | 2021-11-30 | International Business Machines Corporation | Namespace indices in dispersed storage networks |
US11500700B2 (en) | 2020-05-28 | 2022-11-15 | International Business Machines Corporation | Leasing prioritized items in namespace indices |
US11194660B1 (en) * | 2020-05-28 | 2021-12-07 | International Business Machines Corporation | Listing and protocol for namespace index |
CN112231293B (zh) * | 2020-09-14 | 2024-07-19 | 杭州数梦工场科技有限公司 | 文件读取方法、装置、电子设备和存储介质 |
CN112256650B (zh) * | 2020-10-20 | 2024-05-31 | 广州市百果园网络科技有限公司 | 存储空间管理方法、装置、设备及存储介质 |
CN112434000B (zh) * | 2020-11-20 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种基于hdfs的小文件合并方法、装置及设备 |
CN112579533A (zh) * | 2020-12-25 | 2021-03-30 | 华录光存储研究院(大连)有限公司 | 一种小文件存储方法、装置及计算机设备 |
CN112800010A (zh) * | 2021-01-13 | 2021-05-14 | 新华三大数据技术有限公司 | 一种hdfs文件自动清理方法、装置及存储介质 |
CN112948330A (zh) * | 2021-02-26 | 2021-06-11 | 拉卡拉支付股份有限公司 | 数据合并方法、装置、电子设备、存储介质及程序产品 |
CN113177024B (zh) * | 2021-06-29 | 2021-09-14 | 南京烽火星空通信发展有限公司 | 一种海量数据场景下的数据全局合并方法 |
CN113609092B (zh) * | 2021-06-30 | 2024-02-27 | 济南浪潮数据技术有限公司 | 分布式存储对接hdfs客户端的方法、系统、终端及存储介质 |
US12079477B2 (en) * | 2022-07-20 | 2024-09-03 | Dell Products, L.P. | Optimizing backend workload processing in a storage system |
CN115981558A (zh) * | 2022-12-22 | 2023-04-18 | 上海爱数信息技术股份有限公司 | 一种适用于块设备的leveldb存储方法及存储系统 |
CN118260244B (zh) * | 2024-05-29 | 2024-08-09 | 杭州玳数科技有限公司 | 一种分布式小文件的治理方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702666B2 (en) * | 2002-06-06 | 2010-04-20 | Ricoh Company, Ltd. | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part |
FI20041668A0 (fi) | 2004-12-23 | 2004-12-23 | Nokia Corp | Menetelmä veloitusominaisuuksien muodostamiseksi |
US7606842B2 (en) * | 2006-09-27 | 2009-10-20 | Hewlett-Packard Development Company, L.P. | Method of merging a clone file system with an original file system |
WO2009134772A2 (en) * | 2008-04-29 | 2009-11-05 | Maxiscale, Inc | Peer-to-peer redundant file server system and methods |
US8850126B2 (en) * | 2010-01-08 | 2014-09-30 | Netapp, Inc. | Exclusive access during a critical sub-operation to enable simultaneous operations |
US8234372B2 (en) * | 2010-05-05 | 2012-07-31 | Go Daddy Operating Company, LLC | Writing a file to a cloud storage solution |
US8495296B2 (en) * | 2010-05-18 | 2013-07-23 | International Business Machines Corporation | System and method for optimizing data remanence over hubrid disk clusters using various storage technologies |
US8239391B2 (en) * | 2010-07-13 | 2012-08-07 | Microsoft Corporation | Hierarchical merging for optimized index |
US9201890B2 (en) * | 2010-10-04 | 2015-12-01 | Dell Products L.P. | Storage optimization manager |
US8589454B2 (en) * | 2011-01-17 | 2013-11-19 | International Business Machines Corporation | Computer data file merging based on file metadata |
US9465810B2 (en) * | 2011-07-20 | 2016-10-11 | Veritas Technologies Llc | Method and system for a fast full style system check using multithreaded read ahead |
US9043280B1 (en) * | 2011-08-15 | 2015-05-26 | Symantec Corporation | System and method to repair file system metadata |
CN102332029B (zh) * | 2011-10-15 | 2013-04-17 | 西安交通大学 | 一种基于Hadoop 的海量可归类小文件关联存储方法 |
US9223500B1 (en) * | 2012-06-29 | 2015-12-29 | Emc Corporation | File clones in a distributed file system |
US9009434B2 (en) * | 2012-08-13 | 2015-04-14 | International Business Machines Corporation | Methods and systems for data cleanup using physical image of files on storage devices |
CN102902716A (zh) | 2012-08-27 | 2013-01-30 | 苏州两江科技有限公司 | 基于Hadoop分布式计算平台的存储系统 |
CN103020135B (zh) | 2012-11-20 | 2016-01-06 | 北京思特奇信息技术股份有限公司 | 一种通信详单计费帐务的简化方法和简化系统 |
US9678971B2 (en) * | 2013-01-10 | 2017-06-13 | International Business Machines Corporation | Packing deduplicated data in a self-contained deduplicated repository |
CN103020315B (zh) | 2013-01-10 | 2015-08-19 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
US9430164B1 (en) * | 2013-02-08 | 2016-08-30 | Emc Corporation | Memory efficient sanitization of a deduplicated storage system |
US8972465B1 (en) * | 2013-03-15 | 2015-03-03 | Emc Corporation | Burst buffer appliance with small file aggregation |
US9727577B2 (en) * | 2013-03-28 | 2017-08-08 | Google Inc. | System and method to store third-party metadata in a cloud storage system |
US9559996B1 (en) * | 2013-07-02 | 2017-01-31 | Google Inc. | Systems and methods for integrating cloud storage and network service |
CN103500089A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种适应于Mapreduce计算模型的小文件存储系统 |
US9390096B2 (en) * | 2014-01-10 | 2016-07-12 | International Business Machines Corporation | Fast creation of a master GFS2 file system |
US9772787B2 (en) * | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
CN104133882B (zh) * | 2014-07-28 | 2017-06-23 | 四川大学 | 一种基于hdfs的小文件处理方法 |
CN104778229A (zh) * | 2015-03-31 | 2015-07-15 | 南京邮电大学 | 基于Hadoop的电信业务小文件存储系统及方法 |
US10146782B1 (en) * | 2015-06-30 | 2018-12-04 | EMC IP Holding Company LLC | Secure erasure of files by a filesystem |
US10691553B2 (en) * | 2015-12-16 | 2020-06-23 | Netapp, Inc. | Persistent memory based distributed-journal file system |
US10521344B1 (en) * | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US10764789B2 (en) | 2017-08-11 | 2020-09-01 | Comcast Cable Communications, Llc | Application-initiated network slices in a wireless network |
-
2016
- 2016-02-06 CN CN201610083819.8A patent/CN107045422B/zh active Active
- 2016-08-15 WO PCT/CN2016/095228 patent/WO2017133216A1/zh active Application Filing
-
2017
- 2017-12-21 US US15/851,212 patent/US11301154B2/en active Active
-
2022
- 2022-03-07 US US17/688,030 patent/US11809726B2/en active Active
-
2023
- 2023-09-26 US US18/474,959 patent/US20240020038A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
Non-Patent Citations (1)
Title |
---|
HDFS中文件存储优化的相关技术研究;张丹;《中国优秀硕士学位论文全文数据库(科技信息辑)》;20140215(第02期);第2.3、4.1、4.2.3节 * |
Also Published As
Publication number | Publication date |
---|---|
US11809726B2 (en) | 2023-11-07 |
CN107045422A (zh) | 2017-08-15 |
US20220188003A1 (en) | 2022-06-16 |
WO2017133216A1 (zh) | 2017-08-10 |
US20180121127A1 (en) | 2018-05-03 |
US11301154B2 (en) | 2022-04-12 |
US20240020038A1 (en) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107045422B (zh) | 分布式存储方法和设备 | |
US20220100708A1 (en) | Deduplicated merged indexed object storage file system | |
US11755415B2 (en) | Variable data replication for storage implementing data backup | |
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US10853242B2 (en) | Deduplication and garbage collection across logical databases | |
JP5732536B2 (ja) | 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体 | |
CN102779185B (zh) | 一种高可用分布式全文索引方法 | |
US10725666B2 (en) | Memory-based on-demand data page generation | |
US11080253B1 (en) | Dynamic splitting of contentious index data pages | |
CN105814544B (zh) | 用于支持分布式数据网格中的持久化分区恢复的系统和方法 | |
JP2019519025A (ja) | 分散システムにおける範囲の分割および移動 | |
US10628298B1 (en) | Resumable garbage collection | |
Dwivedi et al. | Analytical review on Hadoop Distributed file system | |
JP2007241486A (ja) | 記憶装置システム | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
US11960442B2 (en) | Storing a point in time coherently for a distributed storage system | |
CN103501319A (zh) | 一种低延迟的面向小文件的分布式存储系统 | |
KR20100048130A (ko) | 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법 | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
CN112800019A (zh) | 基于Hadoop分布式文件系统的数据备份方法及系统 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
WO2009031158A2 (en) | Method and apparatus for network based data recovery | |
CN116010430B (zh) | 数据恢复方法、数据库系统、计算机设备和存储介质 | |
US20220398048A1 (en) | File storage system and management information file recovery method |
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 |