一种加快日志落入磁盘的方法、系统、设备及介质技术方案

技术编号:25834548 阅读:35 留言:0更新日期:2020-10-02 14:15
本发明专利技术公开了一种加快日志落入磁盘的方法、系统、设备和存储介质,方法包括以下步骤:设置内存使用状况与数据存储成员对象申请内存的大小的对应关系;获取当前服务器的内存使用状况,并基于对应关系确定申请内存的最大值;申请最大值对应的内存,并将首个日志段的元数据进行编码并存入申请的内存中;以及判断后续日志段的元数据是否产生变化,响应于元数据产生变化,将产生变化的部分进行编码并存入申请的内存中,并将内存中的数据写入磁盘中。本发明专利技术提出的方案通过提高用于打包操作的申请的内存块的大小,减少内存的申请次数,并只对发生改变的部分进行打包,降低了时延,加快了日志落盘的速度。

【技术实现步骤摘要】
一种加快日志落入磁盘的方法、系统、设备及介质
本专利技术涉及日志领域,更具体地,特别是指一种加快日志落入磁盘的方法、系统、计算机设备及可读介质。
技术介绍
目前的分布式文件系统中,MDS(MetadataServer,元数据服务)所有的操作都会记录在journal(分布式文件系统的日志)段中,每个日志段可以记录1024个日志事件,每个元数据的操作都会记录为一个日志事件,并将对应的元数据的dentry(元数据的数据存储成员对象)标记为待处理,等待该dentry落盘更新到磁盘中。MDS会定时启动相应的线程检查当前MDS的日志段数量,如果当前MDS的日志段数量超过该限值时,MDS就会将超过限制的日志段按顺序将日志段一个一个的写入磁盘,且在写入过程中,是以元数据操作对应的目录为单位进行的。当MDS在做日志段落盘操作的时候,该MDS所有的业务线程都会暂停,只有当本次日志段落盘任务完成后,其他业务线程才能继续进行。频繁的内存申请及过多的dentry压缩编码操作,会造成较大时延开销,增加当前日志落盘操作线程的时延波动,进一步造成当前MDS其他业务的时延卡顿。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种加快日志落入磁盘的方法、系统、计算机设备及计算机可读存储介质,通过提高用于单个dentry打包操作申请的内存块的大小,减少内存的申请次数;在dentry中增加一个列表,记录该元数据当前的所有变化的成员变量,在dentry的打包操作中,只将该列表及变化的成员变量值进行打包,并传入底层,降低MDS层的编码操作及底层的解码操作;从而降低dentry时延,加快日志段落盘速度。基于上述目的,本专利技术实施例的一方面提供了一种加快日志落入磁盘的方法,包括如下步骤:设置内存使用状况与数据存储成员对象申请内存的大小的对应关系;获取当前服务器的内存使用状况,并基于所述对应关系确定申请内存的最大值;申请所述最大值对应的内存,并将首个日志段的元数据进行编码并存入申请的内存中;以及判断后续日志段的元数据是否产生变化,响应于元数据产生变化,将产生变化的部分进行编码并存入申请的内存中,并将内存中的数据写入磁盘中。在一些实施方式中,所述将产生变化的部分进行编码并存入申请的内存中包括:在所述数据存储成员对象中增加成员变量列表以记录产生变化的成员变量。在一些实施方式中,根据所述成员变量列表中的数据获取产生变化的成员变量,并将所述成员变量列表和产生变化的成员变量存入所述数据存储成员对象申请的内存。在一些实施方式中,还包括:响应于接收到磁盘的反馈信息,将所述成员变量列表清空。在一些实施方式中,还包括:将多个数据存储成员对象申请的内存进行合并,并将所述内存中的数据进行整合。在一些实施方式中,所述将多个数据存储成员对象申请的内存进行合并包括:获取所述多个数据存储成员对象申请的内存中的成员变量列表,并判断所述成员变量列表中的数据是否存在相同类型的成员变量。在一些实施方式中,所述将所述内存中的数据进行整合包括:响应于所述成员变量列表中的数据存在相同类型的成员变量,将相同类型的成员变量进行整合,并更新所述成员变量列表。本专利技术实施例的另一方面,还提供了一种加快日志落入磁盘系统,包括:包括:预设模块,配置用于设置内存使用状况与数据存储成员对象申请内存的大小的对应关系;读取模块,配置用于获取当前服务器的内存使用状况,并基于所述对应关系确定申请内存的最大值;执行模块,配置用于申请所述最大值对应的内存,并将首个日志段的元数据进行编码并存入申请的内存中;以及判断模块,配置用于判断后续日志段的元数据是否产生变化,响应于元数据产生变化,将产生变化的部分进行编码并存入申请的内存中,并将内存中的数据写入磁盘中。本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。本专利技术具有以下有益技术效果:通过提高用于单个dentry打包操作申请的内存块的大小,减少内存的申请次数;在dentry中增加一个列表,记录该元数据当前的所有变化的成员变量,在dentry的打包操作中,只将该列表及变化的成员变量值进行打包,并传入底层,降低MDS层的编码操作及底层的解码操作;从而降低dentry时延,加快日志段落盘速度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1为本专利技术提供的加快日志落入磁盘的方法的实施例的示意图;图2为本专利技术提供的加快日志落入磁盘的计算机设备的实施例的硬件结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。基于上述目的,本专利技术实施例的第一个方面,提出了一种加快日志落入磁盘的方法的实施例。图1示出的是本专利技术提供的加快日志落入磁盘的方法的实施例的示意图。如图1所示,本专利技术实施例包括如下步骤:S1、设置内存使用状况与数据存储成员对象申请内存的大小的对应关系;S2、获取当前服务器的内存使用状况,并基于对应关系确定申请内存的最大值;S3、申请最大值对应的内存,并将首个日志段的元数据进行编码并存入申请的内存中;以及S4、判断后续日志段的元数据是否产生变化,响应于元数据产生变化,将产生变化的部分进行编码并存入申请的内存中,并将内存中的数据写入磁盘中。将日志段中某个目录相关的日志事件依次落盘完成后,再对下一个目录相关的日志事件进行落盘操作,即对该目录下所有的待处理的dentry依次都打包落入磁盘中。Dentry的打包操作就是将元数据的相关成员对象压缩编码后存入一个已经申请好的内存空间,现有技术中这个内存空间默认为4k及当前系统页大小的较小值,如果空间不够用了,就再申请一块,等该dentry打包完成后,就发送给底层模块完成该dentry的落盘操作。等该日志段的所有日志事件落盘完成后,再对下一个日志段进行落盘,然后从内存中删掉该部分journal日志段。本专利技术实施例为了减少内存的申请次数,可以根据内存的使用情况适当调整可申请的内存的大小。设置内存使用状况与数据存储成员对象申请内存的大小的对应关系。在配置文件中增加配置,用以设置内存使用状况与dentr本文档来自技高网...

【技术保护点】
1.一种加快日志落入磁盘的方法,其特征在于,包括以下步骤:/n设置内存使用状况与数据存储成员对象申请内存的大小的对应关系;/n获取当前服务器的内存使用状况,并基于所述对应关系确定申请内存的最大值;/n申请所述最大值对应的内存,并将首个日志段的元数据进行编码并存入申请的内存中;以及/n判断后续日志段的元数据是否产生变化,响应于元数据产生变化,将产生变化的部分进行编码并存入申请的内存中,并将内存中的数据写入磁盘中。/n

【技术特征摘要】
1.一种加快日志落入磁盘的方法,其特征在于,包括以下步骤:
设置内存使用状况与数据存储成员对象申请内存的大小的对应关系;
获取当前服务器的内存使用状况,并基于所述对应关系确定申请内存的最大值;
申请所述最大值对应的内存,并将首个日志段的元数据进行编码并存入申请的内存中;以及
判断后续日志段的元数据是否产生变化,响应于元数据产生变化,将产生变化的部分进行编码并存入申请的内存中,并将内存中的数据写入磁盘中。


2.根据权利要求1所述的方法,其特征在于,所述将产生变化的部分进行编码并存入申请的内存中包括:
在所述数据存储成员对象中增加成员变量列表以记录产生变化的成员变量。


3.根据权利要求2所述的方法,其特征在于,所述将产生变化的部分进行编码并存入申请的内存中还包括:
根据所述成员变量列表中的数据获取产生变化的成员变量,并将所述成员变量列表和产生变化的成员变量存入所述数据存储成员对象申请的内存。


4.根据权利要求2所述的方法,其特征在于,还包括:
响应于接收到磁盘的反馈信息,将所述成员变量列表清空。


5.根据权利要求1所述的方法,其特征在于,还包括:
将多个数据存储成员对象申请的内存进行合并,并将所述内存中的数据进行整合。


6.根据权利要求5所述的方法,其特征在于,所述将多个数据存储成员对象申请的内存进...

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

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

1