一种缓存分区的管理方法、系统、设备及存储介质

文档序号:1888621 发布日期:2021-11-26 浏览:3次 >En<

阅读说明:本技术 一种缓存分区的管理方法、系统、设备及存储介质 (Management method, system, equipment and storage medium for cache partition ) 是由 侯红生 刘文志 于 2021-07-16 设计创作,主要内容包括:本申请公开了一种缓存分区的管理方法,包括:接收集群发送的事件通知;在接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息之后,按照上一次事件通知进行缓存分区的节点信息的更新,并且向业务端发送对应于本次事件通知的任务;在接收到业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,按照本次事件通知进行缓存分区的节点信息的更新。应用本申请的方案,可以避免出现缓存分区的节点信息异常的情况。本申请还公开了一种缓存分区的管理系统,设备及存储介质,具有相应技术效果。(The application discloses a management method of a cache partition, which comprises the following steps: receiving an event notification sent by a cluster; after receiving information which is fed back by the service end and represents that the task corresponding to the last event notification is executed, updating node information of the cache partition according to the last event notification, and sending the task corresponding to the current event notification to the service end; and after receiving information which is fed back by the service end and represents that the task corresponding to the current event notification is executed, updating the node information of the cache partition according to the current event notification. By applying the scheme of the application, the condition that the node information of the cache partition is abnormal can be avoided. The application also discloses a management system, equipment and a storage medium of the cache partition, and the management system, the equipment and the storage medium have corresponding technical effects.)

一种缓存分区的管理方法、系统、设备及存储介质

技术领域

本发明涉及存储技术领域,特别是涉及一种缓存分区的管理方法、系统、设备及存储介质。

背景技术

随着目前对于存储的要求越来越高,多节点构成的高性能集群得到了越来越广泛的应用。

在实际应用中,特别在单分区模式下,有时会出现缓存分区的节点信息异常的情况,例如本应只在一个节点上存在的缓存分区,会在一个IO组的两个节点上都存在,进而使得在删除缓存分区的时候,只删除了一个节点上的缓存分区,另一个节点上的缓存分区依然存在,从而导致业务配置出现问题。并且,这样的情况大部分是出现在集群的T2故障恢复过程中。T2故障指的是一个IO组中的各个节点均因为故障同时退出了集群,而T2故障的恢复指的是在恢复的过程中,该IO组的各个节点又同时加入了集群。

综上所述,如何有效地避免缓存分区的节点信息异常,是目前本领域技术人员急需解决的技术问题。

发明内容

本发明的目的是提供一种缓存分区的管理方法、系统、设备及存储介质,以有效地避免缓存分区的节点信息异常。

为解决上述技术问题,本发明提供如下技术方案:

一种缓存分区的管理方法,包括:

接收集群发送的事件通知;

在接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息之后,按照上一次事件通知进行缓存分区的节点信息的更新,并且向业务端发送对应于本次事件通知的任务;

在接收到所述业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,按照本次事件通知进行缓存分区的节点信息的更新。

优选的,所述接收集群发送的事件通知,包括:

接收集群发送的事件通知并置入预设的通知队列中;

相应的,在按照本次事件通知进行缓存分区的节点信息的更新之后,还包括:

删除所述通知队列中的本次事件通知。

优选的,当接收的所述事件通知为表示第一节点故障的事件通知时,所述向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以利用存活节点接管所述第一节点的缓存分区;

当接收的所述事件通知为表示第一节点故障恢复的事件通知时,所述向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以将所述第一节点的被接管的缓存分区恢复给所述第一节点。

优选的,所述集群的缓存分区为单分区模式。

优选的,还包括:

在接收到表示第一节点故障的事件通知之后的第一时长内,接收到了表示所述第一节点故障恢复的事件通知时,进行信息记录。

一种缓存分区的管理系统,包括:

事件通知接收单元,用于接收集群发送的事件通知;

执行单元,用于在接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息之后,按照上一次事件通知进行缓存分区的节点信息的更新,并且向业务端发送对应于本次事件通知的任务;在接收到所述业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,按照本次事件通知进行缓存分区的节点信息的更新。

优选的,所述事件通知接收单元,具体用于:

接收集群发送的事件通知并置入预设的通知队列中;

相应的,还包括:

还包括:队列更新单元,用于在所述执行单元按照本次事件通知进行缓存分区的节点信息的更新之后,删除所述通知队列中的本次事件通知。

优选的,当接收的所述事件通知为表示第一节点故障的事件通知时,所述执行单元向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以利用存活节点接管所述第一节点的缓存分区;

当接收的所述事件通知为表示第一节点故障恢复的事件通知时,所述执行单元向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以将所述第一节点的被接管的缓存分区恢复给所述第一节点。

一种缓存分区的管理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现上述任一项所述的缓存分区的管理方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的缓存分区的管理方法的步骤。

申请人考虑到,在传统的T2故障的恢复流程中,缓存分区模块会依赖于集群发出的事件通知,立即进行自身业务配置的恢复。而在T2故障的恢复流程中,有时候会出现某个节点因为热重启等原因再次发生故障,并且在很短的时间内又再次恢复并加入集群的情况。在这种特殊场景下,当缓存分区为单分区模式时,某个节点因为热重启等原因再次发生故障之后,缓存分区模块会按照当前的节点信息,执行该故障节点的缓存分区的接管流程,而在此接管流程正在执行的过程中,由于该故障节点又恢复了,且重新加入了集群,并且时间间隔很短,集群便会将该节点加入集群的事件通知到缓存分区模块,并进行缓存分区节点信息的更新。此时,缓存分区模块便会按照新的节点信息,在该恢复的节点上进行缓存分区的创建,但是由于该节点故障并且重新加入集群的时间间隔很短,使得之前的节点故障接管流程未正确执行完毕,也就使得可能出现在两个节点上都创建出了缓存分区的情况发生。

本申请的方案中,并不会在接收到集群发送的事件通知之后,立即进行缓存分区的节点信息的更新并执行新的任务。而是在接收到集群发送的事件通知之后,如果接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息,说明对应于上一次事件通知的任务执行完毕,才会按照上一次事件通知进行缓存分区的节点信息的更新,进而可以向业务端发送对应于本次事件通知的任务。在接收到业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,说明对应于本次事件通知的任务执行完毕,才会按照本次事件通知进行缓存分区的节点信息的更新。可以看出,本申请并不是在接收到集群发送的事件通知立即进行缓存分区的节点信息的更新,而是在每一次的集群发送的事件通知对应的任务被执行完毕时,才会进行缓存分区的节点信息的更新,也就不会出现传统的方案中的缓存分区的节点信息异常的情况。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明中一种缓存分区的管理方法的实施流程图;

图2为本发明中一种缓存分区的管理系统的结构示意图。

具体实施方式

本发明的核心是提供一种缓存分区的管理方法,可以避免出现缓存分区的节点信息异常的情况。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明中一种缓存分区的管理方法的实施流程图,该缓存分区的管理方法可以包括以下步骤:

步骤S101:接收集群发送的事件通知。

具体的,集群会将节点加入,节点退出等信息,以事件通知的形式进行发送,而partition模块,即缓存分区模块便可以接收到集群发送的事件通知。由于SSD(SolidState Disk,固态硬盘)的广泛应用,本申请的缓存分区通常可以具体为SSD缓存分区。

步骤S102:在接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息之后,按照上一次事件通知进行缓存分区的节点信息的更新,并且向业务端发送对应于本次事件通知的任务。

本申请并不会在接收到集群发送的事件通知之后,立即按照接收的事件通知进行节点信息的更新。这是因为,申请人考虑到,在传统的T2故障的恢复流程中,缓存分区模块会依赖于集群发出的事件通知,立即进行自身业务配置的恢复。而在T2故障的恢复流程中,有时候会出现某个节点因为热重启等原因再次发生故障,并且在很短的时间内又再次恢复并加入集群的情况。在这种特殊场景下,当缓存分区为单分区模式时,某个节点因为热重启等原因再次发生故障之后,缓存分区模块会按照当前的节点信息,执行该故障节点的缓存分区的接管流程,而在此接管流程正在执行的过程中,由于该故障节点又恢复了,且重新加入了集群,并且时间间隔很短,集群便会将该节点加入集群的事件通知到缓存分区模块,并进行缓存分区节点信息的更新。此时,缓存分区模块便会按照新的节点信息,在该恢复的节点上进行缓存分区的创建,但是由于该节点故障并且重新加入集群的时间间隔很短,使得之前的节点故障接管流程未正确执行完毕,也就使得可能出现在两个节点上都创建出了缓存分区的情况发生。

并且,申请人由上述分析发现,出现缓存分区异常时,需要有节点出现故障且短时间内恢复正常,这样才会出现前文中描述的前一个故障接管流程未正确执行完毕,节点信息已经被集群新发出的事件通知更新的情况。而之所以缓存分区的节点信息异常,主要出现在T2故障的恢复流程中,是因为在T2故障的恢复流程中,节点由于热重启等原因退出集群又在很短的时间加入集群的情况发生的频率较高,即其他情况下,节点退出集群又很快恢复的情况发生的很少。因此可以看出,应用了本申请的方案之后,不仅仅是对于T2故障的恢复流程可以避免缓存分区的节点信息异常的情况发生,针对其他情况导致的节点出现故障且短时间内恢复正常,采用本申请的方案,也可以有效地避免缓存分区的节点信息异常的情况发生,T2故障的恢复流程是作为本申请的一个典型的应用场景。

本申请在接收集群发送的事件通知之后,如果接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息,说明对应于上一次事件通知的任务已经被正确执行完毕,因此,本申请会按照上一次事件通知进行缓存分区的节点信息的更新。可以看出,对于上一次事件通知,从接收的时刻开始,至少需要将其保留至与其对应的任务被正确执行完毕,才会据其进行缓存分区的节点信息的更新。而为了按照本申请的要求进行事件通知的保留,具体采用的手段可以有多种,只要能够实现本申请的目的即可,例如后文的一种实施方式中通过队列的方式进行事件通知的放置,又如一种场合中将各个事件通知保存至预设的存储空间中,存满后再清理即可。

按照上一次事件通知进行缓存分区的节点信息的更新之后,本申请才会向业务端发送对应于本次事件通知的任务。业务端通常可以称为agent,可以进行任务的执行。

步骤S103:在接收到业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,按照本次事件通知进行缓存分区的节点信息的更新。

向业务端发送对应于本次事件通知的任务之后,业务端便会进行该任务的执行,在执行过程中,无论缓存分区模块是否接收到新的事件通知,均是需要接收到业务端反馈的表示对应于本次事件通知的任务执行完毕的信息,才说明对应于本次事件通知的任务被正确执行完毕,本申请才会按照本次事件通知进行缓存分区的节点信息的更新,避免出现节点信息错误的情况。

在本发明的一种具体实施方式中,步骤S101可以具体包括:

接收集群发送的事件通知并置入预设的通知队列中;

相应的,在步骤S103中描述的按照本次事件通知进行缓存分区的节点信息的更新之后,还可以包括:

删除通知队列中的本次事件通知。

如上文的描述,在接收到集群发送的事件通知之后,本申请不会立即按照该事件通知进行缓存分区的节点信息的更新,而是需要等到对应于本次事件通知的任务被执行完毕,才会按照该事件通知进行缓存分区的节点信息的更新,即至少需要将该事件通知保留至与其对应的任务被正确执行完毕,在此过程中,可能不断地会有新的事件通知被发送到缓存分区模块,为了实现本申请的目的,该种实施方式中,通过队列的方式实现,操作简单方便。即,在接收集群发送的事件通知之后,将其置入预设的通知队列即可。并且可以理解的是,新接收的事件通知可以放置在队列尾,队列首则表示当前正在执行的任务所对应的事件通知。

由于该种实施方式是利用预设的通知队列进行各个事件通知的排序,因此,在按照本次事件通知进行缓存分区的节点信息的更新之后,本次事件通知便不再需要保留,因此可以删除通知队列中的本次事件通知。

在本发明的一种具体实施方式中,当接收的事件通知为表示第一节点故障的事件通知时,步骤S102中描述的向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以利用存活节点接管第一节点的缓存分区;

当接收的事件通知为表示第一节点故障恢复的事件通知时,步骤S102中描述的向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以将第一节点的被接管的缓存分区恢复给第一节点。

节点故障和节点恢复是较为常见的事件通知的内容,该种实施方式中,当接收的事件通知为表示第一节点故障的事件通知时,可以向业务端发送对应于本次事件通知的任务,以利用存活节点接管第一节点的缓存分区。第一节点可以具备1个或者多个缓存分区,可以由1个或者多个存活节点实现这些缓存分区的接管,具体的接管规则可以根据实际需要进行设定,本申请不对此展开说明。

当接收的事件通知为表示第一节点故障恢复的事件通知时,说明第一节点恢复正常,便可以向业务端发送对应于本次事件通知的任务,从而将第一节点的被接管的缓存分区恢复给第一节点。第一节点可以是集群中的任意节点。

如上文的描述,在传统方案中,主要是在单分区模式下出现缓存分区的节点信息异常,因此,本申请的集群的缓存分区可以选取为单分区模式。但是需要说明的是,其他分区模式虽然不容易出现缓存分区的节点信息异常的情况,但是依旧可以采用本申请的方案,并不影响本申请的实施。

在本发明的一种具体实施方式中,还可以包括:

在接收到表示第一节点故障的事件通知之后的第一时长内,接收到了表示第一节点故障恢复的事件通知时,进行信息记录。

如果在接收到表示第一节点故障的事件通知之后的第一时长内,又接收到了表示第一节点故障恢复的事件通知,该种实施方式会进行信息记录,例如记录下第一节点的编号,该异常情况发生的日期等信息,有利于工作人员对这种特殊情况进行统计以及处理,即该种实施方式有利提高运维的方便性。

应用本发明实施例所提供的技术方案,并不会在接收到集群发送的事件通知之后,立即进行缓存分区的节点信息的更新并执行新的任务。而是在接收到集群发送的事件通知之后,如果接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息,说明对应于上一次事件通知的任务执行完毕,才会按照上一次事件通知进行缓存分区的节点信息的更新,进而可以向业务端发送对应于本次事件通知的任务。在接收到业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,说明对应于本次事件通知的任务执行完毕,才会按照本次事件通知进行缓存分区的节点信息的更新。可以看出,本申请并不是在接收到集群发送的事件通知立即进行缓存分区的节点信息的更新,而是在每一次的集群发送的事件通知对应的任务被执行完毕时,才会进行缓存分区的节点信息的更新,也就不会出现传统的方案中的缓存分区的节点信息异常的情况。

相应于上面的方法实施例,本发明实施例还提供了一种缓存分区的管理系统,可与上文相互对应参照。

参见图2所示,为本发明中一种缓存分区的管理系统的结构示意图,包括:

事件通知接收单元201,用于接收集群发送的事件通知;

执行单元202,用于在接收到业务端反馈的表示对应于上一次事件通知的任务执行完毕的信息之后,按照上一次事件通知进行缓存分区的节点信息的更新,并且向业务端发送对应于本次事件通知的任务;在接收到业务端反馈的表示对应于本次事件通知的任务执行完毕的信息之后,按照本次事件通知进行缓存分区的节点信息的更新。

在本发明的一种具体实施方式中,事件通知接收单元201,具体用于:

接收集群发送的事件通知并置入预设的通知队列中;

相应的,还包括:

还包括:队列更新单元,用于在执行单元按照本次事件通知进行缓存分区的节点信息的更新之后,删除通知队列中的本次事件通知。

在本发明的一种具体实施方式中,当接收的事件通知为表示第一节点故障的事件通知时,执行单元202向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以利用存活节点接管第一节点的缓存分区;

当接收的事件通知为表示第一节点故障恢复的事件通知时,执行单元202向业务端发送对应于本次事件通知的任务,包括:

向业务端发送对应于本次事件通知的任务,以将第一节点的被接管的缓存分区恢复给第一节点。

在本发明的一种具体实施方式中,集群的缓存分区为单分区模式。

在本发明的一种具体实施方式中,还包括:

信息记录单元,用于在接收到表示第一节点故障的事件通知之后的第一时长内,接收到了表示第一节点故障恢复的事件通知时,进行信息记录。

相应于上面的方法和系统实施例,本发明实施例还提供了一种缓存分区的管理设备以及一种计算机可读存储介质,可与上文相互对应参照。该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例中的缓存分区的管理方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

该缓存分区的管理设备可以包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序以实现上述任一项实施例中的缓存分区的管理方法的步骤。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种磨损均衡控制方法、装置、设备及可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类