一种链表实现方法、装置、设备及可读存储介质制造方法及图纸

技术编号:21571630 阅读:18 留言:0更新日期:2019-07-10 15:26
本发明专利技术公开了一种链表实现方法,包括:获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;记录每个链表中的首节点存储的虚拟盘索引值,获得第一数组;根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,获得第二数组;将第一数组和第二数组确定为当前存储系统中的链表。该方法用第一数组和第二数组代替了存储系统中的链表结构,从而简化了链表结构,提高了存储系统的性能,还为链表维护操作提供了便利。相应地,本发明专利技术公开的一种链表实现装置、设备及可读存储介质,也同样具有上述技术效果。

A Link List Implementation Method, Device, Equipment and Readable Storage Media

【技术实现步骤摘要】
一种链表实现方法、装置、设备及可读存储介质
本专利技术涉及数据存储
,更具体地说,涉及一种链表实现方法、装置、设备及可读存储介质。
技术介绍
链表是存储系统中的缓存模块在存储数据时所使用的主要数据结构之一。在存储系统中,一般存在多条链表,每个链表包括多个节点;当想要查找某个节点时,需要首先确定要查找的节点所属的链表,并从该条链表的首节点开始,按照next指针一个接一个地查找,直至查找到要查找的节点。也就是说,存储系统中的链表一般为单向链表。存储系统中的虚拟盘的数量较多,且每个虚拟盘需要对应不同的链表,而链表的个数又有限,因此每个链表包括的节点个数一般比较多。所以传统的链表实现方式不利于链表的修改、删除和查找等维护操作,因为每次都需要从一个链表的首节点开始遍历查找。如此不仅会占用大量的内存,还使链表很难维护,并且,对指针进行操作时很容易出错,因此会降低存储系统的性能。其中,每个节点中存储的是虚拟盘索引值,因此每个节点对应一个虚拟盘,且每条链表中的节点对应的虚拟盘一般不同。虚拟盘是对物理磁盘的软件抽象。因此,如何在存储系统中实现便于维护的链表结构,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种链表实现方法、装置、设备及可读存储介质,以在存储系统中实现便于维护的链表结构。为实现上述目的,本专利技术实施例提供了如下技术方案:一种链表实现方法,包括:获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;记录每个链表中的首节点存储的虚拟盘索引值,获得第一数组;根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,获得第二数组;将所述第一数组和所述第二数组确定为当前存储系统中的链表。其中,所述根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,包括:从每个链表的首节点开始,将当前节点的下一个节点存储的虚拟盘索引值作为所述参考值,并计算当前节点存储的虚拟盘索引值与所述参考值的差值,将所述差值作为当前节点对应的偏移量;将每个链表的尾节点对应的偏移量确定为当前尾节点存储的虚拟盘索引值与预设的目标值的差值。其中,所述根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,包括:将每个链表的首节点对应的偏移量确定为当前首节点存储的虚拟盘索引值与预设的目标值的差值;从每个链表的第二个节点开始,将当前节点的上一个节点存储的虚拟盘索引值作为所述参考值,并计算当前节点存储的虚拟盘索引值与所述参考值的差值,将所述差值作为当前节点对应的偏移量。其中,所述根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,包括:将每个链表的首节点对应的偏移量确定为当前首节点存储的虚拟盘索引值与预设的目标值的差值;从每个链表的第二个节点开始,将每个链表的首节点存储的虚拟盘索引值作为当前链表的参考值,并计算当前节点存储的虚拟盘索引值与当前链表的参考值的差值,并将所述差值作为当前节点对应的偏移量。其中,所述将所述第一数组和所述第二数组作为当前存储系统中的链表之前,还包括:将每个链表中的尾节点存储的虚拟盘索引值记录至所述第一数组。其中,所述将每个链表中的尾节点存储的虚拟盘索引值记录至所述第一数组之后,还包括:将每个链表包括的节点数量记录至所述第二数组。一种链表实现装置,包括:获取模块,用于获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;记录模块,用于记录每个链表中的首节点存储的虚拟盘索引值,获得第一数组;计算模块,用于根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,获得第二数组;确定模块,用于将所述第一数组和所述第二数组确定为当前存储系统中的链表。其中,所述计算模块具体用于:从每个链表的首节点开始,将当前节点的下一个节点存储的虚拟盘索引值作为所述参考值,并计算当前节点存储的虚拟盘索引值与所述参考值的差值,将所述差值作为当前节点对应的偏移量;将每个链表的尾节点对应的偏移量确定为当前尾节点存储的虚拟盘索引值与预设的目标值的差值。一种链表实现设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述任意一项所述的链表实现方法的步骤。一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的链表实现方法的步骤。通过以上方案可知,本专利技术实施例提供的一种链表实现方法,包括:获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;记录每个链表中的首节点存储的虚拟盘索引值,获得第一数组;根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,获得第二数组;将所述第一数组和所述第二数组确定为当前存储系统中的链表。可见,所述方法基于第一数组和第二数组实现了链表结构,其中,第一数组用于记录每个链表中的首节点存储的虚拟盘索引值;第二数组用于记录所有节点对应的偏移量。如此将存储系统中的链表结构用两个数组代替,不仅简化了链表结构,还便于对链表进行维护。例如:当需要查找节点A存储的虚拟盘索引值时,可以直接在第二数组中查找节点A对应的偏移量,并基于偏移量的计算方式进行逆运算,便可获得节点A存储的虚拟盘索引值;如此便省略了指针遍历过程,从而提高了查找效率。同时,第一数组和第二数组实现的链表结构不会大量占用系统内存,能够提高存储系统的性能。相应地,本专利技术实施例提供的一种链表实现装置、设备及可读存储介质,也同样具有上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种链表实现方法流程图;图2为本专利技术实施例公开的一种nodes数组示意图;图3为本专利技术实施例公开的一种链表实现装置示意图;图4为本专利技术实施例公开的一种链表实现设备示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种链表实现方法、装置、设备及可读存储介质,以在存储系统中实现便于维护的链表结构。参见图1,本专利技术实施例提供的一种链表实现方法,包括:S101、获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;例如:若当前存储系统中待实现的链表数量为3,分别用A、B、C表示,且每个链表包括2个节点,则有:链表A包括:节点A1,其中存储的虚拟盘索引值为5;节点A2,其中存储的虚拟盘索引值为8;链表B包括:节点B1,其中存储的虚拟盘索引值为10;节本文档来自技高网...

【技术保护点】
1.一种链表实现方法,其特征在于,包括:获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;记录每个链表中的首节点存储的虚拟盘索引值,获得第一数组;根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,获得第二数组;将所述第一数组和所述第二数组确定为当前存储系统中的链表。

【技术特征摘要】
1.一种链表实现方法,其特征在于,包括:获取当前存储系统中待实现的链表数量,每个链表包括的节点数量,以及每个链表中各个节点存储的虚拟盘索引值;记录每个链表中的首节点存储的虚拟盘索引值,获得第一数组;根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,获得第二数组;将所述第一数组和所述第二数组确定为当前存储系统中的链表。2.根据权利要求1所述的链表实现方法,其特征在于,所述根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,包括:从每个链表的首节点开始,将当前节点的下一个节点存储的虚拟盘索引值作为所述参考值,并计算当前节点存储的虚拟盘索引值与所述参考值的差值,将所述差值作为当前节点对应的偏移量;将每个链表的尾节点对应的偏移量确定为当前尾节点存储的虚拟盘索引值与预设的目标值的差值。3.根据权利要求1所述的链表实现方法,其特征在于,所述根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,包括:将每个链表的首节点对应的偏移量确定为当前首节点存储的虚拟盘索引值与预设的目标值的差值;从每个链表的第二个节点开始,将当前节点的上一个节点存储的虚拟盘索引值作为所述参考值,并计算当前节点存储的虚拟盘索引值与所述参考值的差值,将所述差值作为当前节点对应的偏移量。4.根据权利要求1所述的链表实现方法,其特征在于,所述根据预设的参考值和每个链表中各个节点存储的虚拟盘索引值计算每个链表中各个节点对应的偏移量,包括:将每个链表的首节点对应的偏移量确定为当前首节点存储的虚拟盘索引值与预设的目标值的差值;从每个链表的第二个节点开始,将每个链表的首节点存储的虚拟盘索引值作为当前链表的参考值,并计...

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

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

1