路由路径规划方法、系统及可读存储介质与流程

文档序号:18463273发布日期:2019-08-17 02:13阅读:284来源:国知局
路由路径规划方法、系统及可读存储介质与流程

本发明涉及计算机信息存储技术领域,特别是涉及一种路由路径规划方法、系统及可读存储介质。



背景技术:

重复数据删除技术通过对数据分块、计算指纹,不保存相同指纹的数据块以达到减少数据存储数量,降低应用成本的目的。集群重复数据删除技术用于在集群环境下对数据进行重复数据删除。在集群重复数据删除技术中,决定集群性能的是集群路由算法,目前常用的集群路由算法包括有状态路由算法和无状态路由算法。

其中,有状态路由算法根据已有数据块的位置信息决定数据块的路由节点,主节点需要与集群中的所有节点或者部分节点进行通信,以确定数据块的位置信息,再通过各种加权操作决定如何路由。有状态路由算法的优点是有较高的去重率和吞吐量,缺点是系统的通信开销和计算开销较大。无状态路由算法不需要其他数据块的位置信息,由主节点使用较为简单的哈希算法直接决定路由节点,这种算法通常不需要与其他节点通信,其通信和计算开销较小,但是无状态路由算法的去重率较低,无状态路由算法无法良好的适应集群节点动态变化。

然而,上述集群路由算法在删除重复数据过程中,重点以提高去重率和吞吐量、减少系统开销和磁盘瓶颈等,并没有将系统能耗考虑在内。无状态路由算法的通信和计算能耗较低,但是去重率也相对较低;有状态路由算法的通信和计算能耗较高,其去重率也相对较高,因此,如何平衡系统能耗与相关性能的关系是当前路由需要考虑的问题。



技术实现要素:

为了解决上述问题,本发明的目的是提供一种能够解决现有的路由系统无法平衡系统能耗与去重率问题的路由路径规划方法、系统及可读存储介质。

根据本发明提供的路由路径规划方法,包括:

对数据流进行分块计算后得到各数据块的数据块指纹;

将所述数据块进行合并分组,得到相应的数据块包;

在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点。

根据本发明提供的路由路径规划方法,首先对数据流进行分块计算后得到各数据块的数据块指纹,由于该数据块指纹为该数据块的唯一标识,以便于对数据流中的各数据块进行精确查找;通过将所述数据块进行合并分组,得到相应的数据块包,从而提高数据流中所述数据块的的传输效率;通过在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点,由于任意一组的节点数量大于该组备选路由节点的数量,从而可以降低系统能耗。由于本发明能够将新数据块持续路由到相同节点,以提高系统数据去重率,且通过减少去重后的数据块所占的容器数量来减少系统能耗,解决现有的路由系统无法平衡系统能耗与去重率的问题,提高了用户路由体验的满意度。

另外,根据本发明上述的路由路径规划方法,还可以具有如下附加的技术特征:

进一步地,所述对数据流进行分块计算后得到各数据块的数据块指纹的步骤之前,所述方法还包括:

获取集群中各个节点的剩余存储空间的大小,根据预设的等级划分规则对各节点进行相应的等级划分,以得到各节点的路由等级。

进一步地,所述将所述数据块进行合并分组,得到相应的数据块包的步骤之后,所述方法还包括:

将所述数据块包中各数据块的数据块指纹发送至集群的组长节点;

所述组长节点根据位图查询所述数据块包的数据重复率,对所述数据重复率按照降序的顺序进行排序;

根据各节点的所述路由等级,将所述重复率大于或等于预设值的节点作为备选路由节点。

进一步地,所述在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点的方法包括:

当判断到所述集群中各组长节点所返回的备选路由节点的数量均为0时,则按照预设路由方式将新数据块路由至所述集群中相应的节点内;

当判断到所述集群中各组长节点所返回的备选路由节点的数量不为0时,则在所有备选路由节点内对数据块包进行数据块指纹检索,并根据重复数据散布率确定所述目标路由节点。

进一步地,所述根据重复数据散布率确定所述目标路由节点的方法包括:

计算所述数据块包在所有备选路由节点内的重复数据散布率;

当所述数据块包在当前备选路由节点内的重复数据散布率大于在任一剩余备选路由节点内的重复数据散布率时,则将所述当前备选路由节点作为目标路由节点。

进一步地,所述计算所述数据块包在所有备选路由节点内的重复数据散布率的公式为:

其中,x为数据块包含x个子数据块,y为在某个节点上有y个子数据块是重复的,z为y个子数据块存储在z个容器中。为平均每个容器存储的重复数据块数量,为数据块包的数据重复率。

进一步地,所述组长节点根据位图查询所述数据块包的数据重复率的方法包括:

各节点组内的节点通过指纹索引对各自节点内的数据块指纹的前缀或后缀进行截取后,对所述节点组长内的位图进行填充,以得到当前节点组内所有节点的位图;

所述组长节点根据位图查询所述数据块包的数据重复率。

本发明的另一实施例提出一种路由路径规划系统,解决现有的路由系统无法平衡系统能耗与去重率的问题,提高了用户路由体验的满意度。

根据本发明实施例的路由路径规划系统,包括:

计算模块,用于对数据流进行分块计算后得到各数据块的数据块指纹;

合并模块,用于将所述数据块进行合并分组,得到相应的数据块包;

确定模块,用于在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点。

进一步地,所述合并模块包括:

转发单元,用于将所述数据块包中各数据块的数据块指纹发送至集群的组长节点;

查询单元,用于所述组长节点根据位图查询所述数据块包的数据重复率,对所述数据重复率按照降序的顺序进行排序;

选择单元,用于根据各节点的所述路由等级,将所述重复率大于或等于预设值的节点作为备选路由节点。

本发明的另一个实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。

附图说明

图1是本发明第一实施例提出的路由路径规划方法的流程图;

图2是图1中步骤s102的具体流程图;

图3是图1中步骤s103的具体流程图;

图4是图1中步骤s1031的具体流程图;

图5是本发明第二实施例提出的路由路径规划系统的结构框图。

具体实施方式

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

请参阅图1,本发明第一实施例提出的一种路由路径规划方法,其中,包括步骤s101~s103:

步骤s101,对数据流进行分块计算后得到各数据块的数据块指纹。

本实施例中,以路由设备为例进行说明,但需要了解的是,本发明实施例并不限于此,本发明实施例的方法可以应用在任何资源共享设备中,即任何可以通过路由进行数据传输的电子设备中。具体的,在现有技术中,由于无法对路由系统的系统能耗及去重率进行平衡,从而导致路由系统的系统能耗及去重率较差,降低了用户路由体验的满意度。在本发明实施例中,为了解决这一问题,在用户进行数据共享时将新数据块持续路由到相同节点,以提高系统数据去重率,且能够通过减少去重后的数据块所占的容器数量来减少系统能耗。

具体的,在本实施例中,当接收到用户对数据进行共享的请求时,对数据流进行分块计算后得到各数据块的数据块指纹。可以理解的,由于本步骤中仅需在用户进行数据共享的请求时,该路由系统中的计算模块对数据流进行分块计算后得到各数据块的数据块指纹,由于通过将所述数据块指纹作为对应数据块的唯一标识,因此方便该路由系统再进行数据块包的重复率进计算时,可通过对数据流中的各数据块的精确查找进行确定。其中,对数据流进行分块计算后得到各数据块的数据块指纹之前,还需通过划分模块获取集群中各个节点的剩余存储空间的大小,进而实现根据预设的等级划分规则对各节点进行相应的等级划分,以得到各节点的路由等级。本实施例中,该路由系统的路由等级可划分为十个路由等级,在进行路由等级划分时,集群中各个节点的剩余存储空间的量越大,则该节点的路由等级越高,且每个等级之间间隔10%的剩余存储空间,但不限于此,在其他实施例中该路由系统中的路由等级的划分,还可根据实际需求进行调整。

其中,在对所述数据流进行分块时,可采用一不断滑动的窗口来确定待分割的数据块边界点,并采用rabin-fingerprint计算窗口内数据的指纹值,如果满足预设的条件,就将该窗口的开始位置作为数据块的结尾,从而实现通过不断滑动窗口并计算指纹实现对数据的分块。为了避免极端情况下,数据块过长或者过短的情形,路由系统需要设定数据块的上下限。该数据块数据块指纹的获得可通过哈希运算所得。

步骤s102,将所述数据块进行合并分组,得到相应的数据块包。

如上所述,在该路由系统的计算模块对数据流进行分块计算后得到各数据块的数据块指纹后,通过合并模块将所述数据块进行合并分组,得到相应的数据块包,以便于根据该路由系统中各路由设备的路由等级将所述数据块包路由到相应的路由节点内。本实施例中,所述数据块合并分组的原则可根据路由设备的性能参数确定,若该路由设备的性能较高,则该路由设备中每组的节点数量将大于路由性能较低的路由设备中每组的节点数量。

请参阅图2,将所述数据块进行合并分组,得到相应的数据块包的方法包括如下步骤:

步骤s1021,将所述数据块包中各数据块的数据块指纹发送至集群的组长节点。

步骤s1022,所述组长节点根据位图查询所述数据块包的数据重复率,对所述数据重复率按照降序的顺序进行排序。

步骤s1023,根据各节点的所述路由等级,将所述重复率大于或等于预设值的节点作为备选路由节点。

如上所述,转发单元将所述数据块包中各数据块的数据块指纹发送至集群的组长节点,查询单元中的截取子单元使各节点组内的节点通过指纹索引对各自节点内的数据块指纹的前缀或后缀进行截取后,对所述节点组长内的位图进行填充,以得到当前节点组内所有节点的位图;查询单元中的查询子单元使该路由系统中的各组长节点根据位图查询所述数据块包的数据重复率,并对所述数据重复率按照降序的顺序进行排序;最终由选择单元根据各节点的所述路由等级,将所述重复率大于或等于预设值的节点作为备选路由节点,如最高路由级别(第一级节点)的内的数据重复率为5%,第二级节点的备选重复率为10%,从而将重复率较低的节点筛选出去,从而提高数据流中所述数据块的的传输效率。

步骤s103,在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点。

如上所述,为提高系统数据去重率,在不影响节点性能的情况下,尽量将新数据块持续路由到相同节点,用于确定目标路由节点的确定模块,通过在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点。可以理解的,为得到目标路由节点,在进行数据块指纹检索时只需要在备选路由节点上进检索行,由于不需要在所有的节点上进行数据块指纹检索,从而减少了指纹检索节点的能耗。

请参阅图3,其中,所述在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点的方法包括如下步骤:

步骤s1031,当判断到所述集群中各组长节点所返回的备选路由节点的数量均为0时,则按照预设路由方式将新数据块路由至所述集群中相应的节点内。

如上所述,当确定模块中的路由单元判断到所述集群中各组长节点所返回的备选路由节点的数量均为0时,则按照预设路由方式将新数据块路由至所述集群中数据量最少的节点内。其中备选路由节点的数量可以根据每个组的节点数量设置比例或者直接设置具体数量,在此不做限制。

步骤s1032,当判断到所述集群中各组长节点所返回的备选路由节点的数量不为0时,则在所有备选路由节点对数据块包进行数据块指纹检索,并根据重复数据散布率确定所述目标路由节点。

如上所述,当确定模块中的确定单元判断到所述集群中各组长节点所返回的备选路由节点的数量不为0时,表明所备选路由节点的数量为一个或多个,当所述备选路由节点为多个时,则在所有备选路由节点内对数据块包进行数据块指纹检索,并根据重复数据散布率确定所述目标路由节点。

请参阅图4,所述根据重复数据散布率确定所述目标路由节点的方法包括:

步骤s1031a,计算所述数据块包在所有备选路由节点内的重复数据散布率。

所述计算所述数据块包在所有备选路由节点内的重复数据散布率的公式为:

其中,x为数据块包含x个子数据块,y为在某个节点上有y个子数据块是重复的,z为y个子数据块存储在z个容器中。为平均每个容器存储的重复数据块数量,为数据块包的数据重复率。

步骤s1032b,当所述数据块包在当前备选路由节点内的重复数据散布率大于在任一剩余备选路由节点内的重复数据散布率时,则将所述当前备选路由节点作为目标路由节点。

如上所述,由于重复数据散布率表示一个数据块包的重复数据在某个节点的散布情况。散布率越高,说明重复数据在该节点上散布越紧凑,在恢复数据时,需要进行的i/o操作越少,为在降低能耗的同时保持系统较高的去重率,因此需要通过计算单元中的计算子单元计算所述数据块包在所有备选路由节点内的重复数据散布率,并由计算单元中的确定子单元根据所述重复数据散步率,从备选路由节点确定一目标路由节点。

作为一个具体的实施例,如一个数据块包中包括10个子数据块,在节点1中,重复的子数据块数量为5,对应存储的容器数量为2个。在节点2中,重复的子数据块数量为6,对应存储的容器数量为3个。那么节点1的重复数据散布率为:

而节点2的重复数据散布率为:

虽然在节点2上数据的重复率更高,但是考虑到容器数量较多会使系统能耗增加,为了降低能耗,并尽量保持较高的去重率,该数据块包将会路由到节点1上。

根据本发明提供的路由路径规划方法,首先对数据流进行分块计算后得到各数据块的数据块指纹,由于该数据块指纹为该数据块的唯一标识,以便于对数据流中的各数据块进行精确查找;通过将所述数据块进行合并分组,得到相应的数据块包,从而提高数据流中所述数据块的的传输效率;通过在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点,由于任意一组的节点数量大于该组备选路由节点的数量,从而可以降低系统能耗。由于本发明能够将新数据块持续路由到相同节点,以提高系统数据去重率,且通过减少去重后的数据块所占的容器数量来减少系统能耗,解决现有的路由系统无法平衡系统能耗与去重率的问题,提高了用户路由体验的满意度。

请参阅图5,基于同一发明构思,本发明第二实施例提供的路由路径规划系统,包括:

划分模块10,用于获取集群中各个节点的剩余存储空间的大小,根据预设的等级划分规则对各节点进行相应的等级划分,以得到各节点的路由等级。

计算模块20,用于对数据流进行分块计算后得到各数据块的数据块指纹。

合并模块30,用于将所述数据块进行合并分组,得到相应的数据块包。

本实施例中,所述合并模块30包括:

转发单元31,用于将所述数据块包中各数据块的数据块指纹发送至集群的组长节点。

查询单元32,用于所述组长节点根据位图查询所述数据块包的数据重复率,对所述数据重复率按照降序的顺序进行排序。

本实施例中,所述查询单元32包括:

截取子单元321,用于各节点组内的节点通过指纹索引对各自节点内的数据块指纹的前缀或后缀进行截取后,对所述节点组长内的位图进行填充,以得到当前节点组内所有节点的位图;

查询子单元322,用于所述组长节点根据位图查询所述数据块包的数据重复率。

选择单元33,用于根据各节点的所述路由等级,将所述重复率大于或等于预设值的节点作为备选路由节点。

确定模块40,用于在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点。

本实施例中,所述确定模块40包括:

路由单元41,用于当判断到所述集群中各组长节点所返回的备选路由节点的数量均为0时,则按照预设路由方式将新数据块路由至所述集群中相应的节点内。

确定单元42,用于当判断到所述集群中各组长节点所返回的备选路由节点的数量不为0时,则在所有备选路由节点内对数据块包进行数据块指纹检索,并根据重复数据散布率确定所述目标路由节点。

本实施例中,所述确定单元42包括:

计算子单元421,用于计算所述数据块包在所有备选路由节点内的重复数据散布率。

所述计算所述数据块包在所有备选路由节点内的重复数据散布率的公式为:

其中,x为数据块包含x个子数据块,y为在某个节点上有y个子数据块是重复的,z为y个子数据块存储在z个容器中。为平均每个容器存储的重复数据块数量,为数据块包的数据重复率。

确定子单元422,当所述数据块包在当前备选路由节点内的重复数据散布率大于在任一剩余备选路由节点内的重复数据散布率时,则将所述当前备选路由节点作为目标路由节点。

根据本发明提供的路由路径规划系统,根据本发明提供的路由路径规划方法,首先对数据流进行分块计算后得到各数据块的数据块指纹,由于该数据块指纹为该数据块的唯一标识,以便于对数据流中的各数据块进行精确查找;通过将所述数据块进行合并分组,得到相应的数据块包,从而提高数据流中所述数据块的的传输效率;通过在备选路由节点内对数据块包进行数据块指纹检索,以得到目标路由节点,由于任意一组的节点数量大于备选路由节点的数量,从而可以降低系统能耗。由于本发明能够将新数据块持续路由到相同节点,以提高系统数据去重率,且通过减少去重后的数据块所占的容器数量来减少系统能耗,解决现有的路由系统无法平衡系统能耗与去重率的问题,提高了用户路由体验的满意度。本发明实施例提出的路由路径规划系统的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。

此外,本发明的实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

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