一种分布式文件系统中小文件数据存储、读取方法及装置与流程

文档序号:12664111阅读:184来源:国知局
一种分布式文件系统中小文件数据存储、读取方法及装置与流程

本发明涉及数据存储、读取技术领域,具体涉及一种分布式文件系统中小文件数据存储、读取方法及装置。



背景技术:

海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题。通过对若干分布式存储系统的调研、测试与使用,与其它分布式系统相比,海量小文件存储更侧重于解决两个问题:(1)海量小文件的元数据信息组织与管理;(2)海量小文件的读写速率。

小文件访问具有访问频率高、访问量大的特性,传统文件系统中小文件的访问对主机磁盘的压力较大,分布式文件系统以集群形式对外提供服务,但是小文件的存储性能仍然受网络时延和磁盘响应速度的影响。



技术实现要素:

本发明提供了一种分布式文件系统中小文件数据存储、读取方法及装置,能够提高分布式文件系统中小文件数据的存储效率。

本发明解决上述技术问题的技术方案如下:一种分布式文件系统中小文件数据存储方法,包括:

S1a,在分布式文件系统中,将分布式内存库作为分级缓存层,并增加异步提交缓存模块;

S2a,当向分布式文件系统中写入小文件数据时,先将所述小文件数据写入分级缓存层;

S3a,当分级缓存层中的小文件数据量达到预设量时,由异步提交缓存模块从分级缓存层中读取小文件数据,写入数据持久层;

S4a,当异步提交缓存模块向数据持久层中提交小文件数据成功后,清除分级缓存层中对应的小文件数据。

本发明的有益效果为:在分布式文件系统中,将分布式内存库作为分级缓存层,并增加异步提交缓存模块,当向分布式文件系统中写入小文件数据时,先将小文件数据写入分级缓存层,利用缓存层的轻量级缓存功能减小对持久层磁盘的压力,然后由异步提交缓存模块从分级缓存层中读取小文件数据,存储到数据持久层,这样可以降低小文件数据持久化的响应时间,从而提高分布式文件系统中小文件数据的存储效率。

另一方面,本发明提供了一种分布式文件系统中小文件数据读取方法,包括:

S1b,当分布式文件系统接收到数据读取请求时,根据数据读取请求判断分级缓存层中是否存在对应的小文件数据;

S2b,若存在,则从分级缓存层中读取对应的小文件数据返回,若不存在,则从数据持久层中读取对应的小文件数据返回。

本发明的有益效果为:当从分布式文件系统中读取小文件数据时,先从分级缓存层中读取,当读取失败时,再从数据持久层中读取小文件数据,减轻了数据持久层的压力,加快了小文件数据读取的效率。

再一方面,提供了一种分布式文件系统中小文件数据存储装置,包括数据写入模块、异步提交缓存模块和清除模块;

所述数据写入模块,用于当向分布式文件系统中写入小文件数据时,先向分级缓存层中写入小文件数据;

所述异步提交缓存模块,用于当分级缓存层中的小文件数据量达到预设量时,从分级缓存层中读取小文件数据,写入数据持久层;

所述清除模块,用于当所述异步提交缓存模块向数据持久层中提交小文件数据成功后,清除分级缓存层中对应的小文件数据。

又一方面,还提供了一种分布式文件系统中小文件数据读取装置,包括:

判断模块,用于接收到数据读取请求时,根据数据读取请求判断分级缓存层中是否存在对应的小文件数据;

数据读取模块,用于若分级缓存层中存在对应的小文件数据,则从分级缓存层中读取对应的小文件数据返回,若否,则从数据持久层中读取对应的小文件数据返回。

附图说明

图1为本发明一个实施例的分布式文件系统中小文件数据存储方法流程图;

图2为本发明另一个实施例的分布式文件系统中小文件数据存储方法流程图;

图3为本发明一个实施例的分布式文件系统中小文件数据读取方法流程图;

图4为本发明另一个实施例的分布式文件系统中小文件数据读取方法流程图;

图5为本发明一个实施例的分布式文件系统中小文件数据存储装置框图示意图;

图6为本发明另一个实施例的分布式文件系统中小文件数据存储装置框图示意图;

图7为本发明一个实施例的分布式文件系统中小文件数据读取装置框图示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

参见图1,为实施例1的一种分布式文件系统中小文件数据存储方法,包括:

S1a,在分布式文件系统中,将分布式内存库作为分级缓存层,并增加异步提交缓存模块;

S2a,当向分布式文件系统中写入小文件数据时,先将所述小文件数据写入分级缓存层;

S3a,当分级缓存层中的小文件数据量达到预设量时,由异步提交缓存模块从分级缓存层中读取小文件数据,写入数据持久层;

S4a,当异步提交模块将小文件数据向数据持久层写入成功后,清除分级缓存层中对应的小文件数据。文件数据的大小在1MB以内的通常称为小文件数据,在分布式文件系统中,小文件数据的写入和访问频率高,访问量大,对磁盘压力很大,因此,在本实施例中,将分布式内存作为分级缓存层,并增加异步提交缓存模块,小文件存储时,先将小文件写到分级缓存层,利用分级缓存层的轻量级缓存功能减小对数据持久层磁盘的压力,当文件存储完成后,由异步提交缓存模块从分级缓存层中读取小文件数据,将小文件数据存储到数据持久层,实现了小文件异步提交机制,降低了小文件持久化数据的响应时间,提高了分布式小文件中的存储效率。

参见图2,为实施例2的一种分布式文件系统中小文件数据存储方法,包括:

S1a,在分布式文件系统中,将分布式内存库作为分级缓存层,并增加异步提交缓存模块;

S21a,以数据块为单位向分布式文件系统中写入小文件数据时,查找分级缓存层中是否存在文件缓存信息,若存在,执行步骤S22a,若不存在,则创建文件缓存信息,执行步骤S22a;

S22a,根据需要写入的数据块,从文件缓存信息中查找是否存在对应的缓存数据块索引信息,若存在,则在分级缓存层中更新缓存数据块;若不存在,则创建缓存数据块索引信息,并将数据块存储到分级缓存层中;

S3a,当分级缓存层中的小文件数据量达到预设量时,由异步提交缓存模块读取分级缓存层中的数据块,写入数据持久层代理层,由数据持久层代理层通过通信网络将数据块写入数据持久层。

本实施例在分布式文件系统中将分布式内存库DMDB作为分级缓存层,并在分布式文件系统中增加异步提交缓存模块,Hbase作为数据持久层,Sbase作为数据持久层Hbase的代理。当外部客户端通过分布式文件系统提供的接口向分布式文件系统中写入小文件数据时,分布式文件系统获取路由信息,分别连接到DMDB和Sbase,分布式文件接口和分布式内存库DMDB均通过Sbase连接到Hbase。当分布式文件系统接收到外部数据写入请求时,首先在DMDB中创建元数据信息,并通过Sbase向Hbase发出打开文件请求,打开对应的Hbase表,作为数据持久层。通常,外部客户端以数据块为单位将数据写入分布式文件系统中,当分布式文件系统接收到数据写入请求时,判断分级缓存中是否存在文件缓存信息,其中,文件缓存信息中包括文件索引信息和缓存数据块索引信息,当分级缓存层中存在文件缓存信息时,读取文件缓存信息,若分级缓存层中不存在文件缓存信息,则创建文件缓存信息。随后判断文件缓存信息中是否存在缓存数据块索引信息,若存在,则根据请求写入的数据块,直接更新缓存数据块,若不存在缓存数据块索引信息,则先创建缓存数据块索引信息,然后将请求写入的数据块存储到分级缓存层中。

当分级缓存层中小文件数据的数据量达到预设量时,比如,本实施例设定为1M,即当分级缓存层中的小文件数据的数据量达到1M时,由异步提交缓存模块从分级缓存层中读取小文件数据,在读取分级缓存层中的数据时,同样是以数据块为单位进行读取。异步提交缓存模块将从分级缓存层读取的数据块先提交给数据持久层代理Sbase中,然后由Sbase通过网络通信将数据块提交给数据持久层Hbase中,向数据持久层提交数据完毕后,删除分级缓存层中对应的小文件数据。当请求写入的小文件数据写入分布式文件系统后,关闭分布式文件系统的写通道,并更新分布式文件系统中分级缓存层中的文件缓存信息和缓存数据信息。至此,本实施例的分布式文件系统中小文件数据的存储过程结束,采用分布式内存作为分级缓存层,并增加异步提交缓存模块,小文件存储时,先将小文件写到分级缓存层,利用分级缓存层的轻量级缓存功能减小对数据持久层磁盘的压力,当文件存储完成后,由异步提交缓存模块从分级缓存层中读取小文件数据,将小文件数据存储到数据持久层,实现了小文件异步提交机制,降低了小文件持久化数据的响应时间,提高了分布式小文件中的存储效率。

参见图3,为实施例3的一种分布式文件系统中小文件数据读取方法,包括:

S1b,当分布式文件系统接收到数据读取请求时,根据数据读取请求判断分级缓存层中是否存在对应的数据;

S2b,若存在,则从分级缓存层中读取对应的数据返回,若不存在,则从数据持久层中读取对应的数据返回。

当采用上述实施例1和实施例2提供的方法进行了分布式文件系统中小文件数据存储,本实施例对分布式文件系统中的小文件数据进行读取。当分布式文件系统接收到外部客户端的数据读取请求时,先从分级缓存层中读取对应的小文件数据,如果分级缓存层中不存在对应的小文件数据,再从数据持久层中读取对应的小文件数据返回给外部客户端,如果分级缓存层中有对应的小文件数据,则直接从分级缓存层中读取对应的小文件数据返回给外部客户端。本实施例中当从分布式文件系统中读取小文件数据时,先从分级缓存层中读取,当读取失败时,再从数据持久层中读取数据,减轻了数据持久层的压力,加快了小文件数据读取的效率。

参见图4,为实施例4的一种分布式文件系统中小文件数据读取方法,包括:

S11b,当接收到数据读取请求时,判断分级缓存层中是否存在对应的缓存数据块索引信息,若不存在,则从数据持久层中读取对应的数据块返回,若存在,执行S12b;

S12b,加载对应的缓存数据块索引信息,并根据缓存数据块索引信息查找分级缓存层中是否存在对应的数据块,若存在,则从分级缓存层中读取对应的数据块返回,若不存在,则从数据持久层中读取对应的数据块返回。

当分布式文件系统接收到外部客户端的数据读取请求时,先判断分级缓存层中是否存在对应的缓存数据块索引信息,若不存在,则表明分级缓存层中没有对应的数据块,那么就从数据持久层中读取对应的数据块返回给外部客户端;若分级缓存层中存在数据块索引信息,则根据缓存数据块索引信息查找分级缓存层中是否存在对应的数据块,若存在,表明分级缓存层中存在对应的数据块,则从分级缓存层中读取对应的数据块返回给外部客户端,若分级缓存层中不存在对应的缓存数据块,表明分级缓存没有对应的数据块,则从数据持久层中读取对应的数据块返回给外部客户端。本实施例中当从分布式文件系统中读取小文件数据时,先从分级缓存层中读取,当读取失败时,再从数据持久层中读取数据,减轻了数据持久层的压力,加快了小文件数据读取的效率。

参见图5,为实施例5的一种分布式文件系统中小文件数据存储装置,包括数据写入模块51、异步提交缓存模块52和清除模块53。

数据写入模块51,用于当向分布式文件系统中写入小文件数据时,先向分级缓存层中写入小文件数据;

异步提交缓存模块52,用于当分级缓存层中的小文件数据的数据量达到预设量时,从分级缓存层中读取小文件数据,写入数据持久层;

清除模块53,用于当所述异步提交缓存模块向数据持久层中提交小文件数据成功后,清除分级缓存层中对应的小文件数据。

参见图6,为实施例6的一种分布式文件系统中小文件数据存储装置,包括数据写入模块61、异步提交缓存模块62和清除模块63,其中,数据写入模块61包括第一查找单元611、第一创建单元612、第二查找单元613、更新单元614和第二创建单元615。

所述第一查找单元611,用于当以数据块为单位向分布式文件系统中写入数据时,在分级缓存层中查找是否存在文件缓存信息,若存在,调用第二查找单元613;若不存在,调用第一创建单元612;

第一创建单元612,用于创建文件缓存信息,调用第二查找单元612;

所述第二查找单元613,用于根据需要写入的数据块,从文件缓存信息中查找是否存在对应的缓存数据块索引信息,若存在,调用更新单元614,若不存在,调用第二创建单元615;

所述第二创建单元615,用于创建缓存数据块索引信息,并将数据块存储到分级缓存层中;

所述更新单元614,用于在分级缓存层中更新缓存数据块。

其中的异步提交缓存模块63,具体用于当分级缓存层中的数据量达到预设量时,读取分级缓存层中的数据块,写入数据持久层代理层,以便由数据持久层代理层通过通信网络将数据块写入数据持久层。

参见图7,为实施例7的一种分布式文件系统中小文件数据读取装置,包括判断模块71和数据读取模块72。

判断模块71,用于接收到数据读取请求时,根据数据读取请求判断分级缓存层中是否存在对应的小文件数据;

数据读取模块72,用于若分级缓存层中存在对应的小文件数据,则从分级缓存层中读取对应的小文件数据返回,若否,则从数据持久层中读取对应的小文件数据返回。

其中,所述判断模块71,具体用于当接收到数据读取请求时,判断分级缓存层中是否存在对应的缓存数据块索引信息;还用于当分级缓存层中存在对应的缓存数据块索引信息时,加载对应的缓存数据块索引信息,并根据缓存数据块索引信息查找分级缓存层中是否存在对应的数据块;

所述数据读取模块72,用于当判断模块71判断出分级缓存层中不存在对应的缓存数据块索引信息时,从数据持久层中读取对应的数据块返回;还用于当判断模块判断出分级缓存层中存在对应的数据块,从分级缓存层中读取对应的数据块返回,否则,从数据持久层读取对应的数据块返回。

本发明提供的一种分布式文件系统中小文件存储、读取方法及装置,数据存储的过程中,在分布式文件系统中,将分布式内存库作为分级缓存层,并增加异步提交缓存模块,当向分布式文件系统中写入数据时,先将数据写入分级缓存层,利用缓存层的轻量级缓存功能减小对持久层磁盘的压力,然后由异步提交缓存模块从缓存层中读取小文件数据,存储到数据持久层,这样可以降低小文件持久化数据的响应时间,从而提高分布式文件系统中小文件的存储效率;当从分布式文件系统中读取小文件数据的过程中,先从分级缓存层中读取,当读取失败时,再从数据持久层中读取数据,减轻了数据持久层的压力,加快了小文件数据读取的效率。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1