一种表项的存储方法、装置及查询方法制造方法及图纸

技术编号:3512122 阅读:182 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种表项的存储方法:提取表项中的成员变量构建该条表项的关键信息结构;将所述关键信息结构存储于其所属控制实体下的控制链表中;将包含所述关键信息结构的表项存储于至少一个快查表中。本发明专利技术还公开了一种表项的存储装置,包括构建单元,用于提取表项中的成员变量构建该条表项的关键信息结构;第一存储单元,用于将所述关键信息结构存储于其所属控制实体下的控制链表中;第二存储单元,用于将包含所述关键信息结构的表项存储于至少一个快查表中。

【技术实现步骤摘要】

本专利技术涉及数据管理领域,尤其涉及一种表项的存储方法及装置。
技术介绍
在交换机、路由器等转发设备中,为了支持软件转发以及作为下发硬件表项的基础,需要管理一定的转发地址以及策略等信息内容。信息内容的管理主要包括两个方面信息存储和信息查找。目前较为通用的信息管理方式是将信息作为表项进行存储,即将需要管理的信息以一定形式存储于数据表中,进而通过查表获取转发所需的表项。从功能角度出发,表项存储需要支持转发过程中对这些表项的快速命中;从易用性角度出发,需要支持用户通过各种方式显示表项信息,即方便按特定控制对象进行遍历。比如,支持用户查看指定接口上的某种表项信息,或者支持用户查看指定VLAN上的某种表项信息等,此时指定接口或VLAN即可看作某种控制实体。为了实现快速命中,要求表项以能支持快速查找的形式进行存储,比如哈希(Hash)表、分级索引表以及二叉树表等,这些统称为快查表。以Hash表为例,Hash表是一组散列,物理存储的顺序通常不是按照某个特定控制实体集中排列的,例如一个VLAN内学习到的表项可能处于Hash表中不同的冲突链中。因此这种存储方式不利于遍历显示某控制实体下的各条表项信息。如,按VLAN(或者按接口)显示表项时,就需要遍历每一个冲突链中的每一个表项,才能输出属于指定VLAN(或者指定接口)的所有表项。为了便于某种方式的遍历,可以将这些表组织为链表形式。因此,目前为了既要满足快速命中,又要便于按某种方式遍历的表项存储方法,通常采用Hash表与链表配合使用。请结合参阅图1,其为现有的表项组织结构示意图。在各控制实体(接口或VLAN)下分别建立Hash表。比如在VLAN1下建立一个Hash表,用于存储属于VLAN1的全部数据信息;然后在VLAN2下也建立一个Hash表,用于存储属于VLAN2的全部数据信息;其他各VLAN或接口表项也同样处理。可以看出,上述表项的存储方法,可以同时满足快速命中和便于遍历的需要。但是当一个VLAN或接口下只存在少量表项时,也需要创建一个深度确定的快查表,快查表表头同样占用了一定内存。如果接口或者VLAN数目较多时,这种内存的消耗就变得不可接受。因此现有的表项存储方法,虽然满足快速命中和遍历显示的需要,但占用了大量内存。
技术实现思路
本专利技术的目的在于提供,以解决现有为了同时满足快速命中和遍历显示需要,占用了大量内存的技术问题。为解决上述技术问题,本专利技术的目的是通过以下技术方案实现的一种表项的存储方法提取表项中的成员变量构建该条表项的关键信息结构;将所述关键信息结构存储于其所属控制实体下的控制链表中;将包含所述关键信息结构的表项存储于至少一个快查表中。优选的,为控制链表中每个关键信息结构节点添加时间戳;为快查表中每个表项节点添加时间戳。优选的,新增快查表的表项节点时,在控制链表中新增对应的关键信息结构节点;刷新快查表的表项节点时,在控制链表中新增对应的关键信息结构节点,不刷新原关键信息结构节点;删除快查表的表项节点时,不删除控制链表中对应的关键信息结构节点。优选的,遍历控制链表中的关键信息结构节点,与快查表中对应的表项节点进行核对,删除在快查表中不存在对应表项节点或者时间戳不同的关键信息结构节点。需要遍历控制实体下的各条表项时,查找以所述控制实体为表头的控制链表,通过所述控制链表中的各关键信息结构,查找存储于快查表中对应的表项节点,获取所述控制实体下的各条表项信息。优选的,将表项中关键信息结构以外的成员变量分为第一相关信息结构和第二相关信息结构;第一相关信息结构和关键信息结构作为表项节点存储于第一快查表;第二相关信息结构和关键信息结构存作为表项节点储于第二快查表。一种表项的存储装置,包括构建单元,用于提取表项中的成员变量构建该条表项的关键信息结构;第一存储单元,用于将所述关键信息结构存储于其所属控制实体下的控制链表中;第二存储单元,用于将包含所述关键信息结构的表项存储于至少一个快查表中。优选的还包括时间记录单元,用于为控制链表中每个关键信息结构节点添加时间戳,以及为快查表中每个表项节点添加时间戳。优选的,第一存储单元在快查表中新增表项节点时,第二存储单元在控制链表中也同时增加对应的关键信息结构节点;第一存储单元刷新快查表的表项节点时,第二存储单元在控制链表中新增对应的关键信息结构节点,而不刷新原关键信息结构节点;第一存储单元在快查表中删除表项节点时,第二存储单元不删除控制链表中对应的关键信息结构节点。优选的还包括核对单元,用于遍历控制链表中的关键信息结构节点,与快查表中对应的表项节点核对时间戳;删除单元,用于根据核对单元的结果,删除在快查表中不存在对应表项节点或者时间戳不同的关键信息结构节点。一种利用上述表项存储方法的表项查询方法需要快速命中某条表项时,通过已知的关键信息结构中的定位成员变量,查找存储于快查表中对应的表项节点,获取所需的表项信息;需要遍历控制实体下的各条表项时,查找以所述控制实体为表头的控制链表,通过所述控制链表中的各关键信息结构,查找存储于快查表中对应的表项节点,获取所述控制实体下的各条表项信息。优选的,当所述快查表为哈希表时,所述定位成员变量为哈希函数输入参量;当所述快查表为分级索引表时,所述定位成员变量为索引项。以上技术方案可以看出,在本专利技术中,由于将表项的成员变量构建为关键信息结构,一方面将所述表项的关键信息结构存储于其所属控制实体下的控制链表中,另一方面又将包含关键信息结构的表项存储于至少一个快查表中,使得快查表和控制链表之间通过相同的关键信息结构联系在一起。进而在需要快速命中时直接访问快查表,在需要按照某控制实体进行遍历时,通过控制链表中的各关键信息结构直接定位到快查表中的相关表项节点,进而获取所需表项的全部信息。可见,本专利技术公开的表项存储方法及装置,完全满足快速命中和遍历显示需要,但无需像现有技术在每个控制实体下都建立一个快查表,进而减少了占用的内存空间。附图说明图1为现有的表项组织结构示意图;图2为本专利技术公开的表项存储方法实施例流程图;图3为图2所示表项存储方法对应的表项组织结构第一实施例示意图;图4为图2所示表项存储方法对应的表项组织结构第二实施例示意图;图5为图2所示表项存储方法对应的表项组织结构第三实施例示意图;图6为本专利技术公开的表项存储装置实施例结构示意图。具体实施例方式本专利技术的核心思想是提取表项的成员变量作为该条表项的关键信息结构,只将关键信息结构存储于控制链表中,包含关键信息结构以及相关信息结构的表项全部内容存储于另外的快查表中。请参阅图2,其为本专利技术公开的表项存储方法实施例流程图。步骤110提取表项中的成员变量构建该条表项的关键信息结构,该条表项中的其他成员变量构建为相关信息结构。在交换机、路由器等转发设备中学习到的一条表项中会包含很多信息,比如IP地址、所属接口、MAC地址、老化时间以及所属VLAN等等,通常将它们称为该条表项的成员变量。假设提取IP地址和所属接口信息构建该条表项的关键信息结构,此时可以称关键信息结构包含两个成员变量;其余的MAC地址、老化时间以及所属VLAN等构建为相关信息结构。当然,也可以提取全部成员变量构建关键信息结构,相当于该条表项没有相关信息结构。可以认为关键信息结构中全部信息相同即为同本文档来自技高网
...

【技术保护点】
一种表项的存储方法,其特征在于:提取表项中的成员变量构建该条表项的关键信息结构; 将所述关键信息结构存储于其所属控制实体下的控制链表中;将包含所述关键信息结构的表项存储于至少一个快查表中。

【技术特征摘要】

【专利技术属性】
技术研发人员:苏兴山赵丽娜王珍异
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1