基于内容与关系分离的大数据集任务的节点迁移方法

文档序号:7953238阅读:270来源:国知局
专利名称:基于内容与关系分离的大数据集任务的节点迁移方法
技术领域
基于内容与关系分离的大数据集任务的节点迁移方法属于互联网IP路由器数据以及内存管理算法研究领域。
背景技术
在现代的计算机网络系统中,路由器是最核心的连接设备。互联网的飞速发展带来了路由器体系结构的革新。下一代互联网对下一代IP路由器体系结构提出了新的需求。对单节点进行优化,提高其处理能力已经不再是系统改进的最根本方式,因为这种方式受限于物理器件的发展速度影响。基于单节点的传统IP路由器体系结构已经无法适应网络的飞速发展。可扩展的体系结构是下一代IP路由器的主要发展方向。
在可扩展路由器软件体系结构中,任务的迁移是基本的结构支持。可扩展软件体系结构的计算模型只解决了系统的静态抽象问题,它回答了系统该如何组织和分配任务的基本问题。但是,对于一个真正可扩展的系统来说,系统结构的动态扩充是至关重要的。由于查找效率的原因,路由表的存储并不是以无关联的“表”型结构进行存储的,通常是基于Trie树结构或其他有组织的结构进行存储。重建不止意味着数据的拷贝,这些关联关系也要得到恢复,而对于大数据集来说,在短时间内恢复数据集的关系是比较困难的。概括的说,数据关系完全重建的复杂度在大规模数据集的时间开销过大以及数据关联关系的不可复制性制约了这些任务在路由器控制平面节点之间的迁移。因此,要达到真正的可扩展软件体系结构,就一定要解决大数据集任务的迁移问题。

发明内容
本发明的目的在于提供一种基于内容与关系分离的大数据集任务的节点迁移方法。
本发明的特征在于,它依次含有以下步骤步骤(1.)建立内容数据存储池,记录各内存池的首地址,并存储包含目标子网、下一跳、出接口以及优先级在内的路由器内部的路由信息;步骤(2.)建立结构数据内存池,记录该内存池的首地址并存储路由器内部路由信息之间的关联,其中包含指向内容数据内存池的指针以及两个用于快速检索的指针;步骤(3.)初始化内容数据内存池和结构数据内存池;步骤(4.)建立所述内容数据内存池和结构数据内存池之间在存储地址上的一一对应的映射关系;同时,建立各内存地址和空闲内存链表,该链表是一个用于存储空闲内存地址的指针链表,以便对由于路由条目的撤消而形成的内存地址空洞进行管理;其中,所述映射关系具体表现在内容数据内存池与结构数据内存池在内存中首地址之差与所述内存池之间对应条目在内存地址上的偏移量是相同的;步骤(5.)在执行完路由条目的删除操作后,由步骤(4.)中的空闲内存链表对由删除带来的内存地址空洞的详细信息做记录,该详细信息包括空闲内存链表的首地址指针以及下一个空闲空间内存区域的地址;步骤(6)在执行路由条目增加操作时,首先判断所述空闲内存链表的首地址是否为空,若该地址非空,则把需要添加的新路由条目优先存储在由空闲内存链表维护的地址空洞中,并修改空闲内存链表的首地址指针,若该地址为空,则说明存储路由条目的内存地址中不存在地址空洞,需要向系统申请新的内存地址,存放新增的路由条目;步骤(7.)当需要把路由表移动到另一块独立的内存区域时,依次按以下步骤进行步骤(7.1)根据需要移动的内容数据内存池的大小,在新的内存区域中申请相应的内存存储空间,并记录该空间的首地址;步骤(7.2)根据需要移动的结构数据内存池的大小,在新的内存区域中申请相应的存储空间,并记录该存储空间的首地址;步骤(7.3)建立步骤(7.1)、步骤(7.2)中所述的新内存池对之间的映射关系,记录新的内容数据内存池与结构数据内存池首地址间的偏移量;步骤(7.4)扫描步骤(7.2)所述的新的结构数据内存池,并根据步骤(7.3)所述的新偏移量修改新的结构数据内存池中对应的指针地址;步骤(7.5)在新的内存区域中建立空闲内存链表,对可能存在的空闲内存地址进行管理。
按照上述实施方式我们对该协议在路由表规模从100K到1M条的情况下对上述方法进行了仿真,并将上述方法与传统的完全重建路由表的方式进行了比较。其中图6是使用该方法重建路由表所花费时间的模拟仿真结果,可以发现该过程符合线性计算复杂度。图7是采用真实路由表进行实验情况下,上述方法与传统的完全重建方式在路由表移动情况下花费时间的对比,从图中可以发现基于内容与关系分离的大数据集任务的节点迁移方法与传统方式相比在路由表移动时间上有很大的优势,并且随路由条目的增加其增长率也远远小于传统的完全重建方式。图8显示了该方式与传统方式的加速比,图中离散的圆圈标记代表相应路由条数条件下,测得的传统方式与基于内容与关系分离的大数据集任务的节点迁移方法的重建时间之比。加速比分布在23.47到58.90之间,虽然这些离散的加速比数据没有很平滑的数据趋势关系。但是,仍然能够大体看出随路由条数的增加,加速比有增加的趋势。


图1.路由表结构描述图;图2.内存池以及映射关系3.空闲内存链表结构图;
图4.路由表复制示意图;图5.本发明的总体处理流程图;图6.仿真数据曲线图;图7.路由表重建时间实验曲线图;图8.加速比曲线图;图9.本发明的应用示例图。
具体实施例方式
传统的大数据集任务节点迁移与重建方式的效率底下,严重影响了扩展软件体系结构的发展。设计一种更加高效率的移动以及存储方法并满足可扩展路由器中路由计算和路由的管理这两个核心功能,是本发明的主要贡献。
在本发明的描述中,基于内容与结构分离的思想,路由表通过内容数据内存池、结构数据内存池以及该两个内存池对的映射关系进行描述,其中内容数据内存池中存储了路由条目的基本信息,其中包括目标子网、下一跳,出接口以及优先级。结构数据内存池则用来存储路由条目之间的基本关系,为了方便查找,由于路由表一般使用Trie树的结构进行存储,结构数据内存池就是针对Trie树的一种特殊描述。其中的内存池对的映射关系可以表示为y=f(d(x))=x,其中x为结构数据的逻辑地址,y为内容数据的逻辑地址。
路由表结构描述图见图1内存池以及映射关系描述见图2在维护内容数据内存池、结构数据内存池的过程中,如果出现路由条目的释放,需要及时的记录该内存块的地址并将该地址记录在空闲内存链表中,当该链表的首地址指针不为空的时候,为了节约内存空间,需要将新加入的路由条目优先的存储在空闲内存链表所记录的地址空洞中。
空闲内存链表结构见图3当需要进行路由表迁移的时候,首先在迁移的目的内存区域中按照源内容数据内存池以及结构数据内存池大小重建相应结构,再将对应的数据内容以及关系描述进行复制。复制完毕以后,记录新的内容数据内存池以及结构数据内存池的首地址,并建立新的映射关系,最后,通过对结构数据内存池进行扫描,根据新的首地址映射关系修改结构数据内存池中的指针地址完成路由表的迁移与重建。
路由表在内存块中的复制过程见图4本发明的总体处理流程图见图5可扩展路由器的框架结构图即本发明应用示例图见图9
本发明可以通过对路由信息的内容与相互关系的分离来减少大规模路由表重建过程中的计算记忆处理开销,并且,通过空闲内存链表对内存空洞的管理优先的使用由内存释放带来的内存空洞从而减少了内存空间上的浪费,并且,通过实验数据表明,该方法与传统的完全重建方法相比具有计算复杂度底,稳定性好等特点。作为可扩展路由器软件体系结构中的重要组成部分解决了对大数据集任务迁移的支持问题。
权利要求
1.基于内容与关系分离的大数据集任务的迁移方法,其特征在于该方法是通过在互联网IP路由器或终端主机的软件体系结构中增加一个动态任务迁移模块来实现的,依次含有以下步骤步骤(1.)建立内容数据存储池,记录各内存池的首地址,并存储包含目标子网、下一跳、出接口以及优先级在内的路由器内部的路由信息;步骤(2.)建立结构数据内存池,记录该内存池的首地址并存储路由器内部路由信息之间的关联,其中包含指向内容数据内存池的指针以及两个用于快速检索的指针;步骤(3.)初始化内容数据内存池和结构数据内存池;步骤(4.)建立所述内容数据内存池和结构数据内存池之间在存储地址上的一一对应的映射关系;同时,建立各内存地址和空闲内存链表,该链表是一个用于存储空闲内存地址的指针链表,以便对由于路由条目的撤消而形成的内存地址空洞进行管理;其中,所述映射关系具体表现在内容数据内存池与结构数据内存池在内存中首地址之差与所述内存池之间对应条目在内存地址上的偏移量是相同的;步骤(5.)在执行完路由条目的删除操作后,由步骤(4.)中的空闲内存链表对由删除带来的内存地址空洞的详细信息做记录,该详细信息包括空闲内存链表的首地址指针以及下一个空闲空间内存区域的地址;步骤(6)在执行路由条目增加操作时,首先判断所述空闲内存链表的首地址是否为空,若该地址非空,则把需要添加的新路由条目优先存储在由空闲内存链表维护的地址空洞中,并修改空闲内存链表的首地址指针,若该地址为空,则说明存储路由条目的内存地址中不存在地址空洞,需要向系统申请新的内存地址,存放新增的路由条目;步骤(7.)当需要把路由表移动到另一块独立的内存区域时,依次按以下步骤进行步骤(7.1)根据需要移动的内容数据内存池的大小,在新的内存区域中申请相应的内存存储空间,并记录该空间的首地址;步骤(7.2)根据需要移动的结构数据内存池的大小,在新的内存区域中申请相应的存储空间,并记录该存储空间的首地址;步骤(7.3)建立步骤(7.1)、步骤(7.2)中所述的新内存池对之间的映射关系,记录新的内容数据内存池与结构数据内存池首地址间的偏移量;步骤(7.4)扫描步骤(7.2)所述的新的结构数据内存池,并根据步骤(7.3)所述的新偏移量修改新的结构数据内存池中对应的指针地址;步骤(7.5)在新的内存区域中建立空闲内存链表,对可能存在的空闲内存地址进行管理。
全文摘要
本发明属于互联网IP路由器数据以及内存管理方法技术领域,其具体特征在于依次含有以下步骤依次建立包含路由信息的内容数据内存池和包含路由条目之间关系的结构数据内存池;依据上述两个内存地址池首地址之差得出并建立该内存池对在存储地址上的映射关系;分别建立上述内存池各自的空闲内存链表;当要把路由表移到一个独立的内存区域时要分别根据各自内存池的大小在新内存区域内分别建立内容数据内存池和结构数据内存池,并重新建立新内存空间内的映射关系与空闲内存链表,用来管理在路由维护中可能出现的地址空洞。本发明实现了IP路由器软件体系结构中大数据集的动态维护。
文档编号H04L29/02GK1897570SQ20061001226
公开日2007年1月17日 申请日期2006年6月15日 优先权日2006年6月15日
发明者徐恪, 吴鲲, 王海洋 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1