IP Library Granted Patent US 7,620,640
Granted Patent B2
US 7,620,640 · App. 10/912,872 · Granted Nov 17, 2009

Cascading index method and apparatus

Assignee: Rightorder, Incorporated
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,620,640
App. No.
10/912,872
Granted
Nov 17, 2009
Kind
B2
Abstract

An architecture, apparatus, and method for a cascading index of a plurality of PATRICIA trie blocks are shown. The invention discloses a method of a two-dimensional indexing system using PATRICIA trie properties in both dimensions to overcome prior art imbalances in data access as well as simplifying the access solutions.

Claims (47)

1. A computer-implemented method to search a cascading index structure using a database management system comprising a processor and a memory, said processor configured to execute instructions stored in said memory, the method comprising the steps of:

providing a first index PATRICIA trie comprising a plurality of node labels, each node label referencing a block in a second index PATRICIA trie;

providing said second index PATRICIA trie comprising at least one index PATRICIA trie block, each index PATRICIA trie block comprising at least one key, each key corresponding to a prefix of a block in a PATRICIA trie structure, each key having a depth level;

providing said PATRICIA trie structure, said PATRICIA trie structure comprising a plurality of PATRICIA trie blocks, each PATRICIA trie block comprising at least one node that stores bits;

said processor receiving said first index PATRICIA trie to search said PATRICIA trie structure;

said processor checking if said first index PATRICIA trie comprises a first node label that references said second index PATRICIA trie in said cascading index structure;

if said first index PATRICIA trie references a second index PATRICIA trie, said processor checking an entire depth of said first index PATRICIA trie;

said processor checking whether a next node label matches said PATRICIA trie key;

if said next node label key matches said PATRICIA trie key, said processor adding said matched depths to said depth level;

if said next node label key is different than said second index PATRICIA trie key, said processor checking based on a second next node label of said index PATRICIA trie if said second next node label key matches said PATRICIA trie key and, if so, said processor adding a number of matched depths to said depth level; and

the processor returning said key and said depth level as results of said search if said second index PATRICIA trie key matches said PATRICIA trie structure key.

2. The method of claim 1 , further comprising the steps of:

comparing a returned value of said key and a returned value of said node label; and

performing a mismatch check if said comparing step results in inequality; otherwise, terminating said method.

3. The method of claim 1 , further comprising the step of:

initially setting said depth level to be empty.

4. The method of claim 1 , wherein said PATRICIA trie structure comprises a plurality of ternary PATRICIA trie blocks.

5. The method of claim 1 , wherein said index PATRICIA trie block comprises a ternary PATRICIA trie block.

6. The method of claim 2 , further comprising the step of:

performing a range search.

7. The method of claim 6 , said range search further comprising the steps of:

finding a first bit position of difference between said returned values; and

checking whether there is available an unlabeled branch from a first value in said depth level that is less than said first bit position and, if so, searching said unlabeled branch; otherwise, said key is not in said cascading index.

8. A computer program comprising computer executable code to search a cascading index structure, said computer program being stored on a computer readable storage medium and, when executed, said computer program implementing a method in a computer comprising the steps of:

providing a first index PATRICIA trie comprising a plurality of node labels, each node label referencing a block in a second index PATRICIA trie;

providing said second index PATRICIA trie comprising at least one index PATRICIA trie block, each index PATRICIA trie block comprising at least one key, each key corresponding to a prefix of a block in a PATRICIA trie structure, each key having a depth level;

providing said PATRICIA trie structure, said PATRICIA trie structure comprising a plurality of PATRICIA trie blocks, each PATRICIA trie block comprising at least one node that stores bits;

receiving said first index PATRICIA trie to search of said PATRICIA trie structure;

checking if said first index PATRICIA trie comprises a first node label that references said second index PATRICIA trie in said cascading index structure;

if said first index PATRICIA trie references a second index PATRICIA trie, said processor checking an entire depth of said first index PATRICIA trie;

checking whether a next node label matches said PATRICIA trie key;

if said next node label key matches said PATRICIA trie key, adding said matched depths to said depth level;

if said next node label key is different than said second index PATRICIA trie key, checking based on a second next node label of said index PATRICIA trie if said second next node label key matches said PATRICIA trie key and, if so,

adding a number of matched depths to said depth level; and

returning said key and said depth level as results of said search if said second index PATRICIA key matches said PATRICIA trie structure key.

9. The computer program of claim 8 , further comprising the steps of:

comparing a returned value of said key and a returned value of said node label; and

performing a mismatch check if said comparing step results in inequality; otherwise, terminating said code execution.

10. The computer program of claim 8 , further comprising the step of:

initially setting said depth level to empty.

11. The computer program of claim 8 , wherein said PATRICIA trie structure comprises a plurality of ternary PATRICIA trie blocks.

12. The computer program of claim 9 , wherein said index PATRICIA trie block comprises a ternary PATRICIA trie block.

13. The computer program of claim 9 , further comprising the step of:

performing a range search.

14. The computer program of claim 13 , said range search further comprising the steps of:

finding a first bit position of difference between said returned values; and

checking whether there is available an unlabeled branch from a first value in said depth level that is less than said first bit position and, if so, searching said unlabeled branch; otherwise, said key is not in said cascading index and returning such information.

Assignments (3)
LIEN RELEASE Recorded Aug 23, 2011
From: GLENN PATENT GROUP
To: RIGHTORDER, INC.
Reel/Frame 026795/0492 →
MECHANICS' LIEN Recorded Mar 30, 2006
From: RIGHTORDER, INC.
To: GLENN PATENT GROUP
Reel/Frame 017745/0472 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2004
From: SAMPLE, NEAL
To: RIGHTORDER, INCORPORATED
Reel/Frame 015274/0015 →
Continuity (2)
Provisional Application 6049510700 · Aug 15, 2003
Related Publication 20050038798A1 · Feb 17, 2005