内存映射在超大文件中保存海量碎片文件的方法及介质技术

技术编号:33644575 阅读:19 留言:0更新日期:2022-06-02 20:20
本发明专利技术的一种基于内存映射在超大文件中保存海量碎片文件的方法及介质,其方法包括S1创建与初始化数据卷;S2当有图片数据需要进行保存时,利用位图算法查找到空闲的数据块,使用内存映射文件技术将图片信息快速写入至数据块中;S3当有文件需要读取时,根据请求的路径解析出此文件保存的数据块索引,在数据块索引找到数据块位置;同时采用内存映射文件技术将数据块内容映射至内存中,程序读取内存文件数据发送至客户端;S4根据不同业务中文件的生命周期,当生命周期到达时,只修改数据块的使用状态。本发明专利技术可用于减少原来操作系统中对于每一张图片的INODE描述文件数量,以及在图片的生命周期到达时,快速删除图片,同时减少高并发的磁盘IO。并发的磁盘IO。并发的磁盘IO。

【技术实现步骤摘要】
内存映射在超大文件中保存海量碎片文件的方法及介质


[0001]本专利技术涉及操作系统文件处理
,具体涉及一种基于内存映射在超大文件中保存海量碎片文件的方法及介质。

技术介绍

[0002]在交管业务管理平台中,需要对接前端设备(电警、卡口等) 产生的过车违法数据,每一条数据都需要保存当前过车、违法的图片数据,此类图片大小在(500kb至2M)左右,传统做法中采用Windows 或Linux操作系统挂载IPSAN网络硬件,利用操作系统自带的目录文件管理机制,实现大量的图片存储。而在实际运营中,因图片数量具大,文件数量太多,操作系统需要为每一个文件建立INODE数据信息,从而需要大量的INODE,导致浪费太多空间,此外因交警行业的特殊性,对于过车与违法数据都有一定的存储期限,对于到达存储期限的图片数据,因文件数量太大,大量的删除操作必然会引起磁盘的高IO操作从而影响磁盘性能以及寿命。因此如何高效地存储交警业务中的图片,提高性能瓶颈,降低存储成本成为交警行业中急需解决的问题。

技术实现思路

[0003]本专利技术提出的一种基于内存映射在超大文件中保存海量碎片文件的方法及介质,可至少解决
技术介绍
中的技术问题之一。
[0004]为实现上述目的,本专利技术采用了以下技术方案:
[0005]一种基于内存映射在超大文件中保存海量碎片文件的方法,通过计算机设备执行以下步骤,
[0006]S1、创建与初始化数据卷(Volume),本部分以数据块形式保存具体文件内容、同时采用位图算法(Bitr/>‑
Map)来记录每一个数据块的使用状态。
[0007]S2、数据保存,当有图片数据需要进行保存时,利用位图算法(Bit

Map)快速查找到空闲的数据块,使用内存映射文件技术 (Memory

mapped file)将图片信息快速写入至数据块中。因方案中采用内存映射文件技术,操作数据相当与操作内存,极大提高文件保存效率,实现文件数据零拷贝。
[0008]S3、文件读取,当有文件需要读取时,方案中根据请求的路径快速解析出此文件保存的数据块索引,在数据块索引找到数据块位置。同时采用内存映射文件技术(Memory

mapped file)将数据块内容映射至内存中,程序读取内存文件数据发送至客户端。同样在此模块中也因采用内存映射文件技术,操作数据如同操作内存,提高了文件下载速度。
[0009]S4、文件删除,因业务场景(交警业务)限制,系统不提供数据手动删除功能,文件删除会根据不同业务中文件的生命周期,当生命周期到达时,系统并不会去操作具体的文件数据,只修改数据块的使用状态,从而减少大量的磁盘IO。提高文件删除以及磁盘性能。
[0010]其中S1是基础,S2至S4是不同的业务触发。
[0011]又一方面,本专利技术还公开一种计算机可读存储介质,存储有计算机程序,所述计算
机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。
[0012]再一方面,本专利技术还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
[0013]由上述技术方案可知,本专利技术的基于内存映射在超大文件中保存海量碎片文件的方法,可解决如何减少原来操作系统中对于每一张图片的INODE描述文件数量,以及如何在图片的生命周期(过期)到达时,快速删除图片,同时减少高并发的磁盘IO;具体的说,本专利技术系统采用超大文件来进行图片的存储,每张图片保存时会记录在超大的起始位置与偏移量,从而减少文件系统的INODE;对于大量图片文件删除时引发的磁盘IO,在方案中采用标记法来进行标记图片删除操作,从而解决磁盘的并发删除操作。
附图说明
[0014]图1为本专利技术流程框图;
[0015]图2是本专利技术实施例的位图与volume的数据块映射示意图;
[0016]图3是本专利技术实施例的volume数据块结构示意图。
具体实施方式
[0017]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。
[0018]如图1所示,本实施例所述的基于内存映射在超大文件中保存海量碎片文件的方法,包括以下步骤,
[0019]S1、创建与初始化数据卷(Volume),本部分以数据块形式保存具体文件内容、同时采用位图算法(Bit

Map)来记录每一个数据块的使用状态。
[0020]S2、数据保存,当有图片数据需要进行保存时,利用位图算法 (Bit

Map)快速查找到空闲的数据块,使用内存映射文件技术(Memory

mapped file)将图片信息快速写入至数据块中。因方案中采用内存映射文件技术,操作数据相当与操作内存,极大提高文件保存效率,实现文件数据零拷贝。
[0021]S3、文件读取,当有文件需要读取时,方案中根据请求的路径快速解析出此文件保存的数据块索引,在数据块索引找到数据块位置。同时采用内存映射文件技术(Memory

mapped file)将数据块内容映射至内存中,程序读取内存文件数据发送至客户端。同样在此模块中也因采用内存映射文件技术,操作数据如同操作内存,提高了文件下载速度。
[0022]S4、文件删除,因业务场景(交警业务)限制,系统不提供数据手动删除功能,文件删除会根据不同业务中文件的生命周期,当生命周期到达时,系统并不会去操作具体的文件数据,只修改数据块的使用状态,从而减少大量的磁盘IO。提高文件删除以及磁盘性能。
[0023]其中S1是基础,S2至S4是不同的业务触发。
[0024]本专利技术实施例整个具体操作过程包括如下步骤:
[0025]S1、初始化与数据卷(Volume)创建
[0026]a)初始化操作需要指定系统盘,数据盘(多个),数据块大小 (BLOCK_SIZE),数据
卷(VOLUME),数据卷数据过期时间(EXP_TIME);
[0027]b)根据录入的参数信息,创建元数据位图(INODE_BITMAP)与数据卷,一个数据卷对应一个元数据位图,位图数据保存在系统盘中,位图大小为卷大小/块大小;同一卷中数据块大小相同。
[0028]c)Volume会进行格式化操作,格式化最终会根据数据块大小,生成对应的INODE_BITMAP信息,如图2所示。
[0029]S2、数据保存
[0030]如图3所示,说明metadata区域保存数据相关的属性,如文件名,存入时间,过期时间,文件在数据块中保存大小偏移量,整个metadata 区域大小(64byte),结构如下:
[0031]类型说明大小fid文件名,UUID32byt本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于内存映射在超大文件中保存海量碎片文件的方法,其特征在于,包括以下步骤,S1、创建与初始化数据卷;S2、数据保存,当有图片数据需要进行保存时,利用位图算法查找到空闲的数据块,使用内存映射文件技术将图片信息快速写入至数据块中;S3、文件读取,当有文件需要读取时,根据请求的路径解析出此文件保存的数据块索引,在数据块索引找到数据块位置;同时采用内存映射文件技术将数据块内容映射至内存中,程序读取内存文件数据发送至客户端;S4、文件删除,根据不同业务中文件的生命周期,当生命周期到达时,系统并不会去操作具体的文件数据,只修改数据块的使用状态。2.根据权利要求1所述的基于内存映射在超大文件中保存海量碎片文件的方法,其特征在于:步骤S1中以数据块形式保存具体文件内容、同时采用位图算法来记录每一个数据块的使用状态。3.根据权利要求1所述的基于内存映射在超大文件中保存海量碎片文件的方法,其特征在于:步骤S1具体包括,1a)初始化操作需要指定系统盘,数据盘,数据块大小,数据卷,数据卷数据过期时间;1b)根据录入的参数信息,创建元数据位图与数据卷,一个数据卷对应一个元数据位图,位图数据保存在系统盘中,位图大小为卷大小/块大小;同一卷中数据块大小相同;1c)数据卷会进行格式化操作,格式化最终会根据数据块大小,生成对应的元数据位图信息。4.根据权利要求1所述的基于内存映射在超大文件中保存海量碎片文件的方法,其特征在于:所述步骤S2具体包括,2a)系统接收到需要保存的图片数据时,首先会去根据当前图片大小并获取符保存数据的Volume以及Volume所对应的;2b)查找Volume所对应的INODE_BITMAP中数据位为0的位索引I_INDEX,计算得出当前图片数据所需要保存的数据块索引B_INDEX,B_INDEX=B_INDEX,同时得出图片在Volume中的保存起始偏移量B_OFFSET=BLOCK_SIZE*B_INDEX;2c)填充DATA_BLOCK数据项的值以及图片具体数据;2d)使用内存映射技术映射出Volume的B_OFFSET至B_OFFSET+BLOCK_SIZE文件内存至内存区域M_AREA;2e)通过系统接口将图片数据写入至映射的内存中;2f)成功写入内存M_AREA后,修改INODE_BITMAP中对应索引位置为1;返回此次文件保存路径,路径规则为:相对...

【专利技术属性】
技术研发人员:陶诗德朱文佳
申请(专利权)人:安徽百诚慧通科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1