IP Library Granted Patent US 8,799,229
Granted Patent B2
US 8,799,229 · App. 13/725,430 · Granted Aug 5, 2014

Searchable archive

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,799,229
App. No.
13/725,430
Granted
Aug 5, 2014
Kind
B2
Abstract

An apparatus, computer-readable medium, and computer-implemented method for generating a searchable archive, the method including receiving a set of tabular data comprising a plurality of rows, storing data corresponding to a group of rows in the plurality of rows in a compacted file, the compacted file comprising one or more compressed segments. The compressed segments can store data corresponding to a portion of the rows in the group of rows and can store the data corresponding to the group of rows in column-major order. The compressed segments can store one or more token values corresponding to one or more data values in the set of tabular data and the token values can be generated by dividing the set of tabular data into columns and assigning a different token to each unique data value within each of the columns.

Claims (73)

1. A computer-implemented method for generating a searchable archive executed by one or more computing devices, the method comprising:

receiving, by at least one of the one or more computing devices, one or more data values;

determining, by at least one of the one or more computing devices, one or more domains associated with the one or more data values, wherein each of the one or more data values is associated with a corresponding domain in the one or more domains;

generating, by at least one of the one or more computing devices, a domain structure for the one or more domains, wherein the domain structure identifies which of the one or more data values correspond to each domain in the one or more domains;

generating, by at least one of the one or more computing devices, one or more token columns from the one or more data values, wherein each token column corresponds to a domain in the one or more domains, and each unique token in the token column corresponds to a unique data value in the corresponding domain;

creating, by at least one of the one or more computing devices, one or more compressed token column segments from the one or more token columns; and

generating, by at least one of the one or more computing devices, one or more compacted files from the one or more compressed token column segments.

2. The computer-implemented method of claim 1 , wherein creating one or more compressed token column segments comprises:

dividing the one or more token columns into one or more token column segments, wherein each of the one or more token column segments has associated token column segment metadata relating to the tokens stored in that token column segment; and

creating one or more compressed token column segments from the one or more token column segments.

3. The computer-implemented method of claim 2 , wherein the one or more compacted files include the token column segment metadata associated with the one or more token column segments.

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

dividing, by at least one of the one or more computing devices, the domain structure into one or more domain structure segments;

determining, by at least one of the one or more computing devices, domain metadata from the domain structure segments; and

compressing, by at least one of the one or more computing devices, the one or more domain structure segments to generate one or more compressed domain structure segments;

wherein the one or more compacted files include the one or more compressed domain structure segments.

5. An apparatus for generating a searchable archive, the apparatus comprising:

one or more processors; and

one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

receive one or more data values;

determine one or more domains associated with the one or more data values, wherein each of the one or more data values is associated with a corresponding domain in the one or more domains;

generate a domain structure for the one or more domains, wherein the domain structure identifies which of the one or more data values correspond to each domain in the one or more domains;

generate one or more token columns from the one or more data values, wherein each token column corresponds to a domain in the one or more domains, and each unique token in the token column corresponds to a unique data value in the corresponding domain;

create one or more compressed token column segments from the one or more token columns; and

generate one or more compacted files from the one or more compressed token column segments.

6. The apparatus of claim 5 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to create one or more compressed token column segments further cause at least one of the one or more processors to:

divide the one or more token columns into one or more token column segments, wherein each of the one or more token column segments has associated token column segment metadata relating to the tokens stored in that token column segment; and

create one or more compressed token column segments from the one or more token column segments.

7. The apparatus of claim 6 , wherein the one or more compacted files include the token column segment metadata associated with the one or more token column segments.

8. The apparatus of claim 5 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

divide the domain structure into one or more domain structure segments;

determine domain metadata from the domain structure segments; and

compress the one or more domain structure segments to generate one or more compressed domain structure segments;

wherein the one or more compacted files include the one or more compressed domain structure segments.

9. At least one non-transitory computer-readable medium storing computer-readable instructions that, when executed by one or more computing devices, cause at least one of the one or more computing devices to:

receive one or more data values;

determine one or more domains associated with the one or more data values, wherein each of the one or more data values is associated with a corresponding domain in the one or more domains;

generate a domain structure for the one or more domains, wherein the domain structure identifies which of the one or more data values correspond to each domain in the one or more domains;

generate one or more token columns from the one or more data values, wherein each token column corresponds to a domain in the one or more domains, and each unique token in the token column corresponds to a unique data value in the corresponding domain;

create one or more compressed token column segments from the one or more token columns; and

generate one or more compacted files from the one or more compressed token column segments.

10. The at least one non-transitory computer-readable medium of claim 9 , wherein the instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to create one or more compressed token column segments further cause at least one of the one or more computing devices to:

divide the one or more token columns into one or more token column segments, wherein each of the one or more token column segments has associated token column segment metadata relating to the tokens stored in that token column segment; and

create one or more compressed token column segments from the one or more token column segments.

11. The at least one non-transitory computer-readable medium of claim 10 , wherein the one or more compacted files include the token column segment metadata associated with the one or more token column segments.

12. The at least one non-transitory computer-readable medium of claim 9 , further storing computer-readable instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to:

divide the domain structure into one or more domain structure segments;

determine domain metadata from the domain structure segments; and

compress the one or more domain structure segments to generate one or more compressed domain structure segments;

wherein the one or more compacted files include the one or more compressed domain structure segments.

13. A computer-implemented method of generating a searchable archive by one or more computing devices, comprising:

receiving, by at least one of the one or more computing devices, one or more data values;

determining, by at least one of the one or more computing devices, one or more domains associated with the one or more data values, wherein each of the one or more data values is associated with a domain in the one or more domains;

generating, by at least one of the one or more computing devices, a domain structure for the one or more domains, wherein the domain structure identifies which of the one or more data values correspond to each domain in the one or more domains; and

generating, by at least one of the one or more computing devices, one or more bit vectors corresponding to the one or more data values, wherein each of the one or more bit vectors corresponds to a unique data value in a domain and indicates one or more locations of that unique data value in a column of data values which are in the same domain as the unique data value.

14. The method of claim 13 , wherein the one or more bit vectors are grouped according to domain, such that each bit vector in the one or more bit vectors is associated with a domain in the one or more domains.

15. The method of claim 14 , wherein the bit vectors for each domain are organized according to the lexical order of the corresponding unique data values in that domain.

16. An apparatus for generating a searchable archive, the apparatus comprising:

one or more processors; and

one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

receive one or more data values;

determine one or more domains associated with the one or more data values, wherein each of the one or more data values is associated with a domain in the one or more domains;

generate a domain structure for the one or more domains, wherein the domain structure identifies which of the one or more data values correspond to each domain in the one or more domains; and

generate one or more bit vectors corresponding to the one or more data values, wherein each of the one or more bit vectors corresponds to a unique data value in a domain and indicates one or more locations of that unique data value in a column of data values which are in the same domain as the unique data value.

17. The apparatus of claim 16 , wherein the one or more bit vectors are grouped according to domain, such that each bit vector in the one or more bit vectors is associated with a domain in the one or more domains.

18. The apparatus of claim 17 , wherein the bit vectors for each domain are organized according to the lexical order of the corresponding unique data values in that domain.

19. At least one non-transitory computer-readable medium storing computer-readable instructions that, when executed by one or more computing devices, cause at least one of the one or more computing devices to:

receive one or more data values;

determine one or more domains associated with the one or more data values, wherein each of the one or more data values is associated with a domain in the one or more domains;

generate a domain structure for the one or more domains, wherein the domain structure identifies which of the one or more data values correspond to each domain in the one or more domains; and

generate one or more bit vectors corresponding to the one or more data values, wherein each of the one or more bit vectors corresponds to a unique data value in a domain and indicates one or more locations of that unique data value in a column of data values which are in the same domain as the unique data value.

20. The at least one non-transitory computer-readable medium of claim 19 , wherein the one or more bit vectors are grouped according to domain, such that each bit vector in the one or more bit vectors is associated with a domain in the one or more domains.

21. The at least one non-transitory computer-readable medium of claim 20 , wherein the bit vectors for each domain are organized according to the lexical order of the corresponding unique data values in that domain.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: JPMORGAN CHASE BANK, N.A.
To: INFORMATICA LLC
Reel/Frame 073597/0722 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2021
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: INFORMATICA LLC
Reel/Frame 057973/0507 →
SECURITY INTEREST Recorded Oct 29, 2021
From: INFORMATICA LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 057973/0568 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2021
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: INFORMATICA LLC
Reel/Frame 057973/0496 →
SECURITY INTEREST Recorded Feb 26, 2020
From: INFORMATICA LLC
To: NOMURA CORPORATE FUNDING AMERICAS, LLC
Reel/Frame 052022/0906 →
NOTICE OF SUCCESSION OF AGENCY Recorded Feb 25, 2020
From: BANK OF AMERICA, N.A.
To: NOMURA CORPORATE FUNDING AMERICAS, LLC
Reel/Frame 052018/0070 →
CHANGE OF NAME Recorded Oct 14, 2015
From: INFORMATICA CORPORATION
To: INFORMATICA LLC
Reel/Frame 036852/0908 →
SECURITY AGREEMENT Recorded Aug 6, 2015
From: INFORMATICA CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036294/0701 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2013
From: INFORMATICA SOFTWARE, LIMITED
To: INFORMATICA CORPORATION
Reel/Frame 029804/0408 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2013
From: SAND TECHNOLOGY INC.
To: INFORMATICA SOFTWARE, LIMITED
Reel/Frame 029793/0716 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2013
From: GRONDIN, RICHARD; FADEITCHEV, EVGUENI; ZAROUBA, VASSILI
To: SAND TECHNOLOGY INC.
Reel/Frame 029770/0356 →