IP Library Granted Patent US 8,996,533
Granted Patent B2
US 8,996,533 · App. 13/540,830 · Granted Mar 31, 2015

Systems and methods multi-key access to data

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 8,996,533
App. No.
13/540,830
Granted
Mar 31, 2015
Kind
B2
Abstract

A computer-implemented method of storing data for fast lookup comprises forming a first and a second array of pointers, forming a record to store, the record comprising fields for, a first list pointer, a second list pointer, which is not the first field in the record, a first key, and a second key. The method further comprises determining a first index based at least in part the first key, setting the value of the pointer at the first index in the first array to the location of the first pointer field of the record, determining a second index based at least in part the second key, and setting the value of the pointer at the second index in the second array to the location of the second pointer field of the record.

Claims (85)

1. A computer-implemented method of storing data for fast lookup, comprising:

forming a first and a second array of pointers;

forming a record to store, the record comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key;

determining a first index based at least in part on the first key;

setting the value of the pointer at the first index in the first array to the location of the first pointer field of the record;

determining a second index based at least in part on the second key; and

setting the value of the pointer at the second index in the second array to the location of the second pointer field of the record.

2. The method of claim 1 , further comprising storing an additional record also comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key,

by:

determining a third index based at least in part on the second key of the additional record, wherein the third index is equal in value to the second index;

locating the record by following the value of the pointer at the third index in the second array; and

setting the second list pointer of the record to the location of the second pointer field of the additional record.

3. The method of claim 1 , wherein the first index value is determined by calculating a hash value modulus the length of the first array.

4. The method of claim 1 , wherein the lengths of the first and second arrays are not equal.

5. The method of claim 1 , wherein the second list pointer includes information from which the offset of the second list pointer field within the record can be determined.

6. A tangible, non-transitory computer-readable medium comprising instructions that when executed on a processor enable the processor to:

form a first and a second array of pointers;

form a record to store, the record comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key;

determine a first index based at least in part on the first key;

set the value of the pointer at the first index in the first array to the location of the first pointer field of the record;

determine a second index based at least in part on the second key; and

set the value of the pointer at the second index in the second array to the location of the second pointer field of the record.

7. The medium of claim 6 , wherein the instructions further enable the processor to store an additional record also comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key

by:

determining a third index based at least in part on the second key of the additional record, wherein the third index is equal in value to the second index;

locating the record by following the value of the pointer at the third index in the second array; and

setting the second list pointer of the record to the location of the second pointer field of the additional record.

8. The medium of claim 6 , wherein instructions for determining the first index value comprise instructions for calculating a hash value modulus the length of the first array.

9. The medium of claim 6 , wherein the lengths of the first and second arrays are not equal.

10. The medium of claim 6 , wherein the second list pointer includes information from which the offset of the second list pointer field within the record can be determined.

11. A computing system, comprising:

a memory;

a processor; and

a tangible, non-transitory computer-readable medium comprising instructions that when executed on the processor enable the processor to:

form a first and a second array of pointers;

form a record to store, the record comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key;

determine a first index based at least in part on the first key;

set the value of the pointer at the first index in the first array to the location of the first pointer field of the record;

determine a second index based at least in part on the second key; and

set the value of the pointer at the second index in the second array to the location of the second pointer field of the record.

12. The system of claim 11 , wherein the instructions further enable the processor to store an additional record also comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key

by:

determining a third index based at least in part on the second key of the additional record, wherein the third index is equal in value to the second index;

locating the record by following the value of the pointer at the third index in the second array; and

setting the second list pointer of the record to the location of the second pointer field of the additional record.

13. The system of claim 11 , wherein instructions for determining the first index value comprise instructions for calculating a hash value modulus the length of the first array.

14. The system of claim 11 , wherein the lengths of the first and second arrays are not equal.

15. The system of claim 11 , wherein the second list pointer includes information from which the offset of the second list pointer field within the record can be determined.

16. A data structure in a tangible computer-readable medium comprising:

a first and a second array of pointers, each pointer directly or indirectly referencing a physical location within the medium;

a record comprising fields for:

a first list pointer,

a second list pointer, which is not the first field in the record,

a first key, and

a second key;

a first pointer located at a first index within the first array of pointers, wherein:

the first index may be determined based at least in part on the first key, and

the first pointer set to the location of the first list pointer field of the record; and

a second pointer located at a second index within the second array of pointers, wherein:

the second index may be determined based at least in part on the second key, and

the second pointer set to the location of the second list pointer field of the record.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2017
From: BREAKINGPOINT SYSTEMS, INC.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 043898/0980 →
RELEASE OF SECURITY INTEREST Recorded Apr 24, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: BREAKINGPOINT SYSTEMS, INC.
Reel/Frame 042126/0181 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: BREAKINGPOINT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2012
From: TOMLINSON, ALEXANDER I; COOK, BRENT AARON
To: BREAKINGPOINT SYSTEMS, INC.
Reel/Frame 029204/0163 →