一种存储系统的多核心线程迁移方法、系统及相关组件与流程

文档序号:21260781发布日期:2020-06-26 22:25阅读:154来源:国知局
一种存储系统的多核心线程迁移方法、系统及相关组件与流程

本发明涉及存储系统管理领域,特别涉及一种存储系统的多核心线程迁移方法、系统及相关组件。



背景技术:

在大数据、云计算的潮流下,数据存储的重要性日益凸显。目前来看,全闪产品是存储系统发展的必然趋势。随着ssd(solidstatedisk,固态硬盘)技术的飞速发展,ssd的性能飙升,底层闪存带宽越来越宽,介质访问延时越来越低,系统性能瓶颈已经由硬件转移到上层软件。如何利用有限的cpu资源最大限度的发挥存储性能成为各厂商争相研究的课题之一。具体的,存储系统中各模块之间使用队列进行io处理,如何能够实现队列的自由扩展和线程的自由扩展,这是本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种存储系统的多核心线程迁移方法、系统、装置及可读存储介质,以便实现存储系统中队列和线程的自由扩展。

其具体方案如下:

一种存储系统的多核心线程迁移方法,应用于io处理模块,所述多核心线程迁移方法包括:

获取线程切换请求;

标记所述线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程;

创建新的io队列,并在所述线程切换请求对应的目标cpu核心创建新的io处理线程。

优选的,所述标记所述线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程的过程,具体包括:

标记所述线程切换请求对应的io处理线程及io队列,以提示上层模块该io队列不可用;

等待所述上层模块处理完该io队列的所有流程后,将该io队列置位为不可用;

等待该io处理线程处理完该io队列的所有数据后,销毁该io队列并注销该io处理线程。

优选的,所述标记所述线程切换请求对应的io处理线程及io队列的过程,具体包括:

通过线程管理单元,标记所述线程切换请求对应的io处理线程及io队列。

优选的,所述等待该io处理线程处理完该io队列的所有数据后,销毁该io队列并注销该io处理线程的过程,具体包括:

等待该io处理线程处理完该io队列的所有数据后,通过该io处理线程销毁该io队列并注销该io处理线程。

优选的,所述获取线程切换请求的过程,具体包括:

获取资源管理模块的线程切换请求。

优选的,所述线程切换请求包括所述目标cpu核心。

相应的,本申请公开了一种存储系统的多核心线程迁移系统,应用于io处理模块,包括:

获取单元,用于获取线程切换请求;

销毁单元,用于标记所述线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程;

创建单元,用于创建新的io队列,并在所述线程切换请求对应的目标cpu核心创建新的io处理线程。

相应的,本发明公开了一种存储系统的多核心线程迁移装置,包括:

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

处理器,用于执行所述计算机程序时实现如上文任一项所述存储系统的多核心线程迁移方法的步骤。

相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述存储系统的多核心线程迁移方法的步骤。

本申请公开了一种存储系统的多核心线程迁移方法,应用于io处理模块,所述多核心线程迁移方法包括:获取线程切换请求;标记所述线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程;创建新的io队列,并在所述线程切换请求对应的目标cpu核心创建新的io处理线程。本申请通过标记线程切换请求、在原核心中销毁对应的io队列和io处理线程、并在目标cpu核心重新创建io队列和io处理线程,实现了线程在多核心之间的快速切换,从而实现了队列的自由扩展和线程的自由扩展,实现多cpu核心之间的负载均衡,提高存储系统中有限的cpu资源的利用率。

附图说明

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

图1为本发明实施例中一种存储系统的多核心线程迁移方法的步骤流程图;

图2为本发明实施例中具体的多核心线程迁移方法的子步骤流程图;

图3为本发明实施例中一种存储系统的管理示意分布图;

图4位本发明实施例中一种存储系统的多核心线程迁移系统的结构分布图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

随着ssd技术的飞速发展,ssd的性能飙升,底层闪存带宽越来越宽,介质访问延时越来越低,系统性能瓶颈已经由硬件转移到上层软件。本申请实现了线程在多核心之间的快速切换,从而实现了队列的自由扩展和线程的自由扩展,实现多cpu核心之间的负载均衡,提高存储系统中有限的cpu资源的利用率。

本发明实施例公开了一种存储系统的多核心线程迁移方法,应用于io处理模块,参见图1所示,多核心线程迁移方法包括:

s1:获取线程切换请求;

具体的,该步骤通常通过资源管理模块实现,也即步骤s1具体为:

获取资源管理模块的线程切换请求。

其中,线程切换请求包括目标cpu核心和待切换线程的id。当然,线程切换请求中包括与线程切换相关的信息,除了目标cpu核心的地址信息与待切换线程的id外,还可以通过其他形式的信息来体现线程切换的关键对象和目标位置。而这里的目标cpu核心,既可以是与原核处于同一处理器的不同cpu核心,也可以是处于不同处理器中的cpu核心。

s2:标记线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程;

进一步的,步骤s2中标记线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程的过程,参见图2所示,具体包括:

s21:标记线程切换请求对应的io处理线程及io队列,以提示上层模块该io队列不可用;

s22:等待上层模块处理完该io队列的所有流程后,将该io队列置位为不可用;

s23:等待该io处理线程处理完该io队列的所有数据后,销毁该io队列并注销该io处理线程。

具体的,步骤s21标记线程切换请求对应的io处理线程及io队列的过程,具体包括:

通过线程管理单元,标记线程切换请求对应的io处理线程及io队列。

其中,步骤s23等待该io处理线程处理完该io队列的所有数据后,销毁该io队列并注销该io处理线程的过程,具体包括:

等待该io处理线程处理完该io队列的所有数据后,通过该io处理线程销毁该io队列并注销该io处理线程。

可以理解的是,步骤s2主要由io处理模块中的线程管理单元完成,如图3所示的存储系统的管理示意分布图,线程管理单元对应每个cpu核。

s3:创建新的io队列,并在线程切换请求对应的目标cpu核心创建新的io处理线程。

可以理解的是,本实施例中的io队列和io处理线程一一对应,利用线程管理单元设置独立的有效性标记,也即标记io处理线程和io队列,通过对每个有效性标记置位,即可了解io队列或io处理线程的是否有效可用,是否需要在线程处理结束后注销。

本申请通过标记线程切换请求、在原核心中销毁对应的io队列和io处理线程、并在目标cpu核心重新创建io队列和io处理线程,实现了线程在多核心之间的快速切换,从而实现了队列的自由扩展和线程的自由扩展,实现多cpu核心之间的负载均衡,提高存储系统中有限的cpu资源的利用率。

相应的,本申请实施例公开了一种存储系统的多核心线程迁移系统,应用于io处理模块,参见图4所示,包括:

获取单元1,用于获取线程切换请求;

销毁单元2,用于标记线程切换请求对应的io处理线程及io队列,以销毁该io队列并注销该io处理线程;

创建单元3,用于创建新的io队列,并在线程切换请求对应的目标cpu核心创建新的io处理线程。

在一些具体的实施例中,销毁单元2具体用于:

标记线程切换请求对应的io处理线程及io队列,以提示上层模块该io队列不可用;

等待上层模块处理完该io队列的所有流程后,将该io队列置位为不可用;

等待该io处理线程处理完该io队列的所有数据后,销毁该io队列并注销该io处理线程。

在一些具体的实施例中,销毁单元2执行标记线程切换请求对应的io处理线程及io队列的过程,具体包括:

通过线程管理单元,标记线程切换请求对应的io处理线程及io队列。

在一些具体的实施例中,销毁单元2执行等待该io处理线程处理完该io队列的所有数据后,销毁该io队列并注销该io处理线程的过程,具体包括:

等待该io处理线程处理完该io队列的所有数据后,通过该io处理线程销毁该io队列并注销该io处理线程。

在一些具体的实施例中,获取单元1具体用于:

获取资源管理模块的线程切换请求。

在一些具体的实施例中,线程切换请求包括目标cpu核心。

本申请通过标记线程切换请求、在原核心中销毁对应的io队列和io处理线程、并在目标cpu核心重新创建io队列和io处理线程,实现了线程在多核心之间的快速切换,从而实现了队列的自由扩展和线程的自由扩展,实现多cpu核心之间的负载均衡,提高存储系统中有限的cpu资源的利用率。

相应的,本发明实施例公开了一种存储系统的多核心线程迁移装置,包括:

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

处理器,用于执行所述计算机程序时实现如上文任一项所述存储系统的多核心线程迁移方法的步骤。

其中,所述存储系统的多核心线程迁移方法的内容可以参照上文实施例中相关描述,此处不再赘述。

其中,本实施例具有与上文实施例中存储系统的多核心线程迁移方法相同的有益效果,此处不再赘述。

相应的,本发明实施例公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述存储系统的多核心线程迁移方法的步骤。

其中,所述存储系统的多核心线程迁移方法的内容可以参照上文实施例中相关描述,此处不再赘述。

其中,本实施例具有与上文实施例中存储系统的多核心线程迁移方法相同的有益效果,此处不再赘述。

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

以上对本发明所提供的一种存储系统的多核心线程迁移方法、系统、装置及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1