一种脏数据下刷方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:26596465 阅读:76 留言:0更新日期:2020-12-04 21:18
本申请公开了一种脏数据下刷方法、装置、设备及计算机可读存储介质,方法包括:在系统初始化时申请第一容量的内存;当双控节点中的一个节点发生热重启时,获取内存的剩余容量;根据内容的剩余容量申请第二容量的内存,将第一容量的内存和第二容量的内存作为新增缓存;将节点中的脏数据下刷到新增缓存中。本申请公开的上述技术方案,通过将发生热重启的节点中的脏数据下刷到新增缓存中来提高脏数据的下刷速率,从而降低用户业务发生中断的可能性,并通过将系统初始化时申请的第一容量的内存和其中一节点发生热重启时申请的第二容量的内存作为新增缓存而提高脏数据下刷速率和效果,并避免造成资源的浪费和对系统中其他模块的运行造成影响。

【技术实现步骤摘要】
一种脏数据下刷方法、装置、设备及计算机可读存储介质
本申请涉及数据下刷
,更具体地说,涉及一种脏数据下刷方法、装置、设备及计算机可读存储介质。
技术介绍
在双控节点场景下,当节点2执行热重启后,节点1要等到节点2把自己的脏数据全部刷写完后才能和节点2结成Cachingpair(缓存对),结成Cachingpair后两个节点的缓存数据才可以互相镜像,然后,节点2才能开始加入集群以和节点1恢复成双控状态。目前,热重启后的节点会将脏数据下刷到硬盘中,并在收到硬盘回复的响应才算一次下刷完成,当脏数据包含大量的小块随机IO时,由于IO地址不连续(随机IO的地址是随机的),因此,则无法连续下刷到硬盘中,而这就导致脏数据的下刷速度比较慢,持续时间比较长,如果另一节点在热重启后的节点进行脏数据下刷时被执行重启操作就会导致用户业务发生中断。综上所述,如何提高热重启节点脏数据的下刷速率,以降低用户业务中断的可能性,是目前本领域技术人员亟待解决的技术问题。
技术实现思路
有鉴于此,本申请的目的是提供一种脏数据下刷方法、装置、设备及计算机可读存储介质,用于提高热重启节点脏数据的下刷速率,以降低用户业务中断的可能性。为了实现上述目的,本申请提供如下技术方案:一种脏数据下刷方法,包括:在系统初始化时申请第一容量的内存;当双控节点中的一个节点发生热重启时,获取所述内存的剩余容量;根据所述内存的剩余容量申请第二容量的内存,将所述第一容量的内存和所述第二容量的内存作为新增缓存;将所述节点中的脏数据下刷到所述新增缓存中。优选的,在将所述节点中的脏数据下刷到所述新增缓存中时,还包括:判断所述新增缓存的空间使用率是否大于预设值,若是,则将所述新增缓存中的脏数据下刷到硬盘中。优选的,将所述新增缓存中的脏数据下刷到硬盘中,包括:根据所述新增缓存的空间使用率,控制每次下刷到所述硬盘中的脏数据的个数;其中,所述新增缓存的空间使用率大的脏数据下刷个数大于所述新增缓存的空间使用率小的脏数据下刷个数。优选的,将所述新增缓存中的脏数据下刷到硬盘中,包括:将新增缓存中的多个所述脏数据合并为大块数据,并将所述大块数据下刷到所述硬盘中。优选的,将所述新增缓存中的脏数据下刷到硬盘中,包括:将所述新增缓存中的脏数据连续下刷到硬盘中,直到确定所述新增缓存接收到所述硬盘发送的响应后,根据所述响应包含的错误码对所述新增缓存中的脏数据进行处理;其中,所述硬盘在所述脏数据下刷出现错误时向所述新增缓存发送所述响应。优选的,还包括:当所述节点中的脏数据完成下刷后,将所述新增缓存中的脏数据全部下刷到硬盘中,并释放所述第二容量的内存。一种脏数据下刷装置,包括:第一申请模块,用于在系统初始化时申请第一容量的内存;获取模块,用于当双控节点中的一个节点发生热重启时,获取所述内存的剩余容量;第二申请模块,用于根据所述内存的剩余容量申请第二容量的内存,将所述第一容量的内存和所述第二容量的内存作为新增缓存;下刷模块,用于将所述节点中的脏数据下刷到所述新增缓存中。优选的,还包括:判断模块,用于在将所述节点中的脏数据下刷到所述新增缓存中时,判断所述新增缓存的空间使用率是否大于预设值,若是,则将所述新增缓存中的脏数据下刷到硬盘中。一种脏数据下刷设备,,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述任一项所述的脏数据下刷方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的脏数据下刷方法的步骤。本申请提供了一种脏数据下刷方法、装置、设备及计算机可读存储介质,其中,该方法包括:在系统初始化时申请第一容量的内存;当双控节点中的一个节点发生热重启时,获取内存的剩余容量;根据内容的剩余容量申请第二容量的内存,将第一容量的内存和第二容量的内存作为新增缓存;将节点中的脏数据下刷到新增缓存中。本申请公开的上述技术方案,在系统初始化时先申请第一容量的内存,并在双控节点中的一个节点发生热重启后,根据内存的剩余容量申请第二容量的内存,且将第一容量的内存和第二容量的内存共同作为新增缓存,以将发生热重启的节点的脏数据下刷到新增缓存中,由于内存存储数据的速度及响应的速度均比硬盘要快,因此,相比于将发生热重启的节点中的脏数据下刷到硬盘中,将发生热重启的节点中的脏数据下刷到新增缓存中可以提高脏数据的下刷速率,降低脏数据下刷的持续时间,从而降低用户业务发生中断的可能性,以提高用户业务运行的可靠性,另外,通过系统初始化申请第一容量的内存并在其中一个节点发生热重启后根据内存的剩余容量申请第二容量的内存,以将第一容量的内存和第二容量的内存作为新增缓存的过程不仅可以保证新增缓存有足够大的容量,以提高脏数据下刷速率和效果,而且还可以避免因在系统初始化时申请过多容量的内存而造成资源的浪费并避免对系统中其他模块的运行造成影响。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例提供的一种脏数据下刷方法的流程图;图2为本申请实施例提供的一种脏数据下刷装置的结构示意图;图3为本申请实施例提供的一种脏数据下刷设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参见图1,其示出了本申请实施例提供的一种脏数据下刷方法的流程图,本申请实施例提供的一种脏数据下刷方法,可以包括:S11:在系统初始化时申请第一容量的内存。考虑现有将发生热重启的节点的脏数据下刷到硬盘时会因脏数据中的小块随机IO的存在以及硬盘响应速度慢而导致脏数据下刷速率比较慢,持续时间比较长,从而会增大双控节点中另一节点被执行重启的概率,进而会增加用户业务中断的可能性,为此,本申请提供一种脏数据下刷方法,用于提高热重启节点脏数据的下刷速率,以使得发生热重启的节点可以尽快完成脏数据下刷,并尽快加入集群,且通过缩短脏数据下刷时间来降低另一节点被执行重启的概率,从而降低用户业务中断发生的可能性。具体地,可以在系统初始化时先申请第一容量的内存,其中,第一容量的大小根据系统总内存以及系统中其他模块对内存的需求而进行设置,且第一容量的大小可以是固定不变的,也即可以先使内存满足其他模块的需求,然后,再在此基础上申请第一容量的内存,本文档来自技高网...

【技术保护点】
1.一种脏数据下刷方法,其特征在于,包括:/n在系统初始化时申请第一容量的内存;/n当双控节点中的一个节点发生热重启时,获取所述内存的剩余容量;/n根据所述内存的剩余容量申请第二容量的内存,将所述第一容量的内存和所述第二容量的内存作为新增缓存;/n将所述节点中的脏数据下刷到所述新增缓存中。/n

【技术特征摘要】
1.一种脏数据下刷方法,其特征在于,包括:
在系统初始化时申请第一容量的内存;
当双控节点中的一个节点发生热重启时,获取所述内存的剩余容量;
根据所述内存的剩余容量申请第二容量的内存,将所述第一容量的内存和所述第二容量的内存作为新增缓存;
将所述节点中的脏数据下刷到所述新增缓存中。


2.根据权利要求1所述的脏数据下刷方法,其特征在于,在将所述节点中的脏数据下刷到所述新增缓存中时,还包括:
判断所述新增缓存的空间使用率是否大于预设值,若是,则将所述新增缓存中的脏数据下刷到硬盘中。


3.根据权利要求2所述的脏数据下刷方法,其特征在于,将所述新增缓存中的脏数据下刷到硬盘中,包括:
根据所述新增缓存的空间使用率,控制每次下刷到所述硬盘中的脏数据的个数;其中,所述新增缓存的空间使用率大的脏数据下刷个数大于所述新增缓存的空间使用率小的脏数据下刷个数。


4.根据权利要求2或3所述的脏数据下刷方法,其特征在于,将所述新增缓存中的脏数据下刷到硬盘中,包括:
将新增缓存中的多个所述脏数据合并为大块数据,并将所述大块数据下刷到所述硬盘中。


5.根据权利要求2或3所述的脏数据下刷方法,其特征在于,将所述新增缓存中的脏数据下刷到硬盘中,包括:
将所述新增缓存中的脏数据连续下刷到硬盘中,直到确定所述新增缓存接收到所述硬盘发送的响应后,根据所述响应包含的错误码对所述新增缓存中...

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

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

1