# US 12,117,963 B2 · System and method for efficient multi-stage querying of archived data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,117,963 B2
- Document ID: US12117963B2
- Status: Granted
- Kind: B2
- Application number: 17/497,697
- Filed: 2021-10-08
- Published: 2023-04-13
- Granted: 2024-10-15
- Earliest claimed: 2021-10-08
- Assignees: Open Text Holdings, Inc.
- Applicants: Open Text Holdings, Inc.
- Inventors: Damien Laurent Richard; Markus Theodorus Hendrikus Polman; Conrado Eduardo Poole Siguero; Andreas Kalogeropoulos
- Web page: https://patentgrep.com/patent/US12117963B2

## CPC

- G06F 16/113: {Details of archiving (lifecycle management in storage systems G06F3/0649; point-in-time backing up or restoration of persistent data G06F11/1446)}
- G06F 16/24539: {using cached or materialised query results}
- G06F 16/148: {File search processing}
- G06F 16/172: Caching, prefetching or hoarding of files
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for searching indexed packages, generating indexed packages for the records of data based on a parameter, each indexed package characterized by a package key, generating metadata for the indexed packages, the metadata comprising the package key and a reference to the packaged records of data based on a value of the parameter, storing the indexed packages and querying the records of data based on a query defining a search value of the parameter. Querying the records comprises searching the metadata based on the search value and identifying a package key for the metadata referencing the search value of the parameter, loading, from a file-based cache, an indexed package based on the identified package key, when the indexed package is stored in the cache, and loading, from the data repository which is an archive storage, the indexed package when the indexed package is not stored in the cache.

## Claims

### Claim 1

A method for searching indexed packages, comprising:
ingesting records of data, the records of data ingested in packages, the ingesting comprising:
indexing the records of data based on a parameter, the indexing including storing an index file in each of the packages, the index file in each of the packages indexing records of data in that package using the parameter, wherein the parameter is characterized by a range of values;
generating indexed packages for the records of data based on the parameter, wherein each of the generated indexed packages corresponds to one of a plurality of subsets of the range of values;
generating metadata for the indexed packages, the metadata for each indexed package comprising a reference to that indexed package of records and a package key that characterizes that indexed package of records based on a value of the parameter, wherein the package key differs from the parameter; and
storing the indexed packages in a data repository;
querying the records of data based on a query defining a search value of the parameter, the querying comprising:
searching the metadata based on the search value of the parameter, wherein the search value is defined within one of the subsets;
identifying a package key for the metadata referencing the search value of the parameter;
loading, from a file-based cache, an indexed package based on the identified package key, when the indexed package is stored in the cache; and
loading, from the data repository which is an archive storage, the indexed package when the indexed package is not stored in the cache.

### Claim 2 (depends on 1)

The method of claim 1, wherein the parameter is characterized by a plurality of categories and wherein each of the generated indexed packages corresponds to one of the categories and the search value corresponds to one of the categories.

### Claim 3 (depends on 1)

The method of claim 1, wherein the metadata is stored in a relational database.

### Claim 4 (depends on 1)

The method of claim 1, wherein the cache is memory which permits loading of the indexed packages and the records of data therewithin faster than the archive storage.

### Claim 5 (depends on 4)

The method of claim 4, wherein the indexed packages are loaded synchronously from the cache and asynchronously from the archive storage.

### Claim 6 (depends on 4)

The method of claim 4, wherein the archive storage permits data replication.

### Claim 7

A system for searching indexed packages, comprising:
a processor;
memory coupled to the processor, the memory comprising computer executable instructions that, when executed by the processor, perform a method for searching indexed packages; comprising:
ingesting records of data, the records of data ingested in packages, the ingesting comprising:
indexing the records of data based on a parameter, the indexing including storing an index file in each of the packages, the index file in each of the packages indexing records of data in that package using the parameter, wherein the parameter is characterized by a range of values;
generating indexed packages for the records of data based on the parameter, wherein each of the generated indexed packages corresponds to one of a plurality of subsets of the range of values;
generating metadata for the indexed packages, the metadata for each indexed package comprising a reference to that indexed package of records and a package key that characterizes that indexed package of records based on a value of the parameter, wherein the package key differs from the parameter; and
storing the indexed packages in a data repository;
querying the records of data based on a query defining a search value of the parameter, the querying comprising:
searching the metadata based on the search value of the parameter, wherein the search value is defined within one of the subsets;
identifying a package key for the metadata referencing the search value of the parameter;
loading, from a file-based cache, an indexed package based on the identified package key, when the indexed package is stored in the cache; and
loading, from the data repository which is an archive storage, the indexed package when the indexed package is not stored in the cache.

### Claim 8 (depends on 7)

The system of claim 7, wherein the parameter is characterized by a plurality of categories and wherein each of the generated indexed packages corresponds to one of the categories and the search value corresponds to one of the categories.

### Claim 9 (depends on 7)

The system of claim 7, wherein the metadata is stored in a relational database.

### Claim 10 (depends on 7)

The system of claim 7, wherein the cache is memory which permits loading of the indexed packages and the records of data therewithin faster than the archive storage.

### Claim 11 (depends on 10)

The system of claim 10, wherein the indexed packages are loaded synchronously from the cache and asynchronously from the archive storage.

### Claim 12 (depends on 10)

The system of claim 10, wherein the archive storage permits data replication.

### Claim 13

A computer program product comprising a non-transitory computer readable medium storing instructions executable by a processor to search indexed packages in a computing environment, the set of operations comprising:
ingesting records of data, the records of data ingested in packages, the ingesting comprising:
indexing the records of data based on a parameter, the indexing including storing an index file in each of the packages, the index file in each of the packages indexing records of data in that package using the parameter, wherein the parameter is characterized by a range of values;
generating indexed packages for the records of data based on the parameter, wherein each of the generated indexed packages corresponds to one of a plurality of subsets of the range of values;
generating metadata for the indexed packages, the metadata for each indexed package comprising a reference to that indexed package of records and a package key that characterizes that indexed package of records based on a value of the parameter, wherein the package key differs from the parameter; and
storing the indexed packages in a data repository;
querying the records of data based on a query defining a search value of the parameter, the querying comprising:
searching the metadata based on the search value of the parameter, wherein the search value is defined within one of the subsets;
identifying a package key for the metadata referencing the search value of the parameter;
loading, from a file-based cache, an indexed package based on the identified package key, when the indexed package is stored in the cache; and
loading, from the data repository which is an archive storage, the indexed package when the indexed package is not stored in the cache.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the parameter is characterized by a plurality of categories and wherein each of the generated indexed packages corresponds to one of the categories and the search value corresponds to one of the categories.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein the metadata is stored in a relational database and the archive storage permits data replication.

### Claim 16 (depends on 13)

The computer program product of claim 13, wherein the cache is memory which permits loading of the indexed packages and the records of data therewithin faster than the archive storage.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein the indexed packages are loaded synchronously from the cache and asynchronously from the archive storage.
