IP Library Granted Patent US 10,262,015
Granted Patent B2
US 10,262,015 · App. 14/725,437 · Granted Apr 16, 2019

Storage and access time for records

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 10,262,015
App. No.
14/725,437
Granted
Apr 16, 2019
Kind
B2
Abstract

In an example embodiment, information to be stored in a record is received, the information comprising at least two pieces of data of at least two different data types, at least one of the data types being of a variable length. Then a data structure is created. The data structure comprises a first portion indicating an offset size, a second portion comprising an offset pointing to a third portion of the data structure, the third portion of the data structure containing a table of offsets, each offset in the table of offsets pointing to a different one of the at least two pieces of data, the at least two pieces of data stored in a fourth portion of the data structure. A schema is also created for the data structure, the schema storing metadata for the at least two pieces of data.

Claims (43)

1. A computer-implemented method executable by one or more hardware processors, the computer-implemented method comprising:

receiving information to be stored in a record, the information comprising at least two pieces of data of at least two different data types, at least one of the data types being of a variable length;

creating, by the one or more hardware processors, a data structure, the data structure comprising a first portion indicating an size for each offset field in a table of offsets, a second portion comprising an offset pointing to a third portion of the data structure, the third portion of the data structure containing the table of offsets, each offset field in the table of offsets pointing to a different one of the at least two pieces of data and having the size indicated in the first portion, the at least two pieces of data stored in a fourth portion of the data structure;

creating, by the one or more hardware processors, a schema for the data structure, the schema storing metadata for the at least two pieces of data; and

storing the data structure and the schema in a database.

2. The computer-implemented method of claim 1 , wherein the information is a forward index containing a mapping between word and/or terms and their appearances in one or more documents.

3. The computer-implemented method of claim 2 , wherein the one or more documents are member profiles in a social network, and the at least two pieces of data are different fields of a member profile.

4. The computer-implemented method of claim 3 , further comprising:

receiving a search query;

parsing the search query to discover a field in the data structure to search in response to the search query;

accessing the schema to retrieve metadata about the field to search, the metadata including an indication of how many pieces of data precede the field to search in the data structure;

traversing one or more instances of the data structure by, for each instance of the data structure, identifying the offset in the second portion of the data structure and using the offset to locate the third portion of the data structure, then identifying an offset in the table of offsets in the third portion of the data structure that corresponds to the field to search based on the retrieved metadata, then locating a piece of data stored in the fourth portion of the data structure corresponding to the identified offset in the table of offsets, and then reading the piece of data; and

forming a response to the search query based on the read piece of data for each of the one or more instances of the data structure.

5. The computer-implemented method of claim 1 , wherein the data structure is a variable-size array and each offset identifies a different byte in the variable-size array.

6. The computer-implemented method of claim 1 , wherein each offset is a number identifying a location in the data structure.

7. The computer-implemented method of claim 1 , wherein the size is one more than a total number of pieces of data stored in the data structure.

8. A computer-implemented method executable by one or more hardware processors, the computer-implemented method comprising:

receiving a search query;

parsing, using the one or more hardware processors, the search query to discover a field in a data structure to search in response to the search query;

accessing, using the one or more hardware processors, a schema to retrieve metadata about the field to search, the metadata including an indication of how many pieces of data precede the field to search in the data structure;

traversing, using the one or more hardware processors, one or more instances of the data structure by, for each instance of the data structure, identifying an offset in a second portion of the data structure and using the offset to locate a third portion of the data structure, then identifying an offset in a table of offsets in the third portion of the data structure that corresponds to the field to search based on the retrieved metadata, then locating a piece of data stored in a fourth portion of the data structure corresponding to the identified offset in the table of offsets, and then reading the piece of data; and

forming a response to the search query based on the read piece of data for each of the one or more instances of the data structure.

9. The computer-implemented method of claim 8 , wherein each of piece of data in the fourth portion of the data structure is a portion of a forward index containing a mapping between a word and/or terms and their appearances in one or more documents.

10. The computer-implemented method of claim 9 , wherein the one or more documents are member profiles in a social network, and the pieces of data are different fields of a member profile.

11. The computer-implemented method of claim 8 , wherein the data structure is a variable-size array and each offset identifies a different byte in the variable-size array.

12. The computer-implemented method of claim 8 , wherein each offset is a number identifying a location in the data structure.

13. The computer-implemented method of claim 8 , wherein a size of the data structure is one more than a total number of pieces of data stored in the data structure.

14. A non-transitory machine-readable storage medium having instruction data to cause a machine to perform the following operations:

receiving information to be stored in a record, the information comprising at least two pieces of data of at least two different data types, at least one of the data types being of a variable length;

creating, by the one or more hardware processors, a data structure, the data structure comprising a first portion indicating an size for each offset field in a table of offsets, a second portion comprising an offset pointing to a third portion of the data structure, the third portion of the data structure containing the table of offsets, each offset field in the table of offsets pointing to a different one of the at least two pieces of data and having the size indicated in the first portion, the at least two pieces of data stored in a fourth portion of the data structure;

creating, by the one or more hardware processors, a schema for the data structure, the schema storing metadata for the at least two pieces of data; and

storing the data structure and the schema in a database.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the information is a forward index containing a mapping between a word and/or terms and their appearances in one or more documents.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the one or more documents are member profiles in a social network, and the at least two pieces of data are different fields of a member profile.

17. The non-transitory machine-readable storage medium of claim 16 , wherein the operations further comprise:

receiving a search query;

parsing the search query to discover a field in the data structure to search in response to the search query;

accessing the schema to retrieve metadata about the field to search, the metadata including an indication of how many pieces of data precede the field to search in the data structure;

traversing one or more instances of the data structure by, for each instance of the data structure, identifying the offset in the second portion of the data structure and using the offset to locate the third portion of the data structure, then identifying an offset in the table of offsets in the third portion of the data structure that corresponds to the field to search based on the retrieved metadata, then locating a piece of data stored in the fourth portion of the data structure corresponding to the identified offset in the table of offsets, and then reading the piece of data; and

forming a response to the search query based on the read piece of data for each of the one or more instances of the data structure.

18. The non-transitory machine-readable storage medium of claim 14 , wherein the data structure is a variable-size array and each offset identifies a different byte in the variable-size array.

19. The non-transitory machine-readable storage medium of claim 14 , wherein each offset is a number identifying a location in the data structure.

20. The non-transitory machine-readable storage medium of claim 14 , wherein the size is one more than a total number of pieces of data stored in the data structure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2015
From: SANKAR, SRIRAM; IVCHENKO, DMYTRO ANDRIYOVICH
To: LINKEDIN CORPORATION
Reel/Frame 035772/0744 →