TW200401206A - Enhanced multiway radix tree and related methods - Google Patents

Enhanced multiway radix tree and related methods Download PDF

Info

Publication number
TW200401206A
TW200401206A TW092100241A TW92100241A TW200401206A TW 200401206 A TW200401206 A TW 200401206A TW 092100241 A TW092100241 A TW 092100241A TW 92100241 A TW92100241 A TW 92100241A TW 200401206 A TW200401206 A TW 200401206A
Authority
TW
Taiwan
Prior art keywords
key
node
layer
logical
symbol
Prior art date
Application number
TW092100241A
Other languages
English (en)
Other versions
TWI250424B (en
Inventor
Archana Nehru
Manoj Paul
Matthys Johannes Nel
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW200401206A publication Critical patent/TW200401206A/zh
Application granted granted Critical
Publication of TWI250424B publication Critical patent/TWI250424B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

200401206 ⑴ 玖、發明說明 (發明說明應敘明:發明所屬之技術領域、先前技術、内容、實施方式及圖式簡單說明) 技術領域 本發明一般關係資料結構領域及較特別地關係一增強 多路數基樹及相關方法。 先前技術 電腦系統高速處理資料的能力部份來自本身非常快速 隨機存取檔案分配表及資料庫中的特別資訊項目的能力 。快速存取特定資料係由配置在儲存媒體或記憶體内的資 料庫及表及構成的組織促成。如果是資料庫,本組織一般 包括分隔資料成為許多記錄,及各記錄分隔成為許多欄。 例如,每記錄配屬一人,及在該人的記錄中,一攔為該人 的姓名,及另外欄為該人的地址。這種組織加速找尋特別 的資料項目,因為如果欄位於各記錄的相同部份,則只有 關係欄非全部記錄而需要找尋。 從一記錄組選出用於找尋的一特別攔通常稱為一密鑰 欄,雖然密鑰可以為任何用來尋找或分類一記錄組的項目 。例如,如果利用郵區代碼尋找名,稱及地址的資料庫,則 郵區代碼即為各記錄的密鑰。各密鑰通常具有一些鏈用以 連結記錄致使如果找到密鑰,便找到相連的記錄。利用輸 入密鑰至電腦記憶體,由電子組織及尋找密鑰能較快完成 密鑰找尋。 輸入電腦系統記憶體的密鑰可按順序尋找。不過,有 許多的方法能快速又有效尋找所需要的密鑰而不必依序 檢查各密鑰。一種流線型密鑰尋找的方法係將密鑰分批成 200401206 (2) 發明說明續頁 組及使用一線型功能以發現那一批含有正確密鑰。然後從 該批抽取正確密鑰。另外的找尋方法為首先分類密鑰,致 使可根據單一品質,如密鑰的第一字母,或密鑰的數值比 對其他密鑰而獲得一密鑰。如果分類的密鑰數值太小,使 用短可執行程式執行任何分類算法均屬充分。不過,如果 密鑰數變大,使用較快的分類技術至為重要,既使該技術 對應複雜。一種最有效及最快的分類密鑰的方法係配置密 錄成樹,致使從根位置開始的尋找只需找到正確分枝、子 分枝及樹葉便可發現正確密鑰。已知有許多其他的分類方 法,例如快分法、泡沬分法、插分法、合分法、選分法、 殼分法及基數分法。 基數邏輯分類配置密鑰作為一多路數基樹("MRT”)致 使一電腦能横越樹枝,及因而很快找到所要的項目。"基 數''一詞係用來表示數字系統的基礎,例如,二進位數具 有2的基數,及十進位數具有10的基數。一般而言,基數 定義用來構造密鑰的符號的數目。一般而言,基數分類配 置資料由根據擁有的一些屬性分類各項目的資料,而非比 較其他的資料項目以尋找在配置中的對應位置。例如,如 果分類字,所有以字母” a"開頭的字歸成一组,所有以字 母” b "開頭的字歸成另一組,以此類推。然後各組的數目 以相同方法使用各字的第二字母分類。如果各組配置成一 棵樹,然後尋找一密鑰包括次序"abc",一鏈結從樹根橫 越至"a"分枝,然後從"a”分枝至〃b”子分枝,及從”b"子分 枝至"c ”樹葉。當到達"c ”樹葉時,即指向或含有識別該密 200401206 (3) 鑰相關輸入位置的一位址。該輸入可包括任佝 一記錄數、一指標至一程式的子路徑、一符號 密鑰本身。 配置在MRT的一密鑰的各符號通常稱為節| 記憶體空間稱為節點。一目錄檔案的各密鑰配 一般具有一些添加位元用來作為指標,稱為鏈 接一節點至一或更多節點,如一組子節點連接 點為橫越該樹的起點。其他的子節點可連接該 子節點及根節點之間的節點成為該子節點的- 一 M RT則為一密錄表組織成為一樹,一般標 案,其中密鑰係根據所包含符號而分類。雖然 節點對應用來構成密鑰的符號組的一各別符 節點也代表包括在沿根節點至本身路徑的母 號邏輯次序。如此,節點之間唯一路徑代表樹 唯一路徑容許取短路從根節點直接存取密鑰。 中,從根節點至密鑰最後節點的路徑其中的節 密鑰的符號數。 在已知MRT方法中,保留的記憶體空間不僅 錄輸入,也用於潛在密錄輸入,該輸入可在後 法容許的多種符號組合加入該樹。換言之,已 建造更多的MRT結構超過因要求密鑰的各符; 層而添加一已知密鑰所需。已知]VlRT方法的消 空間數可以計算。一般而言,一層分配到的記 於基數,使用M m個可能符號構成密鑰。如此 發明說明績I '項目,例如 及甚至是該 ,或儲存在 置成一 MRT 結。鏈結連 根節點,該 子節點。一 -母節點。 示一資料檔 ,MRT上各 ^,MRT的各 節點中的符 的各密鑰。 在已知MRT 點數等於該 用於實際密 來使用各方 知MRT方法 號位於不同 耗的記憶體 憶體空間等 ,在一特別 200401206 (4) 發明說明續頁 方法中m值係根據選來構成密鑰的符號的”字母”而定。例 如,使用英文字母密鑰具有2 6個可能的符號。數字密鑰具 有一 m值等於所使用數字系統的基數。例如,二進位密鑰 m等於2、十進位密鑰m等於10及十六進位密鑰m等於16。 因為已知MRT藉由分配密鑰的各符號至一含有m節點層 而產生一樹,一具有η符號的密鍮分配到η個m節點層。例 如,如果使用字"apple”作為一密鑰,密鑰的6個符號通常 各個分配一層含有2 6節點結果造成1 5 6節點的記憶體分配 。含相似符號的密鑰輸入可使用一些空節點。任何時候要 在樹上添加一具有比樹上已有的任何密鑰更多符號的密 鑰,必須添加至少一新的m節點層。利用分配密鑰的各符 號至一單獨層而分配記憶體會產生多餘的大型,較多空白 的MRT含有不易處理及橫越缓慢的大而無用記憶體空間 。如果密鑰表比較稀疏則特別真實。 實施方式 以下所述為增強多路數基樹及相關方法。本發明改變 傳統的MRT結構致使一從根節點至密鑰最後節點的路徑 中的節點數小於該密鑰的符號數。本發明用於執行在一控 制電路及/或電腦元件的記憶體中快速而有效的密鑰尋找。 本發明創造的MRT需要一減量的樹資料結構以儲存密 鑰。根據本發明的一具體實施例,使用的一增強MRT在兩 物理節點層上各產生一邏輯節點層用於密鑰的第一及最 後符號,但不產生中間節點層代表密鑰的第一及最後符號 之間的符號。如此,雖然本發明使用一缺少中間節點層的 200401206
(5) 伶明說明泠II 增強MRT,各儲存密鑰可用類似傳統不增強MRT的方法在 增強MRT上邏輯表示,同時使用較少的記憶體。 在本發明的另外具體實施例中,一增強MRT使用最短的 可能符號次序以儲存該密鑰的一輸入於該樹内。如果在節 點次序檢查中發現一節點未儲存一密錄輸入,插入一密鑰 輸入而不必為該密鑰的下一符號檢查該樹。如果沒發現空 節點及沒有對應該密鑰的下一符號的節點存在,則創造所 需要的節點及插入一密鑰輸入而不必為該密鑰的下一符 號找尋該樹。 名詞如π儲存一密鑰”、”插入一密鑰”及”儲存/插入一密 鑰的輸入”作為本發明說明使用其意義完全相同:在一增 強MRT上的一些節點儲存密鑰的一輸入。一般熟悉本技術 者會明白一輸入可為密鑰相關的一記憶體空間、一記憶體 空間的指標、一記錄的指標、一執行程序的指令及/或一 密鑰本身的說明,任何一項連結表示該密鑰的節點。 圖1顯示一電腦元件100適合用於實施本發明的具體實 施例。電腦系統1 0 0包含一處理器1 0 2、一記憶體1 0 4、一 儲存元件1 0 6、一磁碟控制器1 0 8、一鍵盤介面1 1 0及一視 訊介面1 1 2,如所示由一或更多匯流排1 1 4耦合。處理器1 0 2 存取資料,包括電腦程式儲存在儲存元件1 0 6内。另外, 處理器1 0 2轉移電腦程式進入記憶體1 0 4,及一旦留駐記憶 體1 04便執行該程式。在一具體實施例中,本發明為軟體 作為儲存程式駐在儲存元件1 〇 6。在由處理器1 0 2存取後, 本發明可在記憶體1 04内完成一或更多根據本發明的原理 200401206 (6) 發明說明冷 V y 的增強基數樹。在另外具體實施例中,本發明可為硬體或 硬體及軟體的組合位在分離模組上連結一或更多匯流排 1 1 4。一般熟悉本技術者會明白適合用於實施本發明的電 腦元件1 0 0可包含額外或不同組件。 圖2顯示一密鑰表2 0 0適合配置成電腦記憶體内的一 MRT。例如,密鑰包括2至1 1個符號,但密鑰可為任何長 度或全部相等長度。在本例中,用來構成密鑰的符號為英 文字母,但可以使用任何有限的符號組。用於標示電腦資 料檔案的標準表一般幾乎具有比本例更多的密鑰。 圖3顯示一先前技術M RT 3 0 0組織圖2所示的密錄表2 0 0 用於多路基數尋找。採用密鑰表200中的第一密鑰”ab” 2 0 2作為例子,一根節點3 0 1指向第一節點層3 0 4中的一子 節點3 02。子節點302對應密鑰"ab" 202的第一符號na"。節 點3 0 2指向第二節點層3 0 8的節點3 0 6。節點3 0 6對應密鑰 ”ab” 202的符號"b"。節點3 06指向一葉節點3 10,該點指 向密錄”ab” 202的一輸入。葉節點一般指密鐘的一輸入, 如一密鑰相關的記錄。 用於密鑰表200中的第二密鑰”abc” 204,節點306指向 —子節點3 12對應第三節點層3 14密鑰”abc” 2 04的符號"c” 。節點3 1 2指向葉節點3 1 6指向密鑰” a b c " 2 0 4的一輸入。 用於密鑰表200中的第三密鑰”abdn 206,節點3 06也指 向一子節點3 1 8對應第三節點層3 1 4的符號” d"。節點3 1 8 同樣指向葉節點3 2 0指向密鑰"ab d" 2 0 6的一輸入。 用於密鑰表200中的第四密鑰"abed” 208,節點312指向 200401206 ⑺ 發明敦明續 子節點322對應節點324之第四節點層324密鑰"abed” 的符號d 。然後節點3 2 2指向葉節點3 2 6指向密鑰 ”abed” 208 的一輸入。 用於费鑰表200中的第五密鑰”appie,,21〇 ’節點3〇2指 向子綠點3 2 8對應第二節點層3 〇 8密鑰” app丨e ” 2丨〇的符 嬈P”。節點32 8指向子節點33〇對應新節點層3 32的第二符 號P 。節點3 3 0指向節點3 3 4對應第四節點層3 3 6的符號 1節點3 3 4指向節點3 3 8對應下一節點層3 4 〇的符號” e ,, 。節點3 3 8指向節點342對應第六節點層344的符號、”。節 …3 4 2然後才a向葉郎點3 4 6指向密錄” a p p 1 e ” 2 1 〇的一輸入。 用於密鑰表200中以符號"b”開始的密鑰,第一樹層3〇4 的節點3 48對應符號”b"。用於密鑰”bl" 212,對應符號,,b,· 的節點348指向節點3 50對應第二節點層3 5 3上的符號πι” 位於對應符號"b ”的節點3 4 8的下面。然後節點3 5 〇指向葉 節點3 52再指向密鑰”bl” 2 12的一輸入。 用於密錄!’blueberries” 214 ’ 節點 3 5 0 對應”blUeberries" 2 1 4的"1 ”符號指向子節點3 5 4對應一新節點層3 5 6的符號 ’’U”。後續的子節點 3 5 8、3 62、3 66、370、374、378、382 及386對應後續層 360、 364、 368、 372、 376、 380、 384 及3 8 8中該密鑰的下一符號。然後節點3 86指向葉節點39〇 指向密錄"blueberries" 214的一輸入。 圖4顯示根據本發明的原理的一 MRT 4 0 0的第一具體實 施例,比較圖3傳統MRT的說明。根據所示的具體實施例 ’本發明創造一 MRT 400的一根節點經過組織用於儲存密 -12- 200401206 (8)
鑰,各密鑰具有一串符號。MRT 400可在一暫存器、一電 腦電子記憶體及/或一能儲存樹資料結構上的密鑰的任何 其他元件内產生。藉由各密鑰具有一葉節點指向該密鑰的 一輸入而發展MRT樹結構400。各葉節點連結樹自根節點 起” η ”層,其中η小於該葉節點對應的密鍮的符號數。只有 一種情況(其中密鑰的最後符號係用來找尋一空白節點供 儲存該密鑰的輸入的唯一符號)要根據該密鑰的所有符號 儲存一密鑰輸入,即是η等於密鑰的長度時。
根據本發明的一特徵,一增強MRT可由分配一節點"物 理”層一邏輯層數構成,該數可相相等或不等於物理層數 。物理層數代表一根據傳統MRT模式的節點層,及代表分 配給一節點層的記憶體空間的真實層。另一方面,分配邏 輯層數給一密鑰或一節點層的一選擇特徵。例如,在本發 明的一具體實施例中,邏輯層數代表密鑰長度及該層係在 一傳統MRT上其中儲存該密鑰。因為分配邏輯層數以表示 該層儲存一密鑰,利用沿樹上代表該密鑰各符號的節點之 間的路徑取代傳統MRT插入及擷取密鑰的技術,便可使用 該邏輯層數插入及擷取密鑰。例如一由7個符號組成的密 鑰會造成儲存密鑰的節點物理層分配到一個7的邏輯層值 。如果物理層數小於分配的邏輯層數,例如,物理層2分 配到一 7的邏輯層值,便可節省資源,因為在此例中,傳 統MRT儲存該密鑰需要7節點層只由2節點物理層所取代。 根據本發明的一具體實施例,說明一具有許多符號的 長密鑰只使用密鑰的第一及最後符號,只需要兩個節點物 -13 - 200401206 (9) 理層代表密鑰的第一及最後符號,第一節 邏輯層號對應傳統MRT上駐留代表該密 點層,及第二節點物理層分配一邏輯層 上駐留代表該密鑰最後符號的節點層。使 增強MRT具有鏈結(”指標")介於邏輯節點 在上述具體實施例中,一指標係儲存在-節點邏輯層中)内以引導尋找("指向”)至 密鑰最後符號(在第二節點邏輯層中)。取 橫越密鑰各後續符號之間的指標以到達 (其中儲存密鑰的一輸入)的尋找,本發明 密鑰的第一及最後符號之間,或介於比傳 的密鑰符號之間。在傳統MRT需要許多節 本發明的增強MRT中只需要兩節點層,急 根據本發明的另外特徵,儲存一密鑰於 入在儲存一或更多先前密鑰期間被忽略ί 輯節點層。如果一先前密錄儲存在一對應 號的邏輯層便特別真實,但並不分配對應 之間的中間符號的邏輯節點層。例如,一 其最後符號的邏輯基層上,因而其密錄長 不同長度的先前密鑰中被忽略的邏輯節黑 前密鑰的儲存已設立一指標路徑從先前 直接至先前密鑰的最後符號。沿這為先前 路徑尋找對應目前等候儲存密錄的長度 節點邏輯層,一種插入方法或元件可找到 發明說明泠頁 點物理層分配一 鎗第一符號的節 號對應傳統MRT 用上述技術的一 層之間。特別, -母節點(在第一 一子節點代表該 代傳統MRT需要 密鑰的最後符號 創造一路徑介於 統MRT使用較少 點層的長密鑰在 ,少數節點層。 增強MRT需要插 勺一物理及/或邏 該密鑰的最後符 第一及最後符號 密鑰目前儲存在 度需要一在儲存 ^層。換言之,先 密鑰的第一符號 密鍮創造的縮短 的一預先存在的 指標建立時通過 200401206
發明說明續畀
的所需邏輯層。例如,如果長度4的密餘需要邏輯層4,邏 輯層1已經直接連接路徑中的邏輯層1 1即是所尋找的插入 點。一種插入新密鑰需要的邏輯層的方法為插入一或更多 新密鑰及先前密鑰共用的新邏輯層致使通過新”中間”邏 輯層的指標可引導至兩種密鑰。從各密鑰的起端開始依序 處理各密鑰的後續符號,為了該兩密鑰之間相配的各對符 號插入一中間邏輯層。在兩密鑰的後續符號不相配的點並 不插入中間邏輯層。需要多一個節點層以提供一節點代表 該新密錄的最後符號。新中間節點層及預先存在節點層之 間添加及調整指標以指向代表預先存在密鑰及新密鑰的 最後符號的節點。 本發明創造的MRT結構免除許多空白節點層。如此,本 發明創造的MRT —般具有較少或沒有空白節點層,但是由刪 除密鑰輸入不含其中儲存的節點造成的空白節點層除外。
以密錄” a p p a 1 ο 〇 s a"為例,一根節點4 0 1指向樹的第一層 ,稱為第一節點層404。因為根節點40 1駐留在任何邏輯尋 找的開始層,密鑰的第一符號,即”a"用在根節點40 1層以 尋找一指標至一子節點4 0 2。如果包括尋找子節點4 0 2的第 一節點層4 0 4不存在,便加以創造。如此,如果代表符號 ” a"的子節點4 0 2不存在,便加以創造。在此點,如果子節 點4 0 2存在,但不指向任何更多的自有子節點,便可插入 新輸入"a p p a 1 ο 〇 s a ”作為子節點。欲插入新節點,便須創 造一新節點層4 0 8。用於各新層,分配一”邏輯層”用來真 實定義傳統MRT已插入輸入的層,如果密鑰的每個符號創 -15 - 200401206 (11) 造一層。設定本”邏輯層”等於插入密鑰的長度,即是新節 點層408具有一邏輯層’’9”因為插入本層的密鑰具有9個符 號。所以創造新節點4 0 9對應該密鑰的第9符號,即是 "a p p a 1 ο 〇 s a ”尾部的"a "。最後插入一由節點層4 0 8的節點 409指向的葉節點406。調整節點層404節點402的指標以指 向節點層4 0 8的節點4 0 9。
圖4所示的前述MRT具體實施例及本發明的其他特徵也 可以用執行本發明的意譯代碼解釋明白: • 創造一根節點用於儲存輸入,即是用於儲存指標至 一或更多子節點,各代表密鑰的一符號。從根節點 開始尋找一密鍮"kln的一插入點。 • 設定目前節點的邏輯層變數至根節點。 • 同時目前節點的邏輯層數小於或等於密鑰kl的長度: 0 找到一輸入τ 1,對應密鑰kl的第η個符號,η為節 點的邏輯層。
0 如果目前邏輯層等於密鑰kl的長度,則添加密鑰 k 1的輸入於本邏輯層的一節點,並結束。 • 另外如果目前邏輯層不等於密鑰kl的長度,則進入 下一節點層: 〇 如果下一節點層不存在,則創造一新節點層及分 配新層一邏輯層數等於密鑰kl的長度,及插入密 鑰k 1的輸入於本邏輯層的一節點,並結束。 • 另外如果由T 1指向的下一節點層存在,則: 〇 如果下一層的邏輯層數不大於目前層(表示本發 -16- 200401206
發明說明泠ίϊ 明已省去一些中間層),然後比較本層的任何輸 入T 2至密鑰k 1,以決定在那個預測邏輯層密鑰k 1 的符號及由T 2指向的密鑰開始不同(換言之,那 個開始符號各密鑰應相同?)。 〇 如果密鑰kl的長度致使需要一新邏輯層介於目 前層及具有由T2指向層之間,即是,在現有層之 間,然後創造一新中間層以插入密鑰kl,及一邏 輯層數對應密鑰kl及由T2指向的相同密鑰,從各 密鑰的開頭算起。 〇 在代表密鑰kl及由T2指向的密鑰的最後相同符 號的節點上,插入一新指標至由T2指向密鑰存在 的層。 • 增加目前節點至下一層。 • 結束當循環。 利用增加目前節點至下一層,代碼返回以創造一新節 點層用於儲存代表密鑰kl的最後符號的節點的密鑰kl,如 果密鑰kl的最後符號不是密鑰kl及由T2指向的密鑰之間 的最後相同符號。 上述意譯代碼執行造成使用最少的層數儲存密输的增 強MRT。如果一新密餘加入MRT,不論使用一現有節點層 或創造一最少數新節點層以維持MRT的邏輯結搆,其中準 確維持所有指標。不過,剛說明的碼執行為實施本發明的 碼執行的例子。在本發明的精神及範圍可能有許多其他的 碼變化。 200401206
發明說明泠頁 圖5為完成本發明MRT的一方法5 0 0的流程圖例子。創造 一根節點及一第一節點層5 02。隨一指標從根節點至一對 應密鑰5 04的第一符號的節點。對應密鑰的第一符號的節 點找尋至下一節點層5 0 6的指標。確定指標存在5 0 8。如果 指標不存在,則創造下一節點層,密鑰的輸入儲存在對應 密錄的最後符號的節點,分配一邏輯層數對應密錄的最後 符號的及/或密鑰的長度予節點層其中儲存該密鑰5 1 0。如 果指標存在則確定所指向的邏輯層數5 1 2。如果指標指向 具有對應於密鑰長度邏輯層數的節點層,則儲存密鑰的輸 入於一對應密鑰最後符號的節點5 1 4。如果指標指向一不 具有邏輯層數對應密鑰的最後符號及/或對應於密鑰長度 的節點層,則插入一新節點層於現有層之間,密餘的輸入 儲存在對應密鑰的最後符號的節點,及分配一邏輯層數予 對應於密鑰長度的層5 1 6這種方法的例子係用來說明本發 明。本方法的變化包括儲存密鑰使用密鑰長度以外的不同 規範。例如,其他方法必須配置增強MRT以產生根節點及 連接的密錄輸入的節點之間最短路徑。其他的變化中,本 方法根據MRT唯一預先存在密鑰的最短的密鑰符號次序 儲存密鑰。 圖6為根據本發明一特徵用於尋找一增強MRT 600的方 法的例子。根節點找尋一指標至對應該密鑰的第一符號的 一節點602。對應該密鑰的第一符號的節點找到至下一節 點層的一指標604。檢查下一節點層以確認是否分配的邏 輯層數對應於該密鍮的長度606。如果下一節點層的邏輯 -18- 200401206 (14) 發明說明行页 層數等於密鑰的長度,則於本節點層上找到的該密鑰的輸 入6 0 8。根據MRT上存在的輸入找尋該密錄的輸入。如果 密鑰沒有儲存輸入,尋找歸零並結束609。如果找尋找到 密鑰的一輸入,同樣結束尋找6 0 9。如果下一節點層未分 配等於密鑰的長度的相同邏輯層數,則於本目前節點層找 尋至再下一節點層的指標6 1 0。重複本方法直到發現密鑰 的輸入,不再有至後續節點層的指標,及/或已找到對應 該密鑰的所有符號的節點層數6 1 2。 圖7為示本發明的MRT 700的第二具體實施例。用於儲 存密鑰”b 1”,根節點70 1找尋一指標至節點層702及特別找 尋對應符號nb”的節點。如果對應符號”b”的節點不存在, 創造一新節點704對應符號”b"。(如果節點704己經存在, 本節點找尋至下一節點層的指標。)因為指標不存在,創 造一新節點層7 0 6 (邏輯層等於2)。在節點層7 0 6重複相同 的程序找尋該密鑰的第2符號"Γ。創造節點7 0 8對應” 1"及 連接一葉節點710至節點708用於指向密鑰”bl”的一輸入。 用於密鑰"blueberries”,對應符號"b"的節點704找尋至 下一層的指標。節點704己具有指向下一節點層706的指標 ,然後找尋密鑰的第2符號”1”。節點70 8對應π 1”。節點708 找尋指向下一節點層上的任何子節點指標。如果指向下一 節點層的指標不存在,則創造下一節點層7 1 2及建立一指 標。因為"b 1 u e b e r r i e s ”的密錄長度為1 1個符號,分配新節 點層7 1 2的邏輯層數等於1卜在新節點層7 1 2上創造一新節 點714對應該密鑰的第ll個符號,即是|’blueberries”的最 (15) (15)200401206 發明說·明 後"S"。最後’連接一葉節點716至節點714用於指向密輪 "blueberries"的一輸入。調整對應,的節點7〇8的指標以 指向對應"s 〃的節點7 1 4。 如上述,密鑰"bl" 710及密錄"blueberries” 716的輸入 連接增強MRT的相鄰物理層706、712。不過,這些相鄰物 理層邏輯上並不相鄰。層706分配的邏輯層為2而層712分 配的邏輯層為1 1。如果一新密鑰只需一邏輯層對應於本身 後鑰長度用於M RT儲存’而與先前儲存具有相同開始符麥 ,例如”bl"及"blueberries”,的密鑰的長度不等相差超過 一個符號時,便發生邏輯層跳躍現象。增強MRT添加一新 密鑰需要跳躍MRT上現存兩相鄰層之間尚未存在的邏輯 層。新的邏輯必須插入現存兩相鄰層之間,及必須調整現 存兩相鄰層之間的預存的指標以維持指向完整其中包括 新邏輯層。 根據本發明的層插入特徵,圖7顯示插入一新節點邏輯 層718介於節點層702及720之間。先將密鑰”archie”插入 窗700,首先在具有一邏輯層等於丨的節點層上創、生 對應符號”a”的節點704,然後創造下一節點層72〇及分: 一邏輯層6予節點層72〇。創造節點722於節點層72〇以對應 'archie”的最後符號"e”,及連接 " arCllie的—輸入724至節 點722。節點層7〇2及節層7 間的知榡從對應符號"a,, 的即』702依序處理至對應符號”e"的節 。2 2。播入新來 鑰丨’訂。,,於MRT 7〇〇,—新節點邏輯層718 7〇2及節‘點層72〇之間。 /頁插入即點層 -20- 200401206 (16) 發明說明绩頁
從根節點70 1到達節點702,對應儲存新密鑰的第一符 號"a ”,節點7 0 2找尋指標,及發現一指標7 2 6至下一節點 720(在此,節點層718尚不存在)。決定指標726指向具有 邏輯層6的節點層720。密鑰”arc”需要一節點層具有一邏 輯層等於3。節點層7 2 0找尋一密鑰輸入,及找到密鑰 ” archie” 724的輸入。插入”arc”密鑰,及從開始符號開始 比較指向”arc hie”的密鑰並依序處理直到符號分散。在一 對應兩密鑰相同符號部份的最後符號的邏輯層插入新中 間邏輯層718。密鍮”arc"及密鑰”archie”具有前面三個符 號相同,所以新邏輯層7 1 8插入及分配一邏輯層等於3對應 各密鑰的符號Mc"。”c”符號與密鑰"arc”的最後符號重疊, 所以” arc ”的輸入7 2 8連接對應符號n c 的節點7 3 0。
如果儲存密錄由"a r c u s ”取代"a r c ”,則添加一具有一邏 輯層等於5的額外節點層予節點層7 1 8,指向代表”arcus” 及”archie”的最後共同符號”c"的節點73 0。代表符號”c”節 點73 0己經成為分枝點用於橫越該樹至”arcus”及”archie” 。但是因為密鑰”arcn結束的符號在至"archie1'的路徑内, 儲存”arc”並不需要額外的節點層(即是,密鑰”arc"的開始 符號為密鑰”archie"的一子集符號)。 調整先前指標7 2 6以容納新的節點層7 1 8,如下。插入 一新中間節點層7 1 8的方法己經建立一指標7 3 2介於節點 7 0 2及節點7 3 0之間。建立一新指標7 3 4介於節點層7 1 8的節 點73 0及節點層720的節點722之間。先前找尋密鑰"archie" 係經過邏輯層1及6。在添加新節點邏輯層7 1 8後,現在找 -21 - 200401206 (17) 尋密錄"a r c h i e "須經過邏輯層1、3及6。如此,一飽和的增 強MRT具有密鑰包含相似符號接近傳統MRT結構的外觀 。不過,本發明的一種稀疏生長的樹比傳統MRT稀疏生長 的樹更有效。 圖8顯示實施本發明的一種裝置800。一接收器802接收 密鑰,各密鑰具有一串符號。一暫存器804耦合接收器802 儲存密鑰的符號作為代表一密鑰表的樹資料結構的節點 。因為需要用於根據密鑰的一符號以儲存一密鑰的輸入, 一節點產生器806添加一節點807至該樹。儲存規範使用的 符號為代表密鑰長度的密鑰的最後符號,或在一變化中為 ,如需要,加在密鑰前面符號之後,形成所需的最短符號 次序以儲存該密鑰輸入於該樹的一未儲存其他密鑰輸入 的一節點。一插入器8 0 8儲存節點8 0 7的各接收密鑰的輸入 或由節點發生器806產生的節點807指向的記憶體空間。 該裝置包括一密鑰找尋器8 1 0以橫越該樹以找尋一密 鑰。在一具體實施例中,一密鑰找尋器8 1 0找尋一儲存密 鑰8 1 2隨一指標8 1 4至一節點8 1 6對應相同的第一符號作為 找尋密鑰的第一符號。密鑰找尋器810確定節點816的邏輯 層數,及如果節點816的邏輯層不是所找尋密錄的邏輯層 ,節點8 1 6找尋一指標對應找尋中的儲存密鑰8 1 2的下一符 號。如果指標8 1 8存在,密鑰找尋器8 1 0隨指標8 1 8至位於 下一邏輯層上的一後續節點8 1 2,及確定包含節點8 1 2的層 的邏輯層數。如果邏輯層數符合先前找尋密鑰812預期的 邏輯層數,則密錄8 1 2相關的輸入在本層上找到。找到儲 200401206 (18) 發明說明泠頁 存密鑰8 1 2。密鑰找尋器8 1 0重複本方法找尋下一節點層及 -確定邏輯層數直到發現密鑰的輸入,不再有至下節點層的 指標,或已找到對應密鑰的所有符號的節點層。 在某些裝置變化中,節點為一記憶體空間及密鑰為記 憶體空間的一輸入。本發明的裝置8 0 0可用模組說明,其 中有些模組處理密鑰的接收及插入記憶體,如一接收器 8 0 2及一插入器8 0 8,及其他動態分配記憶體如暫存器7 0 4 及節點產生器8 0 6。雖然,本發明的一裝置具體實施例8 0 0 Φ 為了簡化,以”模組”說明一或更多電路、組件、暫存器、 _ 處理器、軟體子常式、物件或其中任何組合可以用來取代 一、一些或全部模組。 圖9為根據本發明的另外具體實施例的一製造商品9 0 0 的示意圖,該製商品包括一機器可讀取媒體,以提供指令 9 02使機器完成一增強MRT及/或一或更多本發明相關的 方法。 上述的方法及裝置為其最基本形式但在不背離本發明 φ 基本範圍下可以做修改。一般熟悉本技術者會明白還可以 作許多修改及調整。所提供的特別具體實施例只用來說明 ,並不限制本發明。本發明的範圍非由提供的特別具體實 施例,而由以下的申請專利範圍決定。 圖式簡單說明 圖I為適合實施本發明一些具體實施例的一電腦元件 _ 的示意圖。 圖2為由先前技術MRT及本發明的MRT尋找及組織的一 -23 - 200401206 (19) iPVIi兒明泠頁 密鑰表。 圖3為一先前技術MRT示意圖。 圖4為根據本發明的一特徵增強MRT的第一具體實施例 的示意圖。 圖5為完成本發明的一增強MRT的方法的流程圖例子。 圖6為根據本發明一特徵用於尋找一增強MRT的方法的 流程圖例子。 圖7為根據本發明的一特徵增強MRT的第二具體實施例 的示意圖。 圖8為完成本發明的一增強MRT的裝置700的方塊圖例 子 0 圖9為一製造商品的示意圖,該製品包括一機器可讀取 媒體,以提供指令使機器完成一增強MRT及/或一或更多 本發明相關的方法。 圖式代表符號說明 100 電腦元件 1 0 2 處理器 1 0 4 記憶體 106 儲存元件 1 0 8 磁碟控制器 110 鍵盤介面 112 視訊介面 114 匯流排 200 密鑰表
發明說明續頁 多路數基樹的先前技術 根節點 子節點 莱節點 本發明的多路數基樹 根節點 子節點 葉節點 本發明的多路數基樹 根節點 子節點 葉節點 實施本發明的裝置 接收器 暫存器 節點產生器 節點 插入器 密鑰找尋器 密鑰 4:匕 ?日 節點 指標 製造商品 -25 -

Claims (1)

  1. 200401206 拾、申請專利範圍 1. 一種方法,其包括: 分配一邏輯層數予包括一串符號的一密錄的一符號 ;及 儲存該密鑰的一輸入於一多路數基樹的一節點層, 其至少部份根據該邏輯層數取代根據代表該密鑰各符 號節點之間的一路徑。 2. 如申請專利範圍第1項之方法,其中資料結構由節點層 根據分配予該節點層的邏輯層數的上升值配置構成。 3. 如申請專利範圍第2項之方法,其中使用一最小量的密 鑰符號以區別該密鑰與儲存在該樹上的其他密鑰,及 該資料結構只具有區別該密鑰與儲存在該樹上的其他 密鑰用的該密鑰符號的節點層。 4. 如申請專利範圍第2項之方法,其中找尋該密鑰係使用 對應於該密鑰一長度的該邏輯層數以發現儲存該密鑰 的該節點層。 5. —種方法,其包括: 創造一樹的一根節點及第一節點層,以儲存密鍮於 一記憶體内,各密鑰具有一串符號; 從該根節點至對應一密錄的該第一符號的該第一節 點層的一節點創造一指標; 創造一第二節點層,以儲存位在對應該密鑰的最後 符號的一節點的該密鑰的一輸入;及 從對應該密鑰的該第一符號的該第一節點層的該節 200401206 巾請参利範 點至對應該密鑰的最後符號的該第二節點層的該節點 創造一指標。 6. 如申請專利範圍第5項之方法,進一步包括對應該密鑰 的該第一符號至該第一節點層的該邏輯層值分配一第 一邏輯層值1 ;及 分配一第二邏輯層值η至對應該密鑰最後符號的該 第二節點層的該邏輯層值,其中η等於該密鑰的符號數。 7. 如申請專利範圍第6項之方法,其中用以儲存位在對應 該新密錄的最後符號的一節點的一新密鑰的一輸入的 一新節點層係根據上升邏輯層數,並依照該樹的所有 節點層次序加入及/或插入該樹的現有節點層之間。 8. 如申請專利範圍第7項之方法,進一步包括重配置存在 一母節點層及一子節點層之間的指標,當在該母節點 層及該子節點層之間插入介於該母節點層及該子節點 層的邏輯層數之間具有邏輯層數的一節點層。 9. 如申請專利範圍第8項之方法,其中重配置包括在介於 代表一密鑰的符號的節點之間維持一邏輯路徑,因為 代表該密鑰一第一符號及該密鑰一最後符號節點之間 的邏輯層數改變。 10. —種方法,其包括: a) 確定一邏輯層數對應於一密鑰的長度,其包括一串 組成一節點樹的密鑰輸入儲存表中的η個符號; b) 從該樹的一根節點找尋一指標至一對應該密鑰的 一第一符號的一節點; 200401206 C)從對應該密鑰的該第一符號的該節點找尋一指標 -至一下一節點層; d) 確認是否該下一節點層分配的邏輯層數對應於該 密鑰的該長度; e) 在該下一節點層上找尋該密鑰的一輸入,如果該下 一節點層分配到該邏輯層數; f) 在該下一節點層上找尋一指標至一再下一節點層 ,如果該下一節點層未分配到對應於該密鑰的該長 _ 度的邏輯層數;及 - g) 重複d至f直到發現該密鑰的輸入之一,不再有至後 續節點層的指標,及已經找到對應該密鑰的所有符 號的一些節點層。 11.如申請專利範圍第1 0項之方法,進一步包括如果該密 錄未發現則插入一新節點層以儲存該密錄,包括: 從該根節點至對應該密鑰的該第一符號的該節點跟 隨一第一指標; 籲 從對應該密鑰的該第一符號的該節點找尋一第二指 標至一下一節點層; 如果該第二指標不存在則創造一下一節點層,儲存 該密鑰的一輸入於對應該密鑰的該最後符號的一節點 _ ,及分配邏輯層數對應於該密錄的一長度予該節點層 ,其中儲存該密鑰; 如果該第二指標存在及指向具有對應於該密鑰的該 長度的邏輯層數的一節點層,則將該密鑰的一輸入儲 200401206 存於一對應該密鑰該最後符號的一節點;及 如果該第二指標存在及指向不具有對應於該密錄一 長度一邏輯層數的一節點層,則插入一新節點層以儲 存該密鑰的一輸入,及根據該樹的所有節點層的該邏 輯層數的上升值,從該根節點開始插入該新層。 12. —種裝置,其包括:
    一儲存一密鑰的一輸入之暫存器,該密鑰具有一串 代表一密鑰表的一樹資料結構的符號;及 一添加一節點至該樹之節點產生器,以根據該密鑰 的最後符號儲存該密鑰的輸入,其中該節點分配到一 邏輯層數對應於該密鑰的長度;及 其中儲存該密錄的該節點的該邏輯層數係用來找尋 代替介於對應該密鑰各符號的節點之間的一路徑的該 密鑰。 13. 如申請專利範圍第1 2項之裝置,進一步包括:
    一接收器,以接收密鑰;及 一插入器,以插入儲存於由該節點產生器產生的該 節點内的各密鑰的一輸入。 14. 如申請專利範圍第1 2項之裝置,進一步包括: 一發現器至: 跟隨一指標至對應該找尋密鑰的該第一符號的一節點; 雖然該密鑰在找尋中,從對應該密鎗的該第一符號 的該節點找尋一指標至一具有該邏輯層數的一節點層 :及 .4 - 200401206 由a專利花ίΐ]泠疗 在具有該找尋密鑰的該邏輯層數的該節點層上找尋 該密鑰的一輸入。 15. —種製造商品,其包括: 一包括指令之機器可讀媒體,其執行該指令時造成 一機器: 產生一樹以用於儲存密鑰於一記憶體内,該樹具有 一根節點,各密鑰具有一串符號; 接收一密鑰,其具有一輸入以儲存於該樹的一節點 内;及 儲存該密鑰的一輸入於對應該密鑰的最後符號的一 節點内,該密鑰位於分配到一邏輯層數對應於該密鑰 的長度的一節點層。 16. 如申請專利範圍第1 5項之製造商品,進一步包括指令 ,執行該指令時造成一機器: a) 藉由確認一邏輯層數對應於該密鑰的該長度,找尋 一包括一串組成一節點樹的密錄輸入一儲存表中 的η個符號的一密鑰的一輸入; b) 從一樹的根節點找尋一指標至一對應該密鑰的一 第一符號的一節點; c) 從對應該密鑰的該第一符號的節點找尋一指標至 一下一節點層; d) 確認是否該下一節點層分配的邏輯層數對應於該 密鑰的該長度; e)如果該下一節點層分配到該邏輯層數,在該下一節 200401206 點層上找尋該密鑰的一輸入; f) 如果一母節點層未分配到對應於該密錄的該長度 的該邏輯層數,找尋一指標至再下一節點層;及 g) 重複d至f直到發現該密鑰的一輸入,不再有至後續 節點層的指標,及已經找到對應該密鑰的所有符號 的一些符號的一些節點層。
    17.如申請專利範圍第1 5項之製造商品,進一步包括指令 ,執行該指令時造成一機器: 從該根節點至對應該密鑰的該第一符號的該節點跟 隨一第一指標; 從對應該密鑰的該第一符號的該節點找尋一第二指 標至一下一節點層;
    如果該第二指標不存在,則創造一下一節點層,儲 存該密鑰的一輸入於對應該密鑰的該最後符號的一節 點,及分配邏輯層數對應該密鑰的該最後符號予該節 點層,其中儲存該密鑰; 如果該第二指標存在及指向具有對應於該密鑰一長 度的一邏輯層數的一節點層,則將該密鑰的一輸入儲 存於一對應該密鑰該最後符號的一節點;及 如果該第二指標存在及指向不具有對應於該密鑰該 長度的一邏輯層數的一節點層,則插入一新節點層以 儲存該密鑰的一輸入,及根據該樹的所有節點層的邏 輯層數的上升值的次序,從該根節點開始上升插入該 新層。
TW092100241A 2002-01-08 2003-01-07 Method and apparatus for enhancing multiway radix tree TWI250424B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/043,764 US7062499B2 (en) 2002-01-08 2002-01-08 Enhanced multiway radix tree and related methods

Publications (2)

Publication Number Publication Date
TW200401206A true TW200401206A (en) 2004-01-16
TWI250424B TWI250424B (en) 2006-03-01

Family

ID=21928762

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092100241A TWI250424B (en) 2002-01-08 2003-01-07 Method and apparatus for enhancing multiway radix tree

Country Status (6)

Country Link
US (1) US7062499B2 (zh)
EP (1) EP1466277A2 (zh)
CN (1) CN100377154C (zh)
AU (1) AU2003235727A1 (zh)
TW (1) TWI250424B (zh)
WO (1) WO2003058512A2 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028042B2 (en) * 2002-05-03 2006-04-11 Jorma Rissanen Lossless data compression system
FR2866735B1 (fr) * 2003-09-22 2008-06-27 Kode Procede d'organisation d'une base de donnees
US8180802B2 (en) * 2003-09-30 2012-05-15 International Business Machines Corporation Extensible decimal identification system for ordered nodes
US7370058B2 (en) * 2003-10-28 2008-05-06 International Business Machines Corporation Algorithm for sorting bit sequences in linear complexity
US7467138B2 (en) * 2003-10-28 2008-12-16 International Business Machines Corporation Algorithm for sorting bit sequences in linear complexity
US20060004791A1 (en) * 2004-06-21 2006-01-05 Kleewein James C Use of pseudo keys in node ID range based storage architecture
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
US7747599B1 (en) 2004-07-23 2010-06-29 Netlogic Microsystems, Inc. Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations
US7987205B1 (en) 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
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
US7953721B1 (en) 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
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
US8094157B1 (en) * 2007-08-09 2012-01-10 Nvidia Corporation Performing an occurence count of radices
US20090138500A1 (en) * 2007-10-12 2009-05-28 Yuan Zhiqiang Method of compact display combined with property-table-view for a complex relational data structure
US7788268B2 (en) * 2008-01-08 2010-08-31 International Business Machines Corporation In-place sorting using node specific mask width
US8095548B2 (en) 2008-10-14 2012-01-10 Saudi Arabian Oil Company Methods, program product, and system of data management having container approximation indexing
TWI483138B (zh) * 2012-10-12 2015-05-01 Acer Inc 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體
US11068620B2 (en) 2012-11-09 2021-07-20 Crossbar, Inc. Secure circuit integrated with memory layer
US9823896B2 (en) * 2014-01-29 2017-11-21 International Business Machines Corporation Parallelized in-place radix sorting
US9824111B2 (en) * 2014-01-29 2017-11-21 International Business Machines Corporation Parallelized in-place radix sorting
US9396286B2 (en) 2014-05-07 2016-07-19 Red Hat Israel, Ltd. Lookup with key sequence skip for radix trees
CN105830041B (zh) * 2014-11-27 2019-06-18 华为技术有限公司 元数据的恢复方法及装置
US9946512B2 (en) * 2015-09-25 2018-04-17 International Business Machines Corporation Adaptive radix external in-place radix sort
US10067966B2 (en) * 2015-09-29 2018-09-04 Vmware, Inc. Leveraging hierarchy in a tree data structure to dynamically allocate keys
US10262016B2 (en) 2015-09-29 2019-04-16 Vmware, Inc. Tuning key space at the time of instantiation of a tree data structure
US11829398B2 (en) * 2020-04-10 2023-11-28 Salesforce, Inc. Three-dimensional probabilistic data structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202986A (en) * 1989-09-28 1993-04-13 Bull Hn Information Systems Inc. Prefix search tree partial key branching
US5095458A (en) * 1990-04-02 1992-03-10 Advanced Micro Devices, Inc. Radix 4 carry lookahead tree and redundant cell therefor
US5546390A (en) * 1994-12-29 1996-08-13 Storage Technology Corporation Method and apparatus for radix decision packet processing
US5873078A (en) * 1996-07-19 1999-02-16 Bay Networks, Inc. Radix tree search logic
US5857196A (en) * 1996-07-19 1999-01-05 Bay Networks, Inc. Method for storing a tree of potential keys in a sparse table
SE510000C2 (sv) * 1997-07-21 1999-03-29 Ericsson Telefon Ab L M Struktur vid databas
US6396842B1 (en) * 1998-04-30 2002-05-28 3Com Corporation Method of searching using longest match based Randix Search Trie with variable length keys and having prefix capability
US6298340B1 (en) * 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure

Also Published As

Publication number Publication date
WO2003058512A2 (en) 2003-07-17
US7062499B2 (en) 2006-06-13
EP1466277A2 (en) 2004-10-13
AU2003235727A1 (en) 2003-07-24
TWI250424B (en) 2006-03-01
CN100377154C (zh) 2008-03-26
WO2003058512A3 (en) 2004-04-29
US20030130981A1 (en) 2003-07-10
CN1613073A (zh) 2005-05-04

Similar Documents

Publication Publication Date Title
TW200401206A (en) Enhanced multiway radix tree and related methods
US9406381B2 (en) TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules
US6564211B1 (en) Fast flexible search engine for longest prefix match
US4922417A (en) Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers
EP2069979B1 (en) Dynamic fragment mapping
US7756859B2 (en) Multi-segment string search
US20160103858A1 (en) Data management system comprising a trie data structure, integrated circuits and methods therefor
JPH08255176A (ja) データベースのテーブルを比較する方法及びシステム
US8892566B2 (en) Creating indexes for databases
CN108369497B (zh) 在示例编程中从输入模式中进行学习
US8090722B2 (en) Searching related documents
JP3630057B2 (ja) 検索用データ構造構築方法、その装置、及び機械可読プログラム記録媒体
JP2023501010A (ja) TextRankに基づくアプリケーション選好テキストの分類方法
CN114491172A (zh) 树形结构节点的快速检索方法、装置、设备及存储介质
JP2002313086A (ja) 情報検索装置
US7933885B1 (en) Longest matching prefix search engine with hierarchical decoders
WO2002091386A1 (fr) Memoire associative, procede de recherche dans ladite memoire, dispositif de reseau et systeme de reseau
CN108304291B (zh) 测试输入信息检索装置和方法
JPS60105039A (ja) 文字列照合方式
JP5912714B2 (ja) データ構造、データ構造生成方法、情報処理装置、情報処理システム、及び情報処理プログラム
CN114036371A (zh) 搜索词推荐方法、装置、设备和计算机可读存储介质
Karimov Data Structures and Algorithms in Swift
US8849866B2 (en) Method and computer program product for creating ordered data structure
US6901396B1 (en) Packed radix search tree implementation
JPH10240741A (ja) 木構造型データの管理方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees