CN111190545A - 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 - Google Patents

一种基于软件实现的trie结构进行LPM规则压缩存储的方法 Download PDF

Info

Publication number
CN111190545A
CN111190545A CN201911374775.4A CN201911374775A CN111190545A CN 111190545 A CN111190545 A CN 111190545A CN 201911374775 A CN201911374775 A CN 201911374775A CN 111190545 A CN111190545 A CN 111190545A
Authority
CN
China
Prior art keywords
rule
lpm
length
node
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911374775.4A
Other languages
English (en)
Other versions
CN111190545B (zh
Inventor
王娜
张仕武
张寅俊
卢笙
陈盈安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinqiyuan Nanjing Semiconductor Technology Co ltd
Original Assignee
Xinqiyuan Nanjing Semiconductor Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinqiyuan Nanjing Semiconductor Technology Co ltd filed Critical Xinqiyuan Nanjing Semiconductor Technology Co ltd
Priority to CN201911374775.4A priority Critical patent/CN111190545B/zh
Publication of CN111190545A publication Critical patent/CN111190545A/zh
Application granted granted Critical
Publication of CN111190545B publication Critical patent/CN111190545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于软件实现的trie结构进行LPM压缩存储的方法,在插入LPM规则的时候,启动一个线程,直接按照hash计算插入位置,与此同时启动另一个线程在软件实现的trie结构上对LPM规则进行积累并统计每种前缀的个数,以便选出最合适的LPM规则前缀作为压缩依据。当trie结构的上的某个节点满足条件,立即将相关规则进行压缩,释放多余空间。这样就保证了在不影响LPM规则插入和搜索的情况的,对LPM规则进行相似划分。

Description

一种基于软件实现的trie结构进行LPM规则压缩存储的方法
技术领域
本发明属于存储技术领域,更具体地,涉及一种基于软件实现的trie结构进行LPM压缩存储的方法。
背景技术
随着网络时代的发展,尤其是5G技术的实现,社会对于网络传输的速度有着极大的需求。而决定网络传输速度的关键因素之一就是大型路由器或交换机查找路由的速率。查找路由的关键技术在于最长前缀匹配(LPM),以反馈匹配结果。基于IC技术的坚实基础,兆级LPM规则可以集成于DDR或专用芯片。对于LPM和LPM所对应的返回结果的下发速度和容量成为技术关注的焦点。
从百万数量级的LPM规则中快速查找匹配到的最长规则,就需要快速索引以高速查找规则并返回结果,因此利用hash分布LPM规则存储位置是必然的选择,而选择hash快速索引规则就意味着不可避免的冲突和填充率低的问题。以长度范围为0~32bit的LPM规则为例,规则的总数量为
Figure 568868DEST_PATH_IMAGE001
,若硬件容量为256Mb(不包含LPM规则所对应的结果空间),每条规则占用32位,最多存储8M条规则,为总容量的
Figure 370602DEST_PATH_IMAGE002
,可见其范围之广,再加以hash索引,必然造成填充率低的问题。再考虑LPM规则的长度范围(仅限Ipv4和Ipv6)是0~128,即便根据实际路由数据总结出规则长度普遍落入的部分区间的经验,但是面对有限的硬件空间,提高其填充率一直是难以攻克的瓶颈。提高填充率就意味着需要压缩规则以节省硬件资源。在无预先已有的规则形式的情况下,无法判断有多少类似规则的加入,有多少规则值得压缩,以什么规则前缀压缩最为合适,面对不同数据集,不够通用的压缩方法,会最终导致低填充率。
现在常用的压缩方式是利用trie的数据结构。trie本来就是一种压缩结构,它能够在未知数据集的情况下,随着规则的添加,其公共路径所在的规则即是拥有相同的前缀。若利用硬件结构实现trie,如果不考虑分化trie结构,随着规则长度的增长,层级节点的个数呈指数级的增长,生成庞大层次结构,这是不切实际的。解决这种问题的其中一种方式是对前缀按长度进行划分,实现分层trie,对其一部分数据进行hash索引,再将另一部分作为trie的数据,进行存储。这样大大减少了trie的规模,提高了规则填充率。但是尽管实现了数据分层和小型trie,每个trie结构需要唯一索引的管理以实现一一对应的存储关系,且需要一定的预留空间以便后续可以动态扩展。每个小型trie的步长大小也会影响消耗的trie的个数。虽然面对相似的数据表现不错,但是面对略微随机的数据集,表现差强人意。若只利用hash直接索引LPM规则存储的区域,为了保证最长规则所对应的结果返回,须对存储规则的区域限制长度条件,而后设置压缩寄存器组存储需要压缩的LPM规则前缀,以节约硬件资源。对于较为随机的规则表现较好,但是对于大量前缀相似的规则,要挑出合适的规则压缩,时间代价甚高,得不偿失。如何在随机和可压缩的LPM规则中取得折中方案,是需要合理解决的。
发明内容
本发明的目的是提供基于软件实现的trie结构进行LPM规则压缩存储,该方法在利用hash索引存储LPM规则的场景中,利用软件化实现的trie结构快速找出最合适做压缩的最长前缀以达到合理压缩的目的,最终提高填充率。
为实现上述发明目的,本发明提出的技术方案如下:
一种基于软件实现的trie结构进行LPM规则压缩存储的方法,所述方法包括:
步骤一,用软件设置k个trie结构,每个trie结构对应不同的LPM规则长度范围;
步骤二,当接收到LPM规则时,按照hash算法将其插入对应的硬件位置;如果所述LPM规则属于trie结构中对应的长度范围,则将其加入对应长度范围的trie结构,如果不属于任一个trie结构的长度范围,则不加入trie结构,将所述LPM规则加入trie结构的具体算法如下:
A.设置trie结构中每个节点的数据结构为:规则ID,规则的公共长度,规则的自有长度,“自有数据”,扩展结构;其中,规则ID是所述LPM规则的唯一标识,可由用户指定,但必须唯一,对于不存在对应规则的虚节点的ID可以设置为-1;规则的公共长度是指同一父节点下的所有子节点所具有的公共前缀的长度,所述公共长度应该等于其父节点的公共长度与自有长度之和;规则的自有长度是所述LPM规则的总长度减去所述LPM规则的公共长度;自有数据是指所述LPM规则去掉公共前缀之后的数据;扩展结构是指当所述LPM规则的索引数据长度不够时,用来存储所述LPM规则的ID的空间;
B.当接收到所述LPM规则时,根据所述LPM规则的信息设置节点的ID,如果trie结构中不存在节点,则将所述LPM规则设置为根节点;如果trie结构中已有节点,则从根节点开始自顶向下访问每个节点的公共长度L以及自有数据,若所述LPM规则以访问节点的公共长度L所截取的前缀与访问节点的自有数据相同,则所述LPM规则L之后的数据信息取前M位作为索引,即取所述LPM规则的前L+M的数据访问每个节点,其中M取决于trie结构,若trie结构是二叉树,则M=1;若trie结构是四叉树,则M=2;若trie结构是八叉树,则M=3,依次类推;对所述LPM规则剥离前L+M的数据后的剩余数据重复上述操作,直到出现异同或虚节点或无子节点,则进行步骤C;若剩余数据长度大于0且少于M位,则到步骤D;其中所述异同是指有部分相同,但不完全相同;
C.若所述LPM规则的剩余数据与访问节点的自有数据出现异同,则提取它们公共长度N对应的公共部分,建立虚节点,其中ID为-1,公共长度为N,自有数据为公共部分的数据;然后提取它们已经被剥离公共部分后的各自剩余数据的M位,作为各自索引数据,根据索引数据挂在虚节点的对应位置;若相同,则所述访问节点必为虚节点,只需更改虚节点的ID信息即可,无需建立节点;若无子节点,则直接将新建立的节点挂在索引数据对应的位置即可;
D.若取M位索引时,索引数据长度不够M,则在所述访问节点的扩展结构的对应位置,设置其ID;
步骤三,当一个trie结构的节点涉及的所述LPM规则的数量达到预先设定的阈值,且所述节点对应的所述LPM规则的长度不小于所述trie结构对应的LPM长度区间时,则使能压缩存储功能:申请一个存储模块作为压缩存储区域,并设置一个与该压缩存储区域相关联的压缩寄存器,用该压缩寄存器存储所述LPM规则的公共前缀,然后把所有所述LPM规则去掉公共前缀后插入到该压缩存储区域中,释放所述LPM规则原来占用的空间,并且删除所述节点的所有子树;
步骤四,后续接收到的LPM规则如果与对应长度区域的一个或多个压缩寄存器中存储的公共前缀相同,则把该LPM规则去掉公共前缀后存储在与该压缩寄存器相关联的压缩存储区域中,当一个压缩存储区域满时,则申请新的存储模块作为压缩存储区域,并设置与其相关联的压缩寄存器;否则直接通过hash存储到硬件结构中,并记录到对应的trie结构。
进一步地,若硬件存储模块宽度为32位,则k为3,对应的LPM规则长度分别为33~64、65~96、以及97~128。
进一步地,若硬件存储模块宽度为64位,则k为1,则LPM规则的长度为65~128。
进一步地,预先设定的阈值可以为4K。
本发明的基于软件实现的trie结构进行LPM规则压缩存储的方法,在规则数量不够多的时候不考虑压缩相似规则,仅通过hash直接索引硬件位置,存储LPM规则信息,因为此时盲目的压缩会导致浪费硬件空间。在插入LPM规则的时候,启动一个线程,直接按照hash计算插入位置,与此同时启动另一个线程在软件实现的trie结构上对LPM规则进行积累并统计每种前缀的个数,以便选出最合适的LPM规则前缀作为压缩依据。当trie结构的上的某个节点满足条件,立即将相关规则进行压缩,释放多余空间。这样就保证了在不影响LPM规则插入和搜索的情况的,对LPM规则进行相似划分。利用hash直接插入LPM规则的同时进行多个trie结构寻找公共前缀子串,软硬同步,在略微降低插入速度的同时提高填充率。同时,针对于软件实现的trie结构和硬件存储结构,本发明将实现三种长度区域分别对应的trie结构,减小了内存占用,而且建立trie结构是动态的过程减少了节点的生成。
附图说明
图1为现有技术的存储LPM规则的硬件结构示意图;
图2为现有技术的未压缩LPM规则存储过程示意图;
图3为现有技术的压缩的LPM规则存储过程示意图;
图4为根据本发明存储LPM规则的流程示意图;
图5为根据本发明的未压缩存储LPM规则的存储结构示意图;
图6为根据本发明的压缩存储LPM规则的存储结构示意图;
图7为根据本发明的一组LPM规则表的实施例;
图8(a)、图8(b)、图8(c)、图8(d)和图8(e)为根据本发明的将图7所示的LPM规则组存储到trie结构的过程的示意图;
图9(a)、图9(b)、图9(c)和图9(d)为根据本发明的将图7所示的LPM规则组存储到trie结构的数据结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互结合。
是与硬件结构密切相关的,存储LPM规则硬件结构由多个相同存储模块组成,若硬件的一个存储模块宽度为32位,深度为16K,一组4个,共有n组,如图1所示。
图4为根据本发明存储LPM规则的流程示意图。如图4所示,当接收到LPM规则之后,先根据规则长度遍历压缩寄存器中存储的相关前缀,如果找到与LPM规则最长匹配的前缀则将该LPM规则去除该前缀以后的剩余数据存储在与该压缩寄存器对应的压缩存储区域中(即附图中的存储模块),如果没有找到相同的前缀,则将该LPM规则加入到trie结构中,设置相关节点信息,并且在达到压缩条件时示能压缩存储。
图5为根据本发明的未压缩存储LPM规则的存储结构示意图。在未达到压缩条件时,LPM规则的存储方式如图5所示。
图6为根据本发明的压缩存储LPM规则的存储结构示意图。在达到压缩存储条件以后,使用本发明的方法压缩存储LPM规则的存储结构如图6所示。
图7为根据本发明的一组LPM规则表,图8(a)、8(b)、8(c)、8(d)和图8(e)为将图7中规则建立到trie结构的过程。针对软件实现的trie结构,不能建立一个完整的多叉trie,否则占用内存过于庞大,不切实际。因此我们针对真实LPM规则的长度分布以及硬件结构,建立k个trie结构,只有LPM规则前缀长度符合某一个trie结构对前缀长度的要求,才能进入trie结构。基于目前LPM规则分布规律,并考虑硬件结构。因此我们建立3个trie结构,长度范围分别为33~64,65~96,以及97~128。每个节点维护公共的子串序列,公共序列长度,以及该节点是否存在的LPM规则。当规则0插入时,只有一个节点,它的自身前缀序列为110010000111000111101001010101001001,自有长度为36,因为它是根节点,公共子串长度为0,自有数据为它本身,如图8(a)所示;当规则1插入时,规则0和规则1的公共子串是1100100001110001111010010101010010,则建立父节点,并标记其为虚节点(节点规则不存在置为-1,否则置为其ID),其公共子串长度为0,自有长度34,自有数据为1100100001110001111010010101010010,取规则0和规则1第35和36位作为索引,规则0的索引为“01”,那么规则0挂在父节点的第二个位置,规则1的索引为“10”,那么规则1挂在父节点的第三个位置,它们的公共子串长度都为36,自有长度都为0,自有数据都为空,如图8(b);当规则2插入时,公共子串也是1100100001110001111010010101010010,则直接根据子串后面的索引数据,挂载到父节点的第四个位置上,设置公共数据长度为36,自有长度为0,自有数据为空;当规则3插入时,其数据与这个虚节点的自有数据一致,因此直接把虚节点转为实节点(赋值ID),如图8(c)所示;当插入规则4时,规则4为规则3的子序列,规则4成为规则3的父节点,规则4的公共数据长度为0,自有长度为20,自有数据为11001000011100011110,规则3的第21和第22位作为索引,规则3的索引为“10”,那么规则三挂在规则4节点的第三个位置,规则3的公共子串长度为22,自有长度为12,自有数据为010101010010;当插入规则5时,规则4为规则5的子序列,则取规则5的第21和第22位作为索引,规则5的索引为“00”,那么规则5挂在规则4节点的第一个位置,规则5的公共子串长度为22,自有长度为14,自有数据为0010011000111000;当插入规则6时,规则4为规则6的子序列,但是规则6需要的索引位数不够两位,因此不必新建节点,只要在规则4的扩展结构中的对应位置填入规则6的ID即可。前五个节点的顺序依次是:规则0(公共长度32,自身长度0,自有数据:“”),规则1(公共长度32,自身长度0,自有数据:“”),规则2(公共长度32,自身长度0,自有数据:“”),规则3(公共长度22,自身长度12,自有数据:“010101010010”),规则4(公共长度0,自身长度20,自有数据:“11001000011100011110”),规则5(公共长度18,自身长度14,数据:“10011000111000”)。
图9(a)、图9(b)、图9(c)和图9(d)为根据本发明的将图7所示的LPM规则组存储到trie结构的数据结构示意图。在图9(a)中,公共长度36表示其父节点的总长度34加上索引数据长度2,该父节点下的所有子节点都具有36位长度的数据;在图9(c)中,若搜索规则0110010000111000111101001010101001001,首先从根节点开始,该根节点与其20个自有数据相同,取规则0的第21位和22位“10”作为索引数据去往节点3,再从第23位开始取12位,该数据与节点3的自有数据相同,再取第35位和36位去往节点0,则搜索完成;在图9(d)中,规则6与规则4的公共前缀是20个位,但是规则6的剩余数据不足索引数据的位数,因此将其直接存到扩展结构中。
对于长度范围为33~64的trie,其压缩的条件是其中某一节点的后代的个数超过4K条,且这个节点对应的规则长度大于等于32;对于长度范围为65~96的trie,其压缩的条件是其中某一节点的后代的个数超过4K条,且这个节点对应的规则长度大于等于64;对于长度范围为96~128的trie,其压缩的条件是其中某一节点的后代的个数超过4K条,且这个节点对应的规则长度大于等于96。
本领域的技术人员容易理解,以上所述仅为发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种基于软件实现的trie结构进行LPM压缩存储的方法,其特征在于,该方法包括:
A. 用软件设置k个trie结构,每个trie结构对应不同的LPM规则长度;
B. 当接收到LPM规则时,将其插入对应的硬件位置;如果所述LPM规则属于所述k个trie结构中对应的长度范围,则将其加入对应长度范围的trie结构,如果不属于任一个trie结构的长度范围,则不加入所述trie结构;将所述LPM规则加入所述trie结构的具体算法如下:
a. 设置trie结构中每个节点的数据结构为:规则ID,规则的公共长度,规则的自有长度,“自有数据”,扩展结构;其中,规则ID是所述LPM规则的唯一标识;规则的公共长度是指同一父节点下的所有子节点的公共前缀的长度,所述公共长度等于所述父节点的公共长度与自有长度之和;规则的自有长度是所述LPM规则的总长度减去所述LPM规则的公共长度;自有数据是指所述LPM规则去掉公共前缀之后的数据;扩展结构是当索引数据长度不足时用来存储所述LPM规则的ID的空间;
b. 当接收到所述LPM规则时,根据所述LPM规则设置节点的ID,如果trie结构中不存在节点,则将所述LPM规则设置为根节点;如果trie结构中存在节点,则从根节点开始自顶向下访问每个节点的公共长度L以及自有数据,若所述LPM规则以访问节点的公共长度L所截取的前缀与所述访问节点的自有数据相同,则将所述LPM规则在公共长度L之后的数据取前M位作为索引数据访问每个节点,其中M取决于trie结构,若trie结构是二叉树,则M=1;若trie结构是四叉树,则M=2;若trie结构是八叉树,则M=3,依次类推;对所述LPM规则剥离L+M长度的数据之后的剩余数据重复上述操作,直到出现异同或虚节点或无子节点,则进行步骤C;若剩余数据长度大于0且少于M位,则到步骤D;其中所述异同是指有部分相同,但不完全相同;
c. 若所述LPM规则的剩余数据与所述访问节点的自有数据出现异同,则提取它们公共长度N对应的公共部分建立虚节点;然后提取它们已经被剥离公共部分后的各自剩余数据的M位作为各自的索引数据,根据索引数据挂在虚节点的对应位置;若相同,则所述访问节点必为虚节点,只需更改虚节点的ID信息而无需建立新节点;若无子节点,则建立新节点并挂在与所述索引数据对应的位置;
d. 若取M位索引时的数据长度不足M,则在所述访问节点的扩展结构处设置其ID;
C. 当一个trie结构的节点涉及的LPM规则的数量达到预先设定的阈值,且所述节点对应的所述LPM规则的长度不小于所述trie结构对应的LPM长度区间,则使能压缩存储功能,具体过程如下:
申请一个存储模块作为压缩存储区域,并设置与所述压缩存储区域相关联的压缩寄存器,用所述压缩寄存器存储所涉及的LPM规则的公共前缀,然后把所有所涉及的LPM规则去掉公共前缀后插入到所述压缩存储区域中,释放所述LPM规则原来占用的空间,并且删除所述节点的所有子树;
D. 后续接收到的LPM规则如果与对应长度区域的一个或多个压缩寄存器中存储的公共前缀相同,则把所述LPM规则去掉公共前缀后存储在与所述压缩寄存器相关联的压缩存储区域中,当所述压缩存储区域满时,则申请新的存储模块作为压缩存储区域,并设置与其相关联的压缩寄存器;否则直接通过hash存储到硬件结构中,并记录到对应的trie结构。
2.根据权利要求1所述的基于软件实现的trie结构进行LPM压缩存储的方法,其特征在于:若所述存储模块宽度为32位,则k为3,对应的LPM规则长度分别为33~64、65~96、以及97~128。
3.根据权利要求1所述的基于软件实现的trie结构进行LPM压缩存储的方法,其特征在于:若所述存储模块宽度为64位,则k为1,则所述LPM规则的长度为65~128。
4.根据权利要求1所述的基于软件实现的trie结构进行LPM压缩存储的方法,其特征在于:所述预先设定的阈值为4K。
CN201911374775.4A 2019-12-27 2019-12-27 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 Active CN111190545B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911374775.4A CN111190545B (zh) 2019-12-27 2019-12-27 一种基于软件实现的trie结构进行LPM规则压缩存储的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911374775.4A CN111190545B (zh) 2019-12-27 2019-12-27 一种基于软件实现的trie结构进行LPM规则压缩存储的方法

Publications (2)

Publication Number Publication Date
CN111190545A true CN111190545A (zh) 2020-05-22
CN111190545B CN111190545B (zh) 2022-09-27

Family

ID=70707754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911374775.4A Active CN111190545B (zh) 2019-12-27 2019-12-27 一种基于软件实现的trie结构进行LPM规则压缩存储的方法

Country Status (1)

Country Link
CN (1) CN111190545B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905597A (zh) * 2021-03-11 2021-06-04 芯启源(南京)半导体科技有限公司 一种计算LPM规则索引的hash方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834802A (zh) * 2010-05-26 2010-09-15 华为技术有限公司 转发数据包的方法及装置
CN104854828A (zh) * 2012-06-27 2015-08-19 华为技术有限公司 通过统一哈希化Trie树进行的互联网协议及以太网查找
US20190280969A1 (en) * 2018-03-06 2019-09-12 Clarkson University System and method for building a hierarchical data structure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834802A (zh) * 2010-05-26 2010-09-15 华为技术有限公司 转发数据包的方法及装置
CN104854828A (zh) * 2012-06-27 2015-08-19 华为技术有限公司 通过统一哈希化Trie树进行的互联网协议及以太网查找
US20190280969A1 (en) * 2018-03-06 2019-09-12 Clarkson University System and method for building a hierarchical data structure

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905597A (zh) * 2021-03-11 2021-06-04 芯启源(南京)半导体科技有限公司 一种计算LPM规则索引的hash方法

Also Published As

Publication number Publication date
CN111190545B (zh) 2022-09-27

Similar Documents

Publication Publication Date Title
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
JP5996088B2 (ja) 暗号ハッシュ・データベース
US8356021B2 (en) Method and apparatus for indexing in a reduced-redundancy storage system
CN1316390C (zh) 用树状分段改善树搜索性能和存储器带宽的方法和系统
CN110413611B (zh) 数据存储、查询方法及装置
US8099421B2 (en) File system, and method for storing and searching for file by the same
US8325721B2 (en) Method for selecting hash function, method for storing and searching routing table and devices thereof
CN110147204B (zh) 一种元数据落盘方法、装置、系统及计算机可读存储介质
CN111190904B (zh) 一种图-关系数据库混合存储的方法和装置
CN101655861A (zh) 基于双计数布鲁姆过滤器的哈希方法和哈希装置
CN111352931A (zh) 一种哈希冲突的处理方法、装置及计算机可读存储介质
CN104426770A (zh) 路由查找方法及装置、B-Tree树结构的构建方法
EP2544414A1 (en) Method and device for storing routing table entry
CN103051543A (zh) 一种路由前缀的处理、查找、增加及删除方法
CN115510092B (zh) 一种基于布谷鸟过滤器的近似成员查询优化方法
CN110532307A (zh) 一种流滑动窗口的数据存储方法及查询方法
De Jonge et al. Two access methods using compact binary trees
CN103778120A (zh) 全局文件标识生成方法、生成装置及相应的分布式文件系统
CN101277252A (zh) 多分支Trie树的遍历方法
CN111190545B (zh) 一种基于软件实现的trie结构进行LPM规则压缩存储的方法
CN100395712C (zh) 软件系统的资源管理方法
CN101692653B (zh) 路由表的管理方法和装置
CN101350010B (zh) 一种哈希表的操作方法
CN110597805B (zh) 一种内存索引结构处理方法
CN102984071B (zh) 分段地址路由的路由表组织方法及查找路由的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant