CN115495020A - 文件处理方法、装置、电子设备和可读存储介质 - Google Patents
文件处理方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN115495020A CN115495020A CN202211202637.XA CN202211202637A CN115495020A CN 115495020 A CN115495020 A CN 115495020A CN 202211202637 A CN202211202637 A CN 202211202637A CN 115495020 A CN115495020 A CN 115495020A
- Authority
- CN
- China
- Prior art keywords
- target
- target block
- storage
- file
- subfile
- 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
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
-
- 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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件处理方法、装置、电子设备和可读存储介质,属于数据处理技术领域。其中,所述方法包括:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取目标块,所述目标块中的缓存数据不满足预设条件;将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
Description
技术领域
本申请属于数据处理技术领域,具体涉及一种文件处理方法、装置、电子设备和可读存储介质。
背景技术
目前,网络信息服务和大数据技术飞速发展,使得互联网中的数据急剧增长。为了存储和处理日益增长的数据,诞生了分布式文件系统。因其高速性、低成本、高扩展性、高灵活性以及强容错能力,被广泛应用于海量数据存储领域。
分布式文件系统中文件的存储是以分块的形式存储的,通常一个文件会被切分成大小相等的若干块,而每个块的大小(blocksize)可以通过配置参数来规定,默认的大小一般是128M。但是,对于大量小文件的存储,因为每个块都会有150字节的大小的元数据存储在管理节点的内存中,大量的小文件会将命名空间(NameNode)的内存耗光。
可见,在现有技术中,在存储和处理海量小文件(lots of small files,简称LOSF)时,因大量的小文件会将NameNode的内存耗光,从而导致系统性能受到影响。
发明内容
本申请实施例的目的是提供一种文件处理方法,能够解决因大量的小文件会将NameNode内存耗光,从而导致系统性能受到影响的问题。
第一方面,本申请实施例提供了一种文件处理方法,该方法包括:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取目标块,所述目标块中的缓存数据不满足预设条件;将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
第二方面,本申请实施例提供了一种文件处理装置,该装置包括:第一确定模块,用于在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取模块,用于获取目标块,所述目标块中的缓存数据不满足预设条件;第一写入模块,用于将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块量;第二写入模块,用于在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
这样,在本申请的实施例中,在对大量小文件进行存储和处理时,首先在系统上查找未存满的存储文件(如目标存储文件),然后,在本地的临时块(如目标块)中缓存小文件(如第一子文件)数据。其中,可在临时块中持续缓存数据,直至临时块中的缓存数据满足预设条件,再将缓存数据写入系统的存储文件,直至该存储文件中的存储数据容量达到配置的阈值(如第一阈值)。可见,基于本申请的实施例,大量小文件可先在本地合并缓存,再写入系统,从而不会将系统的NameNode的内存耗光,优化系统性能。
附图说明
图1是本申请实施例的文件处理方法的流程图;
图2是本申请实施例的目标块的结构示意图;
图3是本申请实施例的目标存储文件的结构示意图;
图4是本申请实施例的文件处理装置的框图;
图5是本申请实施例的电子设备的硬件结构示意图之一;
图6是本申请实施例的电子设备的硬件结构示意图之二。
具体实施方式
下面将结合本申请实施例的附图,对本申请实施例的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的文件处理方法,其执行主体可以是本申请实施例提供的文件处理装置,或者集成了该文件处理装置的电子设备,其中该文件处理装置可以采用硬件或软件的方式实现。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的文件处理方法进行详细地说明。
图1示出了本申请一个实施例的文件处理方法的流程图,以该方法应用于电子设备进行举例,包括:
步骤110:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值。
可选地,第一子文件为小容量文件。
可选地,目标存储文件为分布式文件系统上的文件。
例如,分布式文件系统为Hadoop分布式文件系统(Hadoop Distributed FileSystem,简称HDFS)。
可选地,在写入第一子文件时,首先初始化一个写入流。例如,检查HDFS的待写入目录下是否有存储数据容量小于第一阈值的文件,如果有,则打开该文件,作为目标存储文件。反之,则可以创建一个新文件,写入元数据信息,作为目标存储文件。
可选地,第一阈值配置为2G。
步骤120:获取目标块,目标块中的缓存数据不满足预设条件。
可选地,目标块为一个临时块,用于在本地缓存数据。
在该步骤中,目标块中的缓存数据不满足预设条件。
步骤130:将第一子文件的第一存储长度信息和第一子文件写入目标块。
可选地,在目标块中,先写入第一存储长度信息(即第一子文件的长度),再写入第一子文件的文件内容。
可选地,第一存储长度信息占用2个字节。
在本实施例中,目标块可缓存多个子文件。
例如,参见图2所示的目标块的结构,首先,缓存小文件1,先缓存小文件1的长度201,再缓存小文件1的内容202;紧接着,缓存小文件2,先缓存小文件2的长度203,再缓存小文件2的内容204;依次缓存,直至缓存小文件N,先缓存小文件N的长度205,再缓存小文件N的内容206。
步骤140:在目标块中的缓存数据满足预设条件的情况下,将目标块的第二存储长度信息和目标块中的缓存数据写入目标存储文件。
其中,第二存储长度信息为目标块的长度。
可选地,第二存储长度信息占用4个字节。
在该步骤中,目标块作为一个临时块,当其缓存的数据满足预设条件时,则将缓存数据写入目标存储文件。
进一步地,目标块中的缓存数据写入系统后,在本地更新一个临时块,以用于继续缓存数据。
可选地,当目标存储文件中的存储数据的容量大于或者等于第一阈值时,则关闭该文件流,并在系统上新建一个存储文件。
这样,在本申请的实施例中,在对大量小文件进行存储和处理时,首先在系统上查找未存满的存储文件(如目标存储文件),然后,在本地的临时块(如目标块)中缓存小文件(如第一子文件)数据。其中,可在临时块中持续缓存数据,直至临时块中的缓存数据满足预设条件,再将缓存数据写入系统的存储文件,直至该存储文件中的存储数据容量达到配置的阈值(如第一阈值)。可见,基于本申请的实施例,大量小文件可先在本地合并缓存,再写入系统,从而不会将系统的NameNode的内存耗光,优化系统性能。
另外,本申请中的文件处理方法,能够实时进行小文件的合并,并非定时合并,从而不需要占用额外的计算资源,进一步优化系统性能。
在本申请另一个实施例的文件处理方法中,目标块中的缓存数据满足预设条件,包括以下任一项:
第一:目标块中的缓存数据的容量大于或者等于第二阈值。
在本方案中,当目标块中缓存的数据容量达到或者超过配置的阈值(如第二阈值)时,即可将目标块中的缓存数据写入系统。
第二:目标块中的缓存数据所对应的缓存时长大于或者等于第三阈值。
在本方案中,当目标块中的缓存数据所对应的缓存时长超过或者达到配置的阈值(如第三阈值)时,即可将目标块中的缓存数据写入系统。
在本实施例中,可配置临时块最大缓存容量或者最长缓存时长,以此来作为条件,判断是否将缓存数据写入系统中。可见,基于本实施例,能够尽可能多地合并小文件,以达到优化系统的目的。
在本申请另一个实施例的文件处理方法的流程中,在步骤140之前,该方法还包括:
步骤A1:对目标块中的缓存数据进行压缩处理。
在本实施例中,在将缓存数据写入系统之前,可对缓存数据进行压缩。
可选地,基于配置,也可不进行压缩处理。
本实施例中的文件处理方法,可支持在系统中写入压缩数据。
在本申请另一个实施例的文件处理方法的流程中,在步骤120之后,该方法还包括:
步骤B1:根据目标存储文件中存储数据的第三存储长度信息,确定目标块在目标存储文件中的第一偏移量信息。
在该步骤中,第一偏移量信息用于体现目标块在目标存储文件中的位置。
例如,目标存储文件为已创建的文件,其中已包含存储数据,则基于存储数据在目标存储文件中的第三存储长度信息,确定目标块的第一偏移量信息。
其中,第三存储长度信息用于表示目标存储文件中的存储数据的长度。
其中,目标存储文件为新创建的文件,对应地,目标块的第一偏移量信息为“0”。
其中,若目标块中的缓存数据被压缩,则相比于压缩前,目标块的长度发生变化,因此,需要更新当前待写入数据的临时块的第一偏移量信息。
参见图3,例如,在目标存储文件的结构中,前8位是元数据信息301,其中,前2位表示该文件格式的版本号,第3、4位表示系统的版本号,第5位表示每个块是否压缩、最后3位作为保留位。在该系统文件中,依次写入了块1 302至块N 303,在每个块的最前面,写入了对应块的长度(如块1 302的长度304和块N 303的长度305),后面按序写入每个块中的小文件1至小文件n。其中,块的偏移量信息,即第一偏移量信息,可体现在块在系统文件中的开始位置处(如开始写入块1 302的位置处306,开始写入块N 303的位置处307)。
步骤B2:根据目标块中缓存数据的第四存储长度信息,确定第一子文件在所述目标块中的第二偏移量信息。
其中,第二偏移量信息用于体现第一子文件在目标块中的位置。
参见图2,小文件的块内偏移量信息,即第二偏移量信息,可体现在小文件在目标块上的开始位置处。例如,小文件1的内偏移量信息体现在开始缓存小文件1的位置207处,小文件2的内偏移量信息体现在开始缓存小文件2的位置208处,以此类推,小文件N的内偏移量信息体现在开始缓存小文件N的位置处209。
对应地,在将目标块的第二存储长度信息和目标块中的缓存数据写入所述目标存储文件的情况下,该方法还包括:
步骤B3:根据第一子文件,关联目标存储文件的目标识别信息、第一偏移量信息和第二偏移量信息。
可选地,目标识别信息为目标存储文件的文件名。
例如,将目标识别信息、第一偏移量信息和第二偏移量信息,拼接成位置字符串返回。
进一步地,关联内容是基于第一子文件产生的。
例如,可对第一子文件进行命名,以使得命名中包括位置字符串。
在本实施例中,将目标存储文件的目标识别信息、第一偏移量信息和第二偏移量信息关联在一起,相当于提供了第一子文件的存储路径,在该存储路径中,建立了小文件到大文件的映射关系,从而能够在系统的大文件中快速读取小文件。
在本申请另一个实施例的文件处理方法的流程中,在步骤140之后,该方法还包括:
步骤C1:在读取第一子文件的情况下,根据目标识别信息,确定目标存储文件。
例如,解析上一实施例中的位置字符串,得到目标识别信息、第一偏移量信息和第二偏移量信息。
在该步骤中,根据目标识别信息,打开对应的文件流。
步骤C2:根据第一偏移量信息和第二存储长度信息,在目标存储文件中读取目标块对应的缓存数据。
在该步骤中,将读取位置定位在第一偏移量信息,读取4个字节的第二存储长度信息,然后再读取第二存储长度的数据,即目标块中的缓存数据。
步骤C3:根据第二偏移量信息和第一存储长度信息,在目标块对应的缓存数据中读取第一子文件。
在该步骤中,可根据压缩配置,首先对缓存数据进行解压,然后再定位解压后的第二偏移量信息处,读取出2个字节的第一存储长度信息,最后读取第一存储长度的数据,即第一子文件。
可选地,在未配置压缩的情况下,可直接读取第一子文件,无需解压。
在本实施例中,基于小文件与目标块之间的映射关系、以及目标块与系统文件之间的映射关系,能够实现快速准确地读取小文件。
综上,本申请的目的在于,提出一种分布式文件系统的小文件合并方法,以解决分布式文件系统的小文件问题,提升分布式文件系统的性能。其中,本申请提出了在客户端将小文件进行合并,在内存中按照自定义的格式合并成临时文件块,达到大小阈值或者时间阈值后,将客户端合并后的文件写入到分布式文件系统,并返回给写入者一个路径,通过这个路径可以读取到写入的小文件。
本申请优势至少包括:
1、兼容性强:适用于Master/Slave架构的分布式文件系统。
2、效果好:可从根本上解决小文件的问题,并且能保证分布式文件系统上的文件都是大小合适的文件(大小可配置)。
3、实时性强:写入时就做到了小文件的合并。
4、节约资源:不占用额外的计算资源对文件进行合并。
本申请实施例提供的文件处理方法,执行主体可以为文件处理装置。本申请实施例中以文件处理装置执行文件处理方法为例,说明本申请实施例提供的文件处理装置。
图4示出了本申请另一个实施例的文件处理装置的框图,该装置包括:
第一确定模块10,用于在写入第一子文件的情况下,确定目标存储文件,目标存储文件中的存储数据的容量小于第一阈值;
获取模块20,用于获取目标块,目标块中的缓存数据不满足预设条件;
第一写入模块30,用于将第一子文件的第一存储长度信息和第一子文件写入目标块量;
第二写入模块40,用于在目标块中的缓存数据满足预设条件的情况下,将目标块的第二存储长度信息和目标块中的缓存数据写入目标存储文件。
这样,在本申请的实施例中,在对大量小文件进行存储和处理时,首先在系统上查找未存满的存储文件(如目标存储文件),然后,在本地的临时块(如目标块)中缓存小文件(如第一子文件)数据。其中,可在临时块中持续缓存数据,直至临时块中的缓存数据满足预设条件,再将缓存数据写入系统的存储文件,直至该存储文件中的存储数据容量达到配置的阈值(如第一阈值)。可见,基于本申请的实施例,大量小文件可先在本地合并缓存,再写入系统,从而不会将系统的NameNode的内存耗光,优化系统性能。
可选地,目标块中的缓存数据满足预设条件,包括以下任一项:
目标块中的缓存数据的容量大于或者等于第二阈值;
目标块中的缓存数据所对应的缓存时长大于或者等于第三阈值。
可选地,该装置还包括:
压缩模块,用于对目标块中的缓存数据进行压缩处理。
可选地,该装置还包括:
第二确定模块,用于根据目标存储文件中存储数据的第三存储长度信息,确定目标块在目标存储文件中的第一偏移量信息;
第三确定模块,用于根据目标块中缓存数据的第四存储长度信息,确定第一子文件在目标块中的第二偏移量信息;
关联模块,用于根据第一子文件,关联目标存储文件的目标识别信息、第一偏移量信息和第二偏移量信息。
可选地,该装置还包括:
第四确定模块,用于在读取第一子文件的情况下,根据目标识别信息,确定目标存储文件;
第一读取模块,用于根据第一偏移量信息和第二存储长度信息,在目标存储文件中读取目标块对应的缓存数据;
第二读取模块,用于根据第二偏移量信息和第一存储长度信息,在目标块对应的缓存数据中读取第一子文件。
本申请实施例中的文件处理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例的文件处理装置可以为具有动作系统的装置。该动作系统可以为安卓(Android)动作系统,可以为ios动作系统,还可以为其他可能的动作系统,本申请实施例不作具体限定。
本申请实施例提供的文件处理装置能够实现上述方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图5所示,本申请实施例还提供一种电子设备100,包括处理器101,存储器102,存储在存储器102上并可在所述处理器101上运行的程序或指令,该程序或指令被处理器101执行时实现上述任一文件处理方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例的电子设备包括上述所述的移动电子设备和非移动电子设备。
图6为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备1000包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1010等部件。
本领域技术人员可以理解,电子设备1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1010,用于在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取目标块,所述目标块中的缓存数据不满足预设条件;将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
这样,在本申请的实施例中,在对大量小文件进行存储和处理时,首先在系统上查找未存满的存储文件(如目标存储文件),然后,在本地的临时块(如目标块)中缓存小文件(如第一子文件)数据。其中,可在临时块中持续缓存数据,直至临时块中的缓存数据满足预设条件,再将缓存数据写入系统的存储文件,直至该存储文件中的存储数据容量达到配置的阈值(如第一阈值)。可见,基于本申请的实施例,大量小文件可先在本地合并缓存,再写入系统,从而不会将系统的NameNode的内存耗光,优化系统性能。
可选地,所述目标块中的缓存数据满足预设条件,包括以下任一项:所述目标块中的缓存数据的容量大于或者等于第二阈值;所述目标块中的缓存数据所对应的缓存时长大于或者等于第三阈值。
可选地,处理器1010,还用于对所述目标块中的缓存数据进行压缩处理。
可选地,处理器1010,还用于根据所述目标存储文件中存储数据的第三存储长度信息,确定所述目标块在所述目标存储文件中的第一偏移量信息;根据所述目标块中缓存数据的第四存储长度信息,确定所述第一子文件在所述目标块中的第二偏移量信息;根据所述第一子文件,关联所述目标存储文件的目标识别信息、所述第一偏移量信息和所述第二偏移量信息。
可选地,处理器1010,还用于在读取所述第一子文件的情况下,根据所述目标识别信息,确定所述目标存储文件;根据所述第一偏移量信息和所述第二存储长度信息,在所述目标存储文件中读取所述目标块对应的缓存数据;根据所述第二偏移量信息和所述第一存储长度信息,在所述目标块对应的缓存数据中读取所述第一子文件。
综上,本申请的目的在于,提出一种分布式文件系统的小文件合并方法,以解决分布式文件系统的小文件问题,提升分布式文件系统的性能。其中,本申请提出了在客户端将小文件进行合并,在内存中按照自定义的格式合并成临时文件块,达到大小阈值或者时间阈值后,将客户端合并后的文件写入到分布式文件系统,并返回给写入者一个路径,通过这个路径可以读取到写入的小文件。
本申请优势至少包括:
1、兼容性强:适用于Master/Slave架构的分布式文件系统。
2、效果好:可从根本上解决小文件的问题,并且能保证分布式文件系统上的文件都是大小合适的文件(大小可配置)。
3、实时性强:写入时就做到了小文件的合并。
4、节约资源:不占用额外的计算资源对文件进行合并。
应理解的是,本申请实施例中,输入单元1004可以包括图形处理器(GraphicsProcessing Unit,GPU)10041和麦克风10042,图形处理器10041对在视频图像捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频图像的图像数据进行处理。显示单元1006可包括显示面板10061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板10061。用户输入单元1007包括触控面板10071以及其他输入设备10072中的至少一种。触控面板10071,也称为触摸屏。触控面板10071可包括触摸检测装置和触摸控制器两个部分。其他输入设备10072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、动作杆,在此不再赘述。存储器1009可用于存储软件程序以及各种数据,包括但不限于应用程序和动作系统。处理器1010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理动作系统、用户页面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。
存储器1009可用于存储软件程序以及各种数据。存储器1009可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1009可以包括易失性存储器或非易失性存储器,或者,存储器1009可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器1009包括但不限于这些和任意其它适合类型的存储器。
处理器1010可包括一个或多个处理单元;可选的,处理器1010集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述文件处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述文件处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述文件处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种文件处理方法,其特征在于,所述方法包括:
在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;
获取目标块,所述目标块中的缓存数据不满足预设条件;
将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;
在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
2.根据权利要求1所述的方法,其特征在于,所述目标块中的缓存数据满足预设条件,包括以下任一项:
所述目标块中的缓存数据的容量大于或者等于第二阈值;
所述目标块中的缓存数据所对应的缓存时长大于或者等于第三阈值。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件之前,所述方法还包括:
对所述目标块中的缓存数据进行压缩处理。
4.根据权利要求1所述的方法,其特征在于,所述获取目标块之后,所述方法还包括:
根据所述目标存储文件中存储数据的第三存储长度信息,确定所述目标块在所述目标存储文件中的第一偏移量信息;
根据所述目标块中缓存数据的第四存储长度信息,确定所述第一子文件在所述目标块中的第二偏移量信息;
在将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件的情况下,所述方法还包括:
根据所述第一子文件,关联所述目标存储文件的目标识别信息、所述第一偏移量信息和所述第二偏移量信息。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件之后,所述方法还包括:
在读取所述第一子文件的情况下,根据所述目标识别信息,确定所述目标存储文件;
根据所述第一偏移量信息和所述第二存储长度信息,在所述目标存储文件中读取所述目标块对应的缓存数据;
根据所述第二偏移量信息和所述第一存储长度信息,在所述目标块对应的缓存数据中读取所述第一子文件。
6.一种文件处理装置,其特征在于,所述装置包括:
第一确定模块,用于在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;
获取模块,用于获取目标块,所述目标块中的缓存数据不满足预设条件;
第一写入模块,用于将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;
第二写入模块,用于在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于根据所述目标存储文件中存储数据的第三存储长度信息,确定所述目标块在所述目标存储文件中的第一偏移量信息;
第三确定模块,用于根据所述目标块中缓存数据的第四存储长度信息,确定所述第一子文件在所述目标块中的第二偏移量信息;
关联模块,用于根据所述第一子文件,关联所述目标存储文件的目标识别信息、所述第一偏移量信息和所述第二偏移量信息。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第四确定模块,用于在读取所述第一子文件的情况下,根据所述目标识别信息,确定所述目标存储文件;
第一读取模块,用于根据所述第一偏移量信息和所述第二存储长度信息,在所述目标存储文件中读取所述目标块对应的缓存数据;
第二读取模块,用于根据所述第二偏移量信息和所述第一存储长度信息,在所述目标块对应的缓存数据中读取所述第一子文件。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1~5任一项所述的文件处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1~5任一项所述的文件处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211202637.XA CN115495020A (zh) | 2022-09-29 | 2022-09-29 | 文件处理方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211202637.XA CN115495020A (zh) | 2022-09-29 | 2022-09-29 | 文件处理方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115495020A true CN115495020A (zh) | 2022-12-20 |
Family
ID=84472601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211202637.XA Pending CN115495020A (zh) | 2022-09-29 | 2022-09-29 | 文件处理方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115495020A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117632039A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
-
2022
- 2022-09-29 CN CN202211202637.XA patent/CN115495020A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117632039A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN117632039B (zh) * | 2024-01-25 | 2024-05-03 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9166866B2 (en) | Hydration and dehydration with placeholders | |
CN112035410B (zh) | 日志存储方法、装置、节点设备及存储介质 | |
CN103218224A (zh) | 一种提高存储空间利用率的方法和终端 | |
WO2013034094A1 (zh) | 一种网页浏览方法、装置及存储介质 | |
CN109815425A (zh) | 缓存数据处理方法、装置、计算机设备和存储介质 | |
CN113553300B (zh) | 文件的处理方法、装置、可读介质和电子设备 | |
CN106453572A (zh) | 基于云服务器同步图像的方法及系统 | |
CN113590501A (zh) | 一种数据存储方法及相关设备 | |
CN111241040A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN112286457B (zh) | 对象重删方法、装置、电子设备及机器可读存储介质 | |
CN115470157A (zh) | 预取方法、电子设备、存储介质及程序产品 | |
CN112395437B (zh) | 一种3d模型的加载方法、装置、电子设备及存储介质 | |
CN110321321B (zh) | 网络块设备快照读写方法、装置、设备及存储介质 | |
WO2023134360A1 (zh) | 一种数据处理方法及装置、存储介质 | |
RU2635255C2 (ru) | Системный когерентный кэш с возможностью фрагментации/дефрагментации | |
CN114070892A (zh) | 数据传输方法和装置 | |
CN112765110B (zh) | 一种pdf批注数据生成方法、装置、设备及存储介质 | |
CN112286448B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
CN113485642A (zh) | 数据缓存方法及装置 | |
CN109857719B (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 | |
CN113961298A (zh) | 一种页面切换方法、装置、设备及介质 | |
CN109634877B (zh) | 流操作的实现方法、装置、设备及存储介质 | |
CN107918654B (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 |