CN115951832A - 针对对象存储的智能小文件合并的方法及*** - Google Patents
针对对象存储的智能小文件合并的方法及*** Download PDFInfo
- Publication number
- CN115951832A CN115951832A CN202211681233.3A CN202211681233A CN115951832A CN 115951832 A CN115951832 A CN 115951832A CN 202211681233 A CN202211681233 A CN 202211681233A CN 115951832 A CN115951832 A CN 115951832A
- Authority
- CN
- China
- Prior art keywords
- file
- merged
- pool
- file pool
- merging
- 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
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 239000011800 void material Substances 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 16
- 238000011084 recovery Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 239000002699 waste material Substances 0.000 description 4
- 238000004064 recycling Methods 0.000 description 3
- 238000012098 association analyses Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种针对对象存储的智能小文件合并的方法及***,该方法包括:获取第一对象并对第一对象进行判断,当第一对象具有第一属性时写入第一文件池。对第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对第一对象进行合并,并将合并后的第一对象写入第二文件池。判断第一对象是否已合并,若未合并,则直接读取第一文件池,若已合并,则对第一对象进行转换并访问第二文件池。判断第一对象是否已合并,若未合并,则直接删除第一文件池中对应的第一对象,若已合并,则删除第二文件池中对应第一对象的元数据并保留合并后的第一对象。该方法减少了磁盘存储空洞,优化了存储资源使用率,并减少了访问集群内文件的开销。
Description
技术领域
本申请涉及对象存储技术领域,特别是涉及一种针对对象存储的智能小文件合并的方法及***。
背景技术
对象存储也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。对象存储是支持无限扩容的海量存储,具备无限大的容量的同时,也会带来元数据过多导致索引困难、集群性能下降的问题。尤其是过多的小文件,对于对象存储集群是更加不利的,同样的存储容量下元数据的数量更多。对于每个对象的访问导致的连接数也会更多,严重影响集群性能,另外由于存储单元的最小尺寸规定,小于一定尺寸的文件也会分配一大块存储单元,降低了集群的存储实际使用率。
因此,对于对象存储来说,大量小文件会带来严重的性能开销和资源浪费,其一是因为同容量下,文件越小则元数据越多,其二是因为太小的文件也会占据一个单独的存储单元,造成存储资源浪费。
发明内容
基于此,有必要提供一种针对对象存储的智能小文件合并的方法及***,能够通过对小文件进行关联性合并来实现集群性能的优化并减少存储资源的浪费。
第一方面,本申请提供一种针对对象存储的智能小文件合并的方法,所述方法包括:
获取第一对象并对所述第一对象进行判断,当所述第一对象具有第一属性时写入第一文件池;
对所述第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对所述第一对象进行合并,并将合并后的第一对象写入第二文件池;
判断所述第一对象是否已合并,若未合并,则直接读取所述第一文件池,若已合并,则对所述第一对象进行转换并访问所述第二文件池;
判断所述第一对象是否已合并,若未合并,则直接删除所述第一文件池中对应的第一对象,若已合并,则删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象。
在其中一个实施例中,所述获取第一对象并对所述第一对象进行判断,包括:
当所述第一对象具有第二属性时写入第三文件池,所述第三文件池用于存储普通文件。
在其中一个实施例中,所述对所述第一文件池中具有第一属性的第一对象进行关联性分析,包括:
扫描所述第一文件池中待合并的第一对象,并取出所述第二文件池中空洞率超过第一阈值的合并文件;
对所述第一文件池中待合并的第一对象和第二文件池中空洞率超过第一阈值的合并文件进行关联性分析。
在其中一个实施例中,所述对所述第一文件池中待合并的第一对象和第二文件池中空洞率超过第一阈值的合并文件进行关联性分析,包括:
对同批次或者写入时间不超过第二阈值的第一对象赋予不同的写关联度值;
对同批次或者读取时间不超过第三阈值的第一对象赋予不同的读关联度值;
根据所述第一对象的路径、文件名以及标签对所述第一对象赋予不同的特征关联度值;
对所述写关联度值、读关联度值和特征关联度值进行加权,得到关联度评分,所述关联度评分用于获取最佳命中效果。
在其中一个实施例中,所述对所述第一对象进行转换并访问所述第二文件池,包括:
访问所述第二文件池中的合并文件缓存,并在未命中合并后的第一对象时继续访问所述第二文件池。
在其中一个实施例中,所述删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象,包括:
当所述第二文件池中的合并文件的空洞率超过第一阈值时,则通过空洞回收单元直接删除所述合并文件。
第二方面,本申请提供一种针对对象存储的智能小文件合并的***,所述***包括:
第一写入模块,用于获取第一对象并对所述第一对象进行判断,当所述第一对象具有第一属性时写入第一文件池;
分析模块,用于对所述第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对所述第一对象进行合并,并将合并后的第一对象写入第二文件池;
读取模块,用于判断所述第一对象是否已合并,若未合并,则直接读取所述第一文件池,若已合并,则对所述第一对象进行转换并访问所述第二文件池;
删除模块,用于判断所述第一对象是否已合并,若未合并,则直接删除所述第一文件池中对应的第一对象,若已合并,则删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象。
在其中一个实施例中,所述***还包括:
第二写入模块,用于当所述第一对象具有第二属性时写入第三文件池,所述第三文件池用于存储普通文件;
扫描模块,用于扫描所述第一文件池中待合并的第一对象,并取出所述第二文件池中空洞率超过第一阈值的合并文件;
空洞回收模块,用于当所述第二文件池中的合并文件的空洞率超过第一阈值时,则通过空洞回收单元直接删除所述合并文件。
第三方面,本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取第一对象并对所述第一对象进行判断,当所述第一对象具有第一属性时写入第一文件池;
对所述第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对所述第一对象进行合并,并将合并后的第一对象写入第二文件池;
判断所述第一对象是否已合并,若未合并,则直接读取所述第一文件池,若已合并,则对所述第一对象进行转换并访问所述第二文件池;
判断所述第一对象是否已合并,若未合并,则直接删除所述第一文件池中对应的第一对象,若已合并,则删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象。
第四方面,本申请提供一种计算机存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取第一对象并对所述第一对象进行判断,当所述第一对象具有第一属性时写入第一文件池;
对所述第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对所述第一对象进行合并,并将合并后的第一对象写入第二文件池;
判断所述第一对象是否已合并,若未合并,则直接读取所述第一文件池,若已合并,则对所述第一对象进行转换并访问所述第二文件池;
判断所述第一对象是否已合并,若未合并,则直接删除所述第一文件池中对应的第一对象,若已合并,则删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象。
上述针对对象存储的智能小文件合并的方法及***,通过获取对象存储中的小文件并对其进行关联性合并处理,将合并后的小文件写入合并文件池,使得有关联的多个小文件在访问过程中命中同一个合并文件缓存,从而降低去集群内索引的次数,增加集群内部索引性能,提升qps(每秒查询率)。在对小文件进行读取的过程中访问合并文件池即可,另外在进行删除的过程中只删除了小文件元数据,而非合并文件,在一定程度上降低了底层存储的访问频次。由于合并文件的关联性,根据关联文件的尺寸来合并,尽量减少磁盘存储空洞,优化了存储资源使用率,加上多个相关联小文件的访问被合并成一个大文件的访问,极大减少了访问集群内文件的开销。
附图说明
图1为本申请中一个实施例的针对对象存储的智能小文件合并的方法流程图;
图2为本申请中一个实施例的针对对象存储的智能小文件合并的方法流程图;
图3为本申请中一个实施例的针对对象存储的智能小文件合并方案的整体***架构图;
图4为本实施例的针对对象存储的智能小文件合并方案的用户写入数据流程图;
图5为本实施例的针对对象存储的智能小文件合并方案的用户读取数据流程图;
图6为本实施例的针对对象存储的智能小文件合并方案的用户删除数据流程图;
图7为本实施例的针对对象存储的智能小文件合并方案的小文件合并流程图;
图8为本实施例的针对对象存储的智能小文件合并方案的合并关联度算法流程图;
图9为本实施例的合并小文件降低存储资源浪费原理示意图;
图10为本实施例的合并小文件降低连接数开销原理示意图;
图11为本实施例的小文件对存储池的元数据开销影响原理示意图;
图12为本实施例的回收小文件删除后的空洞原理示意图;
图13为本实施例的大文件缓存管理过程图;
图14为本申请中一个实施例的针对对象存储的智能小文件合并的***结构示意图;
图15为本申请中一个实施例的针对对象存储的智能小文件合并的***结构示意图;
图16为本申请中一个实施例的计算机设备的内部结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,在一个实施例中,一种针对对象存储的智能小文件合并的方法,包括以下步骤:
步骤S110,获取第一对象并对第一对象进行判断,当第一对象具有第一属性时写入第一文件池。
具体地,服务端获取文件对象并对该文件对象进行判断,在获取的文件对象为可合并的小文件时将其写入第一文件池,第一文件池即为用于存储小文件的小文件池。
步骤S120,对第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对第一对象进行合并,并将合并后的第一对象写入第二文件池。
具体地,服务端对小文件池中用于合并的小文件进行关联性分析,并根据关联性分析结果对小文件进行合并,最后将合并后的小文件写入第二文件池,第二文件池即为用于存储合并文件的合并文件池。
步骤S130,判断第一对象是否已合并,若未合并,则直接读取第一文件池,若已合并,则对第一对象进行转换并访问第二文件池。
具体地,服务端在读取小文件时需要先判断小文件是否已合并,对于未合并的小文件则直接在小文件池中读取,对于已合并的小文件则对小文件进行转换并访问合并文件池,小文件转换后用于命中对应的合并文件。
步骤S140,判断第一对象是否已合并,若未合并,则直接删除第一文件池中对应的第一对象,若已合并,则删除第二文件池中对应第一对象的元数据并保留合并后的第一对象。
具体地,服务端在删除小文件时需要先判断小文件是否已经合并,对于未合并的小文件则直接在小文件池中将其删除,对于已合并的小文件,则删除其在合并文件池中对应的小文件的元数据并保留其所对应的合并文件。
上述针对对象存储的智能小文件合并的方法,通过获取对象存储中的小文件并对其进行关联性合并处理,将合并后的小文件写入合并文件池,使得有关联的多个小文件在访问过程中命中同一个合并文件缓存,从而降低去集群内索引的次数,增加集群内部索引性能,提升qps(每秒查询率)。在对小文件进行读取的过程中只需要访问合并文件池即可,另外在进行删除的过程中只删除了小文件元数据,而非合并文件,在一定程度上降低了底层存储的访问频次。由于合并文件的关联性,根据关联文件的尺寸来合并,尽量减少磁盘存储空洞,优化了存储资源使用率,加上多个相关联小文件的访问被合并成一个大文件的访问,极大减少了访问集群内文件的开销。
如图2所示,在一个实施例中,一种针对对象存储的智能小文件合并的方法,包括以下步骤:
步骤S210,获取第一对象并对第一对象进行判断,当第一对象具有第一属性时写入第一文件池。
具体地,服务端获取文件对象并对该文件对象进行判断,在获取的文件对象为可合并的小文件时将其写入第一文件池,第一文件池即为用于存储小文件的小文件池。
步骤S220,当第一对象具有第二属性时写入第三文件池,第三文件池用于存储普通文件。
具体地,服务端在步骤S210获取的文件对象具有第二属性时则表示该文件对象为普通文件,则将该普通文件存储于第三文件池,第三文件池即为用于存储普通文件的普通文件池。
步骤S230,扫描第一文件池中待合并的第一对象,并取出第二文件池中空洞率超过第一阈值的合并文件。
具体地,服务端扫描小文件池中待合并的小文件列表并取出合并文件池中空洞率超过第一阈值的合并文件,当合并文件的空洞率超过第一阈值则表示该合并文件的空洞率过大,此时需要重新对其进行合并。
步骤S240,对第一文件池中待合并的第一对象和第二文件池中空洞率超过第一阈值的合并文件进行关联性分析。
具体地,服务端在对小文件池中的小文件以及空洞率过大的合并文件进行关联性分析的过程中,对同批次或者写入时间不超过第二阈值的小文件赋予不同的写关联度值,写入时间不超过第二阈值表示该批次写入的小文件时间相近。并对同批次或者读取时间不超过第三阈值的小文件赋予不同的读关联度值,读取时间不超过第三阈值表示该批次读取的小文件读取时间相近,根据小文件的路径、文件名以及标签对小文件赋予不同的特征关联度值,最后对得到的写关联度值、读关联度值和特征关联度值进行加权得到关联度评分,并获取最佳命中效果,即完成关联性分析。
步骤S250,判断第一对象是否已合并,若未合并,则直接读取第一文件池,若已合并,则对第一对象进行转换并访问第二文件池。
具体地,服务端在读取小文件时需要先判断小文件是否已合并,对于未合并的小文件则直接在小文件池中读取,对于已合并的小文件则对小文件进行转换并访问合并文件池,小文件转换后用于命中对应的合并文件。另外,在访问合并文件池的合并文件缓存时,若未命中合并后的小文件则会继续访问合并文件池,直到命中对应合并后的小文件。
步骤S260,判断第一对象是否已合并,若未合并,则直接删除第一文件池中对应的第一对象,若已合并,则删除第二文件池中对应第一对象的元数据并保留合并后的第一对象。
具体地,服务端在删除小文件时需要先判断小文件是否已经合并,对于未合并的小文件则直接在小文件池中将其删除,对于已合并的小文件,则删除其在合并文件池中对应的小文件的元数据并保留其所对应的合并文件。
步骤S270,当第二文件池中的合并文件的空洞率超过第一阈值时,则通过空洞回收单元直接删除合并文件。
具体地,在服务端删除合并文件的过程中,若合并文件池中的合并文件空洞率过大,则会通过空洞回收单元直接删除对应的合并文件。
上述针对对象存储的智能小文件合并的方法,通过获取对象存储中的小文件并对其进行关联性合并处理,将合并后的小文件写入合并文件池,使得有关联的多个小文件在访问过程中命中同一个合并文件缓存,从而降低去集群内索引的次数,增加集群内部索引性能,提升qps(每秒查询率)。在对其进行读取的过程中只需要访问合并文件池即可,另外在进行删除的过程中只删除了小文件元数据,而非合并文件,在一定程度上降低了底层存储的访问频次。由于合并文件的关联性,根据关联文件的尺寸来合并,尽量减少磁盘存储空洞,优化了存储资源使用率,加上多个相关联小文件的访问被合并成一个大文件的访问,极大减少了访问集群内文件的开销。
如图3所示,在一个实施例中,一种针对对象存储的智能小文件合并方案,设计了一套小文件智能合并***,该***分为三大块,其中对象存储网关和存储底层是原有模块,小文件合并和索引模块是添加的新模块,可以在侵入度很少的情况下添加到对象存储***。
对象存储网关负责接受客户端读写删等请求,然后调用小文件合并和索引模块来访问底层存储。小文件合并和索引模块分为小文件判定、文件关联性分析、文件合并、空洞回收、文件索引以及文件缓存等功能。小文件合并于索引模块存在于存储底层的上层,负责小文件的各种逻辑处理。存储底层负责底层对象的存储于管理,按照本专利的设计大概可以分为三个池,分别为普通文件池、小文件池和合并文件池。其中,普通文件池负责普通文件的存储,站绝大部分,小文件池采用性能较高的介质和集群参数来部署,用于存储小文件,合并文件池专门用于存储合并后的文件。
如图4至图12所示,对小文件进行合并以后,外部访问感知没有发生改变,在其内部读写流程需要经过小文件模块的处理之后才可通过对象存储网关访问底层存储,具体操作如下:
(1)写入:写入的文件会经由小程序模块鉴别,分别写入到普通池或者小文件池。
(2)读取:读取的时候,普通文件保持不变,但是小文件会判断是否合并,未合并的从小文件池读取,已合并的则经过小文件合并于索引模块的转换,转换成合并文件的访问,先访问合并文件缓存,没有命中则继续访问合并文件池。
(3)删除:普通文件从普通池删除,小文件从小文件池删除,如果已合并,则直接删除小文件元数据,而非删除合并文件,降低了底层存储的访问频次。合并文件会在空洞率过大的时候,被空洞回收模块删除。
(4)合并:合并不是由客户端触发,而是小文件模块定时发起的。
周期性地获取所有小文件列表,筛选出需要合并的小文件,同时扫描合并文件列表,取出空洞率较大的合并文件里的小文件,把这两部分小文件,一起经过关联性分析,找出适合合并的小文件,然后执行合并操作,写入到合并文件池中,同时更新元数据。
当前***采用了一套专门用于对象存储的关联度分析方法,用于合并关联性较高的小文件,加速小文件的访问,并减少存取开销。具体步骤如下:
(1)计算各个因素的关联度评分:
a.写入相关性:取网关的操作日志,对于同批次,或者相近时间内写入的小文件,根据写入客户端的来源ip,客户端类型等,一次赋予不同的写关联度值WeightWrite。
b.读取相关性:取网关的操作日志,对于同批次,或者相近时间内发生读取的文件,根据读取客户端的来源ip,客户端类型等,依次赋予不同的读关联度值WeightRead。
c.路径相关性:分析桶内的文件,对于文件名固定部分相似,变化部分按照自增id,连续时间戳等方式发生相关性的,赋予不同的关联度值WeightPath。
d.文件名相关性:分析桶内的文件,对于文件名固定部分相似,变化部分按照自增id,连续时间戳等方式发生相关性的,赋予不同的关联度值WeightFileName。
e.对象标签相关性:分析操作日志,用户对桶内文件做打标签操作的时候,对相同的标签(标签的key(身份)和value(属性)都相同)的文件,赋予关联度值WeightTag。
(2)各项加权得出最终关联度评分:
对于每个子关联度值WeightN,按照不同的权值比例RatioN来计算最终关联分,即ScoreFinal=Weight1*Ratio1+Weight2*Ratio2+...+WeightN*RatioN。
(3)计算关联度结果反馈评分:取网关的操作日志,对于实际发生读取的小文件,依据是否命中同意文件内的其他小文件,各自命中时刻相差了多长时间来作为命中效果,赋予不同的最终命中结果值FeedBack,区间为[-1,1],例如,最佳为同一时刻命中则取最大值1,最差为没有命中则取最小值-1,对于每个文件,计算反馈效果分为ScoreFeedBack=ScoreFinal(最终关联分)*FeedBack(命中结果值)。然后对所有小文件求反馈分平均值AvgScoreFeedBack=(ScoreFeedBack1+ScoreFeedBack2+...+ScoreFeedBackN)/n。
(4)根据反馈结果来调整关联度评分:最终目的是得到最佳命中效果,也就是平均反馈分最高,因此只需要调整各个环节的关联度权值比重RatioN,运行一段时间之后计算AvgScoreFeedBack(反馈分平均值),以达到AvgScoreFeedBack(反馈分平均值)最大为目标,然后记录下这一组Ratio(权值比重)即可。
如图13所示,当前***对小文件合并后的大文件建立缓存,按照命中的情况来决定缓存权值,对权值最低的缓存发起淘汰:
(1)大文件缓存内的每一个小文件命中都算是一次缓存命中,命中多个小文件能提升对应大文件缓存的权值。
(2)按照时间流逝对缓存逐渐扣减权值。
(3)淘汰掉权值最低的缓存块。
上述针对对象存储的智能小文件合并方案,从对象存储特性出发,对对象存储在海量小文件中引发的性能问题,在索引性能、存储使用率、缓存、qps(每秒查询率)等方面起到针对性的优化,传统的合并方法没有考虑到对象存储小文件本身的关联性,无法做到针对性的优化。另外,由于合并文件的关联性分析,使得有关联的多个小文件在访问过程中命中同一个合并文件缓存,从而降低去集群内索引的次数,增加集群内部索引性能,提升qps(每秒查询率)。根据关联文件的尺寸来合并,尽量减少磁盘存储空洞,优化存储资源使用率,再加上多个相关联小文件的访问被合并成一个大文件的访问,极大减少了访问集群内文件的开销。
如图14所示,在一个实施例中,一种针对对象存储的智能小文件合并的装置,包括第一写入模块1410、分析模块1420、读取模块1430和删除模块1440。
第一写入模块1410用于获取第一对象并对第一对象进行判断,当第一对象具有第一属性时写入第一文件池。
分析模块1420用于对第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对第一对象进行合并,并将合并后的第一对象写入第二文件池。
读取模块1430用于判断第一对象是否已合并,若未合并,则直接读取第一文件池,若已合并,则对第一对象进行转换并访问第二文件池。
删除模块1440用于判断第一对象是否已合并,若未合并,则直接删除第一文件池中对应的第一对象,若已合并,则删除第二文件池中对应第一对象的元数据并保留合并后的第一对象。
上述针对对象存储的智能小文件合并的***,通过获取对象存储中的小文件并对其进行关联性合并处理,将合并后的小文件写入合并文件池,使得有关联的多个小文件在访问过程中命中同一个合并文件缓存,从而降低去集群内索引的次数,增加集群内部索引性能,提升qps(每秒查询率)。在对小文件进行读取的过程中只需要访问合并文件池即可,另外在进行删除的过程中只删除了小文件元数据,而非合并文件,在一定程度上降低了底层存储的访问频次。由于合并文件的关联性,根据关联文件的尺寸来合并,尽量减少磁盘存储空洞,优化了存储资源使用率,加上多个相关联小文件的访问被合并成一个大文件的访问,极大减少了访问集群内文件的开销。
如图15所示,在一个实施例中,一种针对对象存储的智能小文件合并的***,包括第一写入模块1510、第二写入模块1520、扫描模块1530、关联性分析模块1540、读取模块1550、删除模块1560和空洞回收模块1570。
第一写入模块1510用于获取第一对象并对第一对象进行判断,当第一对象具有第一属性时写入第一文件池。
第二写入模块1520用于当第一对象具有第二属性时写入第三文件池,第三文件池用于存储普通文件。
扫描模块1530用于扫描第一文件池中待合并的第一对象,并取出第二文件池中空洞率超过第一阈值的合并文件。
关联性分析模块1540用于对第一文件池中待合并的第一对象和第二文件池中空洞率超过第一阈值的合并文件进行关联性分析。
读取模块1550用于判断第一对象是否已合并,若未合并,则直接读取第一文件池,若已合并,则对第一对象进行转换并访问第二文件池。
删除模块1560用于判断第一对象是否已合并,若未合并,则直接删除第一文件池中对应的第一对象,若已合并,则删除第二文件池中对应第一对象的元数据并保留合并后的第一对象。
空洞回收模块1570用于当第二文件池中的合并文件的空洞率超过第一阈值时,则通过空洞回收单元直接删除合并文件。
上述针对对象存储的智能小文件合并的***,通过获取对象存储中的小文件并对其进行关联性合并处理,将合并后的小文件写入合并文件池,使得有关联的多个小文件在访问过程中命中同一个合并文件缓存,从而降低去集群内索引的次数,增加集群内部索引性能,提升qps(每秒查询率)。在对小文件进行读取的过程中只需要访问合并文件池即可,另外在进行删除的过程中只删除了小文件元数据,而非合并文件,在一定程度上降低了底层存储的访问频次。由于合并文件的关联性,根据关联文件的尺寸来合并,尽量减少磁盘存储空洞,优化了存储资源使用率,加上多个相关联小文件的访问被合并成一个大文件的访问,极大减少了访问集群内文件的开销。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是智能终端,其内部结构图可以如图16所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种针对对象存储的智能小文件合并的方法。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,一种计算机存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种针对对象存储的智能小文件合并的方法,其特征在于,所述方法包括:
获取第一对象并对所述第一对象进行判断,当所述第一对象具有第一属性时写入第一文件池;
对所述第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对所述第一对象进行合并,并将合并后的第一对象写入第二文件池;
判断所述第一对象是否已合并,若未合并,则直接读取所述第一文件池,若已合并,则对所述第一对象进行转换并访问所述第二文件池;
判断所述第一对象是否已合并,若未合并,则直接删除所述第一文件池中对应的第一对象,若已合并,则删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象。
2.根据权利要求1所述的针对对象存储的智能小文件合并的方法,其特征在于,所述获取第一对象并对所述第一对象进行判断,包括:
当所述第一对象具有第二属性时写入第三文件池,所述第三文件池用于存储普通文件。
3.根据权利要求1所述的针对对象存储的智能小文件合并的方法,其特征在于,所述对所述第一文件池中具有第一属性的第一对象进行关联性分析,包括:
扫描所述第一文件池中待合并的第一对象,并取出所述第二文件池中空洞率超过第一阈值的合并文件;
对所述第一文件池中待合并的第一对象和第二文件池中空洞率超过第一阈值的合并文件进行关联性分析。
4.根据权利要求3所述的针对对象存储的智能小文件合并的方法,其特征在于,所述对所述第一文件池中待合并的第一对象和第二文件池中空洞率超过第一阈值的合并文件进行关联性分析,包括:
对同批次或者写入时间不超过第二阈值的第一对象赋予不同的写关联度值;
对同批次或者读取时间不超过第三阈值的第一对象赋予不同的读关联度值;
根据所述第一对象的路径、文件名以及标签对所述第一对象赋予不同的特征关联度值;
对所述写关联度值、读关联度值和特征关联度值进行加权,得到关联度评分,所述关联度评分用于获取最佳命中效果。
5.根据权利要求1所述的针对对象存储的智能小文件合并的方法,其特征在于,所述对所述第一对象进行转换并访问所述第二文件池,包括:
访问所述第二文件池中的合并文件缓存,并在未命中合并后的第一对象时继续访问所述第二文件池。
6.根据权利要求1所述的针对对象存储的智能小文件合并的方法,其特征在于,所述删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象,包括:
当所述第二文件池中的合并文件的空洞率超过第一阈值时,则通过空洞回收单元直接删除所述合并文件。
7.一种针对对象存储的智能小文件合并的***,其特征在于,所述***包括:
第一写入模块,用于获取第一对象并对所述第一对象进行判断,当所述第一对象具有第一属性时写入第一文件池;
分析模块,用于对所述第一文件池中具有第一属性的第一对象进行关联性分析,根据关联性分析结果对所述第一对象进行合并,并将合并后的第一对象写入第二文件池;
读取模块,用于判断所述第一对象是否已合并,若未合并,则直接读取所述第一文件池,若已合并,则对所述第一对象进行转换并访问所述第二文件池;
删除模块,用于判断所述第一对象是否已合并,若未合并,则直接删除所述第一文件池中对应的第一对象,若已合并,则删除所述第二文件池中对应第一对象的元数据并保留合并后的第一对象。
8.根据权利要求7所述的针对对象存储的智能小文件合并的***,其特征在于,所述***还包括:
第二写入模块,用于当所述第一对象具有第二属性时写入第三文件池,所述第三文件池用于存储普通文件;
扫描模块,用于扫描所述第一文件池中待合并的第一对象,并取出所述第二文件池中空洞率超过第一阈值的合并文件;
空洞回收模块,用于当所述第二文件池中的合并文件的空洞率超过第一阈值时,则通过空洞回收单元直接删除所述合并文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211681233.3A CN115951832A (zh) | 2022-12-27 | 2022-12-27 | 针对对象存储的智能小文件合并的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211681233.3A CN115951832A (zh) | 2022-12-27 | 2022-12-27 | 针对对象存储的智能小文件合并的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115951832A true CN115951832A (zh) | 2023-04-11 |
Family
ID=87285670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211681233.3A Pending CN115951832A (zh) | 2022-12-27 | 2022-12-27 | 针对对象存储的智能小文件合并的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115951832A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117632039A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
-
2022
- 2022-12-27 CN CN202211681233.3A patent/CN115951832A/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 |
---|---|---|
CN108710639B (zh) | 一种基于Ceph的海量小文件存取优化方法 | |
US6807607B1 (en) | Cache memory management system and method | |
CN107729535B (zh) | 一种键值数据库内布隆过滤器的配置方法 | |
CN112015674A (zh) | 基于多层级的缓存资源访问方法、装置和计算机设备 | |
CN107888687B (zh) | 一种基于分布式存储***的代理客户端存储加速方法及*** | |
CN115951832A (zh) | 针对对象存储的智能小文件合并的方法及*** | |
CN111625515A (zh) | 一种聚合小文件的操作请求的处理方法及装置 | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
CN112799590B (zh) | 一种针对在线主存储重删的差异化缓存方法 | |
CN115470157A (zh) | 预取方法、电子设备、存储介质及程序产品 | |
CN106201918A (zh) | 一种基于大数据量和大规模缓存快速释放的方法和*** | |
CN115203177B (zh) | 一种分布式数据存储***及存储方法 | |
CN112925472A (zh) | 请求处理方法、装置、电子设备及计算机存储介质 | |
CN116302383A (zh) | 分布式异构数据采集方法、***、计算机设备及存储介质 | |
CN107967306B (zh) | 一种存储***中关联块的快速挖掘方法 | |
US8028011B1 (en) | Global UNIX file system cylinder group cache | |
CN114153760B (zh) | 基于权重的健值存储缓存淘汰方法、***及存储介质 | |
CN112800123A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112148681A (zh) | 一种基于分布式文件***hdfs的小文件存取优化方法 | |
CN111143288A (zh) | 一种数据存储方法、***及相关装置 | |
US20230342300A1 (en) | Data eviction method and apparatus, cache node, and cache system | |
CN109582233A (zh) | 一种数据的缓存方法和装置 | |
US20240070135A1 (en) | Hash engine for conducting point queries | |
CN116467353B (zh) | 一种基于lru差异化的自适应调节的缓存方法及*** | |
CN118012786A (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 |