JP5960863B1 - 検索装置、検索方法、プログラム、及び記録媒体 - Google Patents
検索装置、検索方法、プログラム、及び記録媒体 Download PDFInfo
- Publication number
- JP5960863B1 JP5960863B1 JP2015048657A JP2015048657A JP5960863B1 JP 5960863 B1 JP5960863 B1 JP 5960863B1 JP 2015048657 A JP2015048657 A JP 2015048657A JP 2015048657 A JP2015048657 A JP 2015048657A JP 5960863 B1 JP5960863 B1 JP 5960863B1
- Authority
- JP
- Japan
- Prior art keywords
- node
- leaf
- bit
- transition destination
- internal node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 230000007704 transition Effects 0.000 claims abstract description 95
- 230000006835 compression Effects 0.000 claims description 31
- 238000007906 compression Methods 0.000 claims description 31
- 238000000547 structure data Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000020169 heat generation Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- XOYCLJDJUKHHHS-LHBOOPKSSA-N (2s,3s,4s,5r,6r)-6-[[(2s,3s,5r)-3-amino-5-(5-methyl-2,4-dioxopyrimidin-1-yl)oxolan-2-yl]methoxy]-3,4,5-trihydroxyoxane-2-carboxylic acid Chemical compound O=C1NC(=O)C(C)=CN1[C@@H]1O[C@H](CO[C@H]2[C@@H]([C@@H](O)[C@H](O)[C@H](O2)C(O)=O)O)[C@@H](N)C1 XOYCLJDJUKHHHS-LHBOOPKSSA-N 0.000 description 1
- 102100040579 Guanidinoacetate N-methyltransferase Human genes 0.000 description 1
- 101000893897 Homo sapiens Guanidinoacetate N-methyltransferase Proteins 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
キーデータに基づき前記検索対象データに対する検索処理を行う演算手段と、を備える検索装置であって、
前記記憶手段に格納される前記検索対象データは、内部ノード配列とリーフノード配列を有する多進木構造のデータであり、
前記検索対象データにおける各内部ノードは、遷移先が内部ノードであるかリーフノードであるかをビットで表したビットベクトル、遷移先の1つの内部ノードの格納位置を示す第1のベース情報、及び、遷移先の1つのリーフノードの格納位置を示す第2のベース情報を含み、
前記演算手段は、
キーデータから所定ビット長のチャンクを取得し、アクセスしている内部ノードの前記ビットベクトルにおける当該チャンクの値に対応するビットに基づき、当該内部ノードからの遷移先が内部ノードであるか、リーフノードであるかを判定し、判定された遷移先が内部ノードである場合に、前記第1のベース情報を用いて当該遷移先の内部ノードにアクセスし、遷移先がリーフノードである場合に、前記第2のベース情報を用いて当該遷移先のリーフノードにアクセスする処理を、遷移先がリーフノードになるまで繰り返し実行する
ことを特徴とする検索装置が提供される。
前記記憶手段に格納される前記検索対象データは、内部ノード配列とリーフノード配列を有する多進木構造のデータであり、
前記検索対象データにおける各内部ノードは、遷移先が内部ノードであるかリーフノードであるかをビットで表したビットベクトル、遷移先の1つの内部ノードの格納位置を示す第1のベース情報、及び、遷移先の1つのリーフノードの格納位置を示す第2のベース情報を含み、
前記検索方法は、
キーデータから所定ビット長のチャンクを取得し、アクセスしている内部ノードの前記ビットベクトルにおける当該チャンクの値に対応するビットに基づき、当該内部ノードからの遷移先が内部ノードであるか、リーフノードであるかを判定し、判定された遷移先が内部ノードである場合に、前記第1のベース情報を用いて当該遷移先の内部ノードにアクセスし、遷移先がリーフノードである場合に、前記第2のベース情報を用いて当該遷移先のリーフノードにアクセスする処理を、遷移先がリーフノードになるまで繰り返し実行するステップを有する
ことを特徴とする検索方法が提供される。
本実施の形態では、本発明の検索技術の適用先の例として、ルータにおいて、受信したパケットの宛先アドレスをキーとして、ルーティングテーブル(より具体的にはフォワーディングテーブル)を最長一致で検索することにより、当該パケットの転送先とするネクストホップの情報を取得する処理を想定している。ただし、本発明の適用先はこれに限らず、本発明は最長一致に限らず、完全一致等の様々な種類の検索に適用できる。以下では、検索(探索)の対象とするデータを検索対象データと呼ぶ。また、宛先アドレス等の検索のキーとなるデータをキーデータと呼ぶ。
まず、本実施の形態に係る検索処理を実行する検索装置の構成例を説明する。図2は、本実施の形態に係る検索装置10の構成例を示す図である。
図4に、検索装置10の記憶部12に格納される検索対象データの例を示す。図4は、実施例1〜4に共通である。前述したように、本実施の形態では、マルチウェイ基数探索法をベースとした検索処理を行うことから、検索対象データは、木における各内部ノードのデータを保持するnode array(ノード配列)と、木における各リーフノードのデータであるleaf array(リーフ配列)を有する。配列として格納される各ノードのデータには、各配列のIndexを指定することでアクセスできる。
次に、実施例2として、実施例1で説明した方式に対して、リーフデータを圧縮できる方式を説明する。例えば、実施例1の方式をフォワーディングテーブルの検索に適用する際に、重複する値(ネクストホップ)を持つリーフノードが多く発生することが考えられる。実施例2は、実施例1の方式をベースとし、リーフノードを圧縮して保持できるようにしている。以下では、主に実施例1と異なる部分について説明する。
図11は、実施例3における内部ノードを示す図である。図11に示すように、実施例3においては、実施例1で説明したvector、base0、base1に加えて、maskが追加される。maskはvectorのビット長と同じビット長である。
次に、実施例4について説明する。実施例4は、実施例2、3よりも更にリーフノードを圧縮できる方式である。実施例4における内部データの構造を図14に示す。図14に示すように、実施例4の内部データは、既に説明したvector、leafvec、base0、base1に加えて、「A」で示すように、leaf maskとmasked leafが追加されたものである。記憶部12にはnode arrayとleaf arrayが格納されている。
以上、説明したように、本実施の形態では、木のデータ量を大幅に削減できることから、例えば汎用CPUのキャッシュ(例:L1、L2、L3キャッシュ)に検索対象データを格納して検索処理を実施でき、高速な検索処理を実現できる。特に、例として検索対象データが経路表である場合には、経路表内の経路数が大規模になった際に性能が低下してしまう問題点が解決される。また、処理が高速化されるため、アドレス長が長くなった際に性能が低下してしまう問題点も解決することが可能となる。
以上、説明したように、本実施の形態により、検索対象データを格納した記憶手段と、キーデータに基づき前記検索対象データに対する検索処理を行う演算手段と、を備える検索装置であって、前記記憶手段に格納される前記検索対象データは、内部ノード配列とリーフノード配列を有する多進木構造のデータであり、前記検索対象データにおける各内部ノードは、遷移先が内部ノードであるかリーフノードであるかをビットで表したビットベクトルを含み、前記演算手段は、キーデータから所定ビット長のチャンクを取得し、アクセスしている内部ノードの前記ビットベクトルにおける当該チャンクの値に対応するビットに基づき、当該内部ノードからの遷移先が内部ノードであるか、リーフノードであるかを判定し、遷移先のノードにアクセスする処理を、遷移先がリーフノードになるまで繰り返し実行することを特徴とする検索装置が提供される。
前記演算手段は、前記ビットベクトルと前記リーフベクトルのうちの前記ビットベクトルを先に調べ、当該ビットベクトルのビットの値に基づき前記リーフベクトルを使用することとしてもよい。
また、前記演算手段と前記記憶手段は、64ビットCPU上で構成することとしてもよい。また、前記チャンクは、6ビット長であり、前記ビットベクトルは、64ビット長であることとしてもよい。
また、前記演算手段と前記記憶手段は、64ビットCPU上で構成し、前記チャンクは、6ビット長であり、前記ビットベクトルは、64ビット長であり、前記演算手段は、前記64ビットCPUのpopcnt命令を用いて前記ビットの数を算出し、前記遷移先のノードへのアクセスを、ベース情報からの、当該ビットの数に基づくオフセットを用いて行うこととしてもよい。
また、前記演算手段は、前記キーデータから前記所定ビット長よりも長いビット長のチャンクを取得し、当該チャンクを用いて探索を行うことにより、ダイレクトにリーフノードに到達するようにしてもよい。
また、本実施の形態に係る検索方法を、キーデータに基づき検索対象データに対する検索処理を行う検索方法であって、前記検索対象データは、内部ノード配列とリーフノード配列を有する多進木構造のデータであり、前記検索対象データにおける各内部ノードは、遷移先が内部ノードであるかリーフノードであるかをビットで表したビットベクトルを含み、前記検索方法は、キーデータから所定ビット長のチャンクを取得し、アクセスしている内部ノードの前記ビットベクトルにおける当該チャンクの値に対応するビットに基づき、当該内部ノードからの遷移先が内部ノードであるか、リーフノードであるかを判定し、遷移先のノードにアクセスする処理を、遷移先がリーフノードになるまで繰り返し実行するステップを有する検索方法として構成してもよい。
11 演算部
12 記憶部
13 入力部
14 出力部
21 パケット処理部
22 宛先決定部
Claims (15)
- 検索対象データを格納した記憶手段と、
キーデータに基づき前記検索対象データに対する検索処理を行う演算手段と、を備える検索装置であって、
前記記憶手段に格納される前記検索対象データは、内部ノード配列とリーフノード配列を有する多進木構造のデータであり、
前記検索対象データにおける各内部ノードは、遷移先が内部ノードであるかリーフノードであるかをビットで表したビットベクトル、遷移先の1つの内部ノードの格納位置を示す第1のベース情報、及び、遷移先の1つのリーフノードの格納位置を示す第2のベース情報を含み、
前記演算手段は、
キーデータから所定ビット長のチャンクを取得し、アクセスしている内部ノードの前記ビットベクトルにおける当該チャンクの値に対応するビットに基づき、当該内部ノードからの遷移先が内部ノードであるか、リーフノードであるかを判定し、判定された遷移先が内部ノードである場合に、前記第1のベース情報を用いて当該遷移先の内部ノードにアクセスし、遷移先がリーフノードである場合に、前記第2のベース情報を用いて当該遷移先のリーフノードにアクセスする処理を、遷移先がリーフノードになるまで繰り返し実行する
ことを特徴とする検索装置。 - 前記検索対象データにおける各内部ノードについて、遷移先となる内部ノードは、前記内部ノード配列において、格納位置が連続して格納され、遷移先となるリーフノードは、前記リーフノード配列において、格納位置が連続して格納されており、
前記演算手段は、
前記ビットベクトルのビットの値に基づき判定された遷移先が内部ノードである場合に、前記第1のベース情報と、前記ビットベクトルにおける内部ノードを示すビットの数とを用いて当該遷移先の内部ノードにアクセスし、
遷移先がリーフノードである場合に、前記第2のベース情報と、前記ビットベクトルにおけるリーフノードを示すビットの数とを用いて当該遷移先のリーフノードにアクセスする
ことを特徴とする請求項1に記載の検索装置。 - 前記検索対象データにおける各内部ノードについて、遷移先となるリーフノードは、前記リーフノード配列において、格納位置が連続して格納されており、同じ値を持つリーフノードは圧縮され、複数のリーフノードは、同じ値を持つ複数のリーフノードを含まず、
前記検索対象データにおける各内部ノードは、圧縮前のリーフノードの値が変化した格納位置を示すビットを有するリーフベクトルを含み、
前記演算手段は、
前記ビットベクトルのビットの値に基づき判定された遷移先がリーフノードである場合に、前記第2のベース情報と、前記リーフベクトルにおける前記格納位置を示すビットの数とを用いて当該遷移先のリーフノードにアクセスする
ことを特徴とする請求項1に記載の検索装置。 - 前記演算手段は、前記ビットベクトルと前記リーフベクトルのうちの前記ビットベクトルを先に調べ、当該ビットベクトルのビットの値に基づき前記リーフベクトルを使用する
ことを特徴とする請求項3に記載の検索装置。 - 前記検索対象データにおける各内部ノードについて、遷移先となるリーフノードは、前記リーフノード配列において、格納位置が連続して格納されており、同じ値を持つリーフノードは圧縮され、複数のリーフノードは、同じ値を持つ複数のリーフノードを含まず、
前記検索対象データにおける各内部ノードは、圧縮前のリーフノードの値が変化した格納位置を示すビットを有するマスクベクトルを含み、
前記演算手段は、
前記ビットベクトルのビットの値に基づき判定された遷移先がリーフノードである場合に、前記第2のベース情報と、前記マスクベクトルでマスクした前記ビットベクトルにおけるリーフノードを示すビットの数とを用いて当該遷移先のリーフノードにアクセスする
ことを特徴とする請求項1に記載の検索装置。 - 前記検索対象データにおける各内部ノードについて、遷移先となる内部ノードは、前記内部ノード配列において、格納位置が連続して格納されており、同じ値を持つ内部ノードは圧縮され、複数の内部ノードは、同じ値を持つ複数の内部ノードを含まず、
前記検索対象データにおける各内部ノードは、圧縮前の内部ノードの値が変化した格納位置を示すビットを有するマスクベクトルを含み、
前記演算手段は、
前記ビットベクトルのビットの値に基づき判定された遷移先が内部ノードである場合に、前記第1のベース情報と、前記マスクベクトルでマスクした前記ビットベクトルにおける内部ノードを示すビットの数とを用いて当該遷移先の内部ノードにアクセスする
ことを特徴とする請求項1に記載の検索装置。 - 前記検索対象データの各内部ノードについて、遷移先となるリーフノードにおける所定の値がマスクされ、当該マスクされた値が別の値に変更された後に、同じ値を持つリーフノードが圧縮されたことにより、複数のリーフノードは、同じ値を持つ複数のリーフノードを含まず、前記リーフノード配列において、格納位置が連続して格納されており、
前記検索対象データにおける各内部ノードは、前記マスクされた所定の値と、当該所定の値を持つリーフベクトルの圧縮前の位置を示すビットを有するリーフマスクと、圧縮前のリーフノードの値が変化した格納位置を示すビットからなるリーフベクトルとを含み、
前記演算手段は、
前記ビットベクトルのビットの値に基づき判定された遷移先がリーフノードである場合に、前記ビットベクトルにおける当該ビットの位置と同じ位置に、前記リーフマスクにビットが立っているか否かを判定し、立っている場合に、前記所定の値を当該遷移先のリーフノードの値として取得し、立っていない場合に、前記第2のベース情報と、前記リーフベクトルにおける前記格納位置を示すビットの数とを用いて当該遷移先のリーフノードにアクセスする
ことを特徴とする請求項1に記載の検索装置。 - 前記演算手段は、当該演算手段により構成されるCPUのpopcnt命令を用いて前記ビットの数を算出する
ことを特徴とする請求項2ないし7のうちいずれか1項に記載の検索装置。 - 前記演算手段と前記記憶手段は、64ビットCPU上で構成する
ことを特徴とする請求項1ないし8のうちいずれか1項に記載の検索装置。 - 前記チャンクは、6ビット長であり、前記ビットベクトルは、64ビット長である
ことを特徴とする請求項1ないし9のうちいずれか1項に記載の検索装置。 - 前記演算手段と前記記憶手段は、64ビットCPU上で構成し、前記チャンクは、6ビット長であり、前記ビットベクトルは、64ビット長であり、
前記演算手段は、前記64ビットCPUのpopcnt命令を用いて前記ビットの数を算出し、前記遷移先のノードへのアクセスを、ベース情報からの、当該ビットの数に基づくオフセットを用いて行う
ことを特徴とする請求項2ないし7のうちいずれか1項に記載の検索装置。 - 前記演算手段は、前記キーデータから前記所定ビット長よりも長いビット長のチャンクを取得し、当該チャンクを用いて探索を行うことにより、ダイレクトにリーフノードに到達する
ことを特徴とする請求項1ないし11のうちいずれか1項に記載の検索装置。 - コンピュータを、請求項1ないし12のうちいずれか1項に記載の前記検索装置における各手段として機能させるためのプログラム。
- 請求項1ないし12のうちいずれか1項に記載の前記検索対象データを格納したコンピュータ読み取り可能な記録媒体。
- 検索対象データを格納した記憶手段と、キーデータに基づき前記検索対象データに対する検索処理を行う演算手段とを備える検索装置が実行する検索方法であって、
前記記憶手段に格納される前記検索対象データは、内部ノード配列とリーフノード配列を有する多進木構造のデータであり、
前記検索対象データにおける各内部ノードは、遷移先が内部ノードであるかリーフノードであるかをビットで表したビットベクトル、遷移先の1つの内部ノードの格納位置を示す第1のベース情報、及び、遷移先の1つのリーフノードの格納位置を示す第2のベース情報を含み、
前記検索方法は、
キーデータから所定ビット長のチャンクを取得し、アクセスしている内部ノードの前記ビットベクトルにおける当該チャンクの値に対応するビットに基づき、当該内部ノードからの遷移先が内部ノードであるか、リーフノードであるかを判定し、判定された遷移先が内部ノードである場合に、前記第1のベース情報を用いて当該遷移先の内部ノードにアクセスし、遷移先がリーフノードである場合に、前記第2のベース情報を用いて当該遷移先のリーフノードにアクセスする処理を、遷移先がリーフノードになるまで繰り返し実行するステップを有する
ことを特徴とする検索方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015048657A JP5960863B1 (ja) | 2015-03-11 | 2015-03-11 | 検索装置、検索方法、プログラム、及び記録媒体 |
PCT/JP2016/052664 WO2016143405A1 (ja) | 2015-03-11 | 2016-01-29 | 検索装置、検索方法、プログラム、及び記録媒体 |
CN201680014265.4A CN107431660B (zh) | 2015-03-11 | 2016-01-29 | 检索装置、检索方法及记录介质 |
EP16761377.7A EP3270551B1 (en) | 2015-03-11 | 2016-01-29 | Retrieval device, retrieval method, program, and recording medium |
ES16761377T ES2830746T3 (es) | 2015-03-11 | 2016-01-29 | Dispositivo de recuperación, método de recuperación, programa y medio de registro |
US15/556,527 US11762826B2 (en) | 2015-03-11 | 2016-01-29 | Search apparatus, search method, program and recording medium |
AU2016230539A AU2016230539B2 (en) | 2015-03-11 | 2016-01-29 | Retrieval device, retrieval method, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015048657A JP5960863B1 (ja) | 2015-03-11 | 2015-03-11 | 検索装置、検索方法、プログラム、及び記録媒体 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016124838A Division JP6205463B2 (ja) | 2016-06-23 | 2016-06-23 | 検索装置、検索方法、プログラム、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5960863B1 true JP5960863B1 (ja) | 2016-08-02 |
JP2016170526A JP2016170526A (ja) | 2016-09-23 |
Family
ID=56550536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015048657A Active JP5960863B1 (ja) | 2015-03-11 | 2015-03-11 | 検索装置、検索方法、プログラム、及び記録媒体 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11762826B2 (ja) |
EP (1) | EP3270551B1 (ja) |
JP (1) | JP5960863B1 (ja) |
CN (1) | CN107431660B (ja) |
AU (1) | AU2016230539B2 (ja) |
ES (1) | ES2830746T3 (ja) |
WO (1) | WO2016143405A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019098870A1 (en) * | 2017-11-20 | 2019-05-23 | Huawei Technologies Co., Ltd. | Data storage system and method of providing a data storage system |
CN108008728B (zh) * | 2017-12-12 | 2020-01-17 | 深圳市银星智能科技股份有限公司 | 清洁机器人以及基于清洁机器人的最短路径规划方法 |
JP2020004132A (ja) * | 2018-06-28 | 2020-01-09 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 検索装置、検索方法、プログラム、及び記録媒体 |
JP7088868B2 (ja) * | 2019-03-22 | 2022-06-21 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 通信装置、通信方法及びプログラム |
US11288244B2 (en) * | 2019-06-10 | 2022-03-29 | Akamai Technologies, Inc. | Tree deduplication |
US11652791B2 (en) * | 2019-08-07 | 2023-05-16 | Cisco Technology, Inc. | Consolidated routing table for extranet virtual networks |
US11683039B1 (en) | 2021-03-31 | 2023-06-20 | DreamBig Semiconductor Inc. | TCAM-based not logic |
CN115328366B (zh) * | 2022-08-11 | 2023-09-19 | 北京智慧星光信息技术有限公司 | 基于全路径计算的千万级树形节点搜索展示方法和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001517024A (ja) * | 1997-09-15 | 2001-10-02 | エフィシャント ネットワーキング アクティエボラーグ | 高速ルーティング・ルックアップのための方法とシステム |
JP2004537921A (ja) * | 2001-07-31 | 2004-12-16 | ノース・キャロライナ・ステイト・ユニヴァーシティ | 高速パケット転送のための方法及びシステム |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL100987A (en) * | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Method and device for encoding |
US5664172A (en) * | 1994-07-19 | 1997-09-02 | Oracle Corporation | Range-based query optimizer |
US6266706B1 (en) | 1997-09-15 | 2001-07-24 | Effnet Group Ab | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams |
US6522632B1 (en) * | 1998-05-06 | 2003-02-18 | Avici Systems | Apparatus and method for efficient prefix search |
JP3547625B2 (ja) | 1998-09-03 | 2004-07-28 | 三菱電機株式会社 | データ検索装置およびデータ検索方法 |
US6829695B1 (en) * | 1999-09-03 | 2004-12-07 | Nexql, L.L.C. | Enhanced boolean processor with parallel input |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
US20030208488A1 (en) * | 2000-09-20 | 2003-11-06 | North Dakota State University | System and method for organizing, compressing and structuring data for data mining readiness |
US6931418B1 (en) * | 2001-03-26 | 2005-08-16 | Steven M. Barnes | Method and system for partial-order analysis of multi-dimensional data |
US7523218B1 (en) * | 2002-04-30 | 2009-04-21 | University Of Florida Research Foundation, Inc. | O(log n) dynamic router tables for prefixes and ranges |
US7444318B2 (en) * | 2002-07-03 | 2008-10-28 | University Of Florida Research Foundation, Inc. | Prefix partitioning methods for dynamic router tables |
US6934252B2 (en) * | 2002-09-16 | 2005-08-23 | North Carolina State University | Methods and systems for fast binary network address lookups using parent node information stored in routing table entries |
US8886677B1 (en) * | 2004-07-23 | 2014-11-11 | Netlogic Microsystems, Inc. | Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length |
JP4271214B2 (ja) * | 2006-07-07 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
JP4973101B2 (ja) * | 2006-09-29 | 2012-07-11 | 日本電気株式会社 | 自動合成装置 |
US8086641B1 (en) * | 2006-11-27 | 2011-12-27 | Netlogic Microsystems, Inc. | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same |
US7831626B1 (en) * | 2006-11-27 | 2010-11-09 | Netlogic Microsystems, Inc. | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node |
EP2140376A1 (en) * | 2007-05-01 | 2010-01-06 | International Business Machines Corporation | Method and system for approximate string matching |
JP4567754B2 (ja) * | 2008-01-17 | 2010-10-20 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
CN101577662B (zh) * | 2008-05-05 | 2012-04-04 | 华为技术有限公司 | 一种基于树形数据结构的最长前缀匹配方法和装置 |
US9438413B2 (en) * | 2010-01-08 | 2016-09-06 | Novell, Inc. | Generating and merging keys for grouping and differentiating volumes of files |
US8522348B2 (en) * | 2009-07-29 | 2013-08-27 | Northwestern University | Matching with a large vulnerability signature ruleset for high performance network defense |
US8669977B2 (en) * | 2009-10-01 | 2014-03-11 | Intel Corporation | Hierarchical mesh quantization that facilitates efficient ray tracing |
EP2515245A1 (en) * | 2009-11-30 | 2012-10-24 | S. Grants Co., Ltd. | Bit stream retrieval device, retrieval method, and program |
CN102739551B (zh) * | 2012-07-17 | 2015-03-18 | 中山大学 | 多存储器流水路由体系结构 |
US20140188885A1 (en) * | 2012-12-27 | 2014-07-03 | Broadcom Corporation | Utilization and Power Efficient Hashing |
CN104052669B (zh) * | 2013-03-12 | 2018-12-07 | 凯为公司 | 用于处理交替配置的最长前缀匹配表的装置 |
WO2014145059A2 (en) * | 2013-03-15 | 2014-09-18 | Bell Tyler | Apparatus, systems, and methods for analyzing movements of target entities |
US9842132B2 (en) * | 2015-10-23 | 2017-12-12 | International Business Machines Corporation | Bloom filter index for device discovery |
-
2015
- 2015-03-11 JP JP2015048657A patent/JP5960863B1/ja active Active
-
2016
- 2016-01-29 EP EP16761377.7A patent/EP3270551B1/en active Active
- 2016-01-29 AU AU2016230539A patent/AU2016230539B2/en active Active
- 2016-01-29 US US15/556,527 patent/US11762826B2/en active Active
- 2016-01-29 ES ES16761377T patent/ES2830746T3/es active Active
- 2016-01-29 WO PCT/JP2016/052664 patent/WO2016143405A1/ja active Application Filing
- 2016-01-29 CN CN201680014265.4A patent/CN107431660B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001517024A (ja) * | 1997-09-15 | 2001-10-02 | エフィシャント ネットワーキング アクティエボラーグ | 高速ルーティング・ルックアップのための方法とシステム |
JP2004537921A (ja) * | 2001-07-31 | 2004-12-16 | ノース・キャロライナ・ステイト・ユニヴァーシティ | 高速パケット転送のための方法及びシステム |
Also Published As
Publication number | Publication date |
---|---|
WO2016143405A1 (ja) | 2016-09-15 |
EP3270551B1 (en) | 2020-10-14 |
EP3270551A4 (en) | 2018-07-18 |
JP2016170526A (ja) | 2016-09-23 |
AU2016230539A1 (en) | 2017-10-05 |
ES2830746T3 (es) | 2021-06-04 |
AU2016230539B2 (en) | 2018-08-16 |
CN107431660B (zh) | 2020-08-18 |
US20180039662A1 (en) | 2018-02-08 |
US11762826B2 (en) | 2023-09-19 |
CN107431660A (zh) | 2017-12-01 |
EP3270551A1 (en) | 2018-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5960863B1 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
KR100962653B1 (ko) | 블룸 필터 및 복수 해싱 구조를 사용한 ip 주소 검색방법 및 장치 | |
JP5529976B2 (ja) | 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ | |
US8880507B2 (en) | Longest prefix match using binary search tree | |
JP4995125B2 (ja) | 固定長データの検索方法 | |
CN105141525B (zh) | IPv6路由查找方法及装置 | |
KR100586461B1 (ko) | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 | |
JP2012524932A (ja) | アドレス検索のためのデータ構造、方法、及びシステム | |
US9729447B2 (en) | Apparatus and method for processing alternately configured longest prefix match tables | |
KR20020059238A (ko) | 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된다중탐색 트리 구조의 자료를 탐색하는 방법 | |
CN103051543A (zh) | 一种路由前缀的处理、查找、增加及删除方法 | |
WO2014047863A1 (en) | Generating a shape graph for a routing table | |
CN107729053B (zh) | 一种实现高速缓存表的方法 | |
WO2015192742A1 (zh) | 一种查找装置、查找方法和配置方法 | |
JP6205463B2 (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
Bahrambeigy et al. | Bloom-Bird: A scalable open source router based on Bloom filter | |
KR101587756B1 (ko) | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
CN106330721B (zh) | Ip路由查找方法及装置 | |
JP2018196075A (ja) | 検索装置、検索プログラム、及び検索方法 | |
Bahrambeigy et al. | Towards Accelerating IP Lookups on Commodity PC Routers using Bloom Filter: Proposal of Bloom-Bird | |
Li et al. | An IPv6 Routing Lookup Algorithm Based on Hash Table and HOT | |
JP2020004132A (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
JP3754043B2 (ja) | データ検索装置 | |
CN118282943A (zh) | 一种查找路由表项的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160502 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160623 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5960863 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |