一种文件写入方法、装置、设备及介质制造方法及图纸

技术编号:34040303 阅读:24 留言:0更新日期:2022-07-06 13:19
本申请公开了一种文件写入方法、装置、设备及介质,涉及信息技术领域。该方法包括:获取针对目标文件的携带有待写入数据的文件写入请求;判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件;如果所述目标文件为所述小文件,则判断所述文件写入请求对应的文件写入类型是否为文件追加写类型;如果所述文件写入类型为文件追加写类型,则为所述目标文件创建相应的临时页以及目标页缓存,并将所述目标文件读入所述临时页中;基于页拷贝技术将所述临时页中的所述目标文件拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中。通过上述方案能够在进行文件写入时减少不必要的资源浪费提高写入效率以优化文件的写入过程。件的写入过程。件的写入过程。

【技术实现步骤摘要】
一种文件写入方法、装置、设备及介质


[0001]本专利技术涉及信息
,特别涉及一种文件写入方法、装置、设备及介质。

技术介绍

[0002]在分布式存储系统中,用户通过内核客户端读写的文件其数据及元数据均保存在服务器端。通常将用户访问频率高的文件放置于源池中,将用户访问频率低的文件放置于迁入池中。文件在创建之初其数据通常放置在源池中,一段时间后将其迁移至迁入池中,其中,迁移的过程即成为数据分级。在一些特定场景下,会出现海量的小文件,为提升小文件的分级效率,服务器端需要将小文件聚合为大文件再对大文件进行迁移,其中聚合伴随着分级的过程进行。分级迁移的过程提升了服务器端对于海量、较小文件批量处理的效率,但是随之带来的问题是客户端无法对分级聚合后的小文件进行直接读、写、删除、截断等操作。现有技术中,lib库采用的一般技术为根据小文件在大文件中的偏移,定位到小文件在大文件中所处位置,通过操作大文件达成对小文件操作的目的,特别地,lib库写入分级聚合文件的过程要复杂一些,根据写入过程是否使文件变大可分为修改写和追加写两种写入方式:修改写即定位到小文件在大文件中所处位置,对大文件执行写入操作;追加写由于大、小文件对应对象储存设备中的底层对象的不同,首先要将小文件从大文件中读出,接下来通过字符串操作合并文件原始数据及将要写入的数据,然后将合并结果写入小文件,最后更改大、小文件的元数据信息。
[0003]然而,将小文件从大文件中读出小文件的过程,需要首先将数据读到大文件页缓存中,接下来将大文件页缓存中的数据拷贝到一段用户态的地址中。写入时,将用户态的地址中的数据拷贝到文件的页缓存中,再执行下刷线程将数据落盘,但事实上,读出的数据对于用户没有直接的使用价值,仅为了第二次写入数据的完整性,造成资源浪费。综上,如何在进行文件写入时减少不必要的资源浪费提高写入效率以优化文件的写入过程的问题有待进一步解决。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种文件写入方法、装置、设备及介质,能够在进行文件写入时减少不必要的资源浪费以优化文件的写入过程。
[0005]其具体方案如下:
[0006]第一方面,本申请公开了一种文件写入方法,包括:
[0007]获取针对目标文件的携带有待写入数据的文件写入请求;
[0008]判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件;
[0009]如果所述目标文件为所述小文件,则判断所述文件写入请求对应的文件写入类型是否为文件追加写类型;
[0010]如果所述文件写入类型为文件追加写类型,则为所述目标文件创建相应的临时页以及目标页缓存,并将所述目标文件读入所述临时页中;
[0011]基于页拷贝技术将所述临时页中的所述目标文件拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中。
[0012]可选的,所述获取针对目标文件的携带有待写入数据的文件写入请求之后,还包括:
[0013]获取所述目标文件对应的大文件的文件编号、所述目标文件相对于所述大文件起始位置的偏移量、所述目标文件对应的分级聚合类型、所述大文件中对象的对象头的排序序号、所述目标文件占据的无效空间及所述目标文件的大小。
[0014]可选的,所述判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件,包括:
[0015]根据所述目标文件对应的大文件的文件编号判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件;
[0016]如果所述目标文件对应的大文件的文件编号为0,则判定所述目标文件不是所述小文件,并将所述待写入数据直写入所述目标文件中;
[0017]如果所述目标文件对应的大文件的文件编号不为0,则判定所述目标文件为所述小文件。
[0018]可选的,所述判断所述文件写入请求对应的文件写入类型是否为文件追加写类型,包括:
[0019]检查所述待写入数据的写入位置与写入内容,并基于所述写入位置和所述写入内容对写入后的所述目标文件大小是否改变进行预测分析;
[0020]如果写入后的所述目标文件大小没有改变,则判定所述文件写入类型为文件修改写类型,并根据所述目标文件相对于所述大文件起始位置的偏移量将所述待写入数据直写入所述大文件中;
[0021]如果写入后的所述目标文件大小发生改变,则判定所述文件写入类型为文件追加写类型。
[0022]可选的,所述为所述目标文件创建相应的临时页以及目标页缓存,并将所述目标文件读入所述临时页中,包括:
[0023]根据所述目标文件相对于所述大文件起始位置的偏移量和所述目标文件的大小创建临时页以及所述目标文件对应的目标页缓存,并将所述目标文件读入所述临时页中。
[0024]可选的,所述基于页拷贝技术将所述临时页中的所述目标文件拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中,包括:
[0025]将所述临时页转换为地址并将经过转换后的所述临时页中的数据拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中。
[0026]可选的,所述基于页拷贝技术将所述临时页中的所述目标文件拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中之后,还包括:
[0027]根据写入后的所述目标文件更新所述大文件以及所述写入后的所述目标文件的元数据信息。
[0028]第二方面,本申请公开了一种文件写入装置,包括:
[0029]请求获取模块,用于获取针对目标文件的携带有待写入数据的文件写入请求;
[0030]文件判断模块,用于判断所述目标文件是否为用于通过分级聚合处理形成大文件
的小文件;
[0031]文件写入类型判断模块,用于如果所述目标文件为所述小文件,则判断所述文件写入请求对应的文件写入类型是否为文件追加写类型;
[0032]临时页读入模块,用于如果所述文件写入类型为文件追加写类型,则为所述目标文件创建相应的临时页以及目标页缓存,并将所述目标文件读入所述临时页中;
[0033]页拷贝模块,用于基于页拷贝技术将所述临时页中的所述目标文件拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中。
[0034]第三方面,本申请公开了一种电子设备,包括:
[0035]存储器,用于保存计算机程序;
[0036]处理器,用于执行所述计算机程序,以实现前述公开的所述的文件写入方法的步骤。
[0037]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的所述的文件写入方法的步骤。
[0038]本申请在进行文件写入时,先获取针对目标文件的携带有待写入数据的文件写入请求,判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件,如果所述目标文件为所述小文件,则判断所述文件写入请求对应的文件写入类型是否为文件追加写类型,如果所述文件写入类型为文件追加写类型,则为所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件写入方法,其特征在于,包括:获取针对目标文件的携带有待写入数据的文件写入请求;判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件;如果所述目标文件为所述小文件,则判断所述文件写入请求对应的文件写入类型是否为文件追加写类型;如果所述文件写入类型为文件追加写类型,则为所述目标文件创建相应的临时页以及目标页缓存,并将所述目标文件读入所述临时页中;基于页拷贝技术将所述临时页中的所述目标文件拷贝至所述目标页缓存中,并将所述待写入数据直写入所述目标文件中。2.根据权利要求1所述的文件写入方法,其特征在于,所述获取针对目标文件的携带有待写入数据的文件写入请求之后,还包括:获取所述目标文件对应的大文件的文件编号、所述目标文件相对于所述大文件起始位置的偏移量、所述目标文件对应的分级聚合类型、所述大文件中对象的对象头的排序序号、所述目标文件占据的无效空间及所述目标文件的大小。3.根据权利要求2所述的文件写入方法,其特征在于,所述判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件,包括:根据所述目标文件对应的大文件的文件编号判断所述目标文件是否为用于通过分级聚合处理形成大文件的小文件;如果所述目标文件对应的大文件的文件编号为0,则判定所述目标文件不是所述小文件,并将所述待写入数据直写入所述目标文件中;如果所述目标文件对应的大文件的文件编号不为0,则判定所述目标文件为所述小文件。4.根据权利要求2所述的文件写入方法,其特征在于,所述判断所述文件写入请求对应的文件写入类型是否为文件追加写类型,包括:检查所述待写入数据的写入位置与写入内容,并基于所述写入位置和所述写入内容对写入后的所述目标文件大小是否改变进行预测分析;如果写入后的所述目标文件大小没有改变,则判定所述文件写入类型为文件修改写类型,并根据所述目标文件相对于所述大文件起始位置的偏移量将所述待写入数据直写入所述大文件中;如果写入后的所述目标文件大小发生改变,则判定所述文件写入类型为文件追加写类型。5.根据权利要求2所...

【专利技术属性】
技术研发人员:荣章权
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1