# US 10,503,792 B1 · Cache optimization via topics in web search engines

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

- Number: US 10,503,792 B1
- Document ID: US10503792B1
- Status: Granted
- Kind: B1
- Application number: 16/408,766
- Filed: 2019-05-10
- Granted: 2019-12-10
- Earliest claimed: 2019-05-10
- Assignees: Georgetown University
- Applicants: Georgetown University
- Inventors: Ophir Frieder; Ida Mele; Raffaele Perego; Nicola Tonellotto
- Web page: https://patentgrep.com/patent/US10503792B1

## CPC

- G06F 16/953: Querying, e.g. by the use of web search engines
- G06F 12/0871: Allocation or management of cache space
- G06F 16/957: Browsing optimisation, e.g. caching or content distillation
- G06F 16/9574: {of access to content, e.g. by caching}
- G06F 17/18: for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments may provide a cache for query results that can adapt the cache-space utilization to the popularity of the various topics represented in the query stream. For example, a method for query processing may perform receiving a plurality of queries for data, determining at least one topic associated with each query, and requesting data responsive to each query from a data cache comprising a plurality of partitions, including at least a static cache partition, a dynamic cache partition, and a temporal cache partition, the temporal cache partition may store data based on a topic associated with the data, and may be further partitioned into a plurality of topic portions, each portion may store data relating to an associated topic, wherein the associated topic may be selected from among determined topics of queries received by the computer system, and the data cache may retrieve data for the queries from the computer system.

## Claims

### Claim 1

A method for query processing implemented in a computer system comprising a processor, a memory configured to store program instructions and data, and program instructions executable by the processor to perform:
receiving a plurality of queries for data;
determining at least one topic associated with each query; and
requesting data responsive to each query from a data cache comprising a plurality of partitions, wherein there are at least a static cache partition, a dynamic cache partition, and a temporal cache partition, wherein the temporal cache partition is configured to store data based on a topic associated with the data, wherein the temporal cache partition is further partitioned into a plurality of topic portions, each portion configured to store data relating to an associated topic, wherein the associated topic is selected from among determined topics of queries received by the computer system, and wherein the data cache is configured to retrieve data responsive to at least some queries from the computer system.

### Claim 2 (depends on 1)

The method of claim 1, wherein each topic portion is further partitioned into a static portion configured to store data entries indefinitely, and into a dynamic portion configured to store data entries until each least recently used data entry is replaced by a newer data entry.

### Claim 3 (depends on 2)

The method of claim 2, wherein the topic portion is further recursively partitioned with further refinements of the topic into corresponding sub-topics.

### Claim 4 (depends on 1)

The method of claim 1, wherein the at least one topic associated with each query is determined using a Latent Dirichlet Allocation.

### Claim 5 (depends on 1)

The method of claim 1, wherein the temporal cache partition is configured to be trained using a plurality of training queries associated with a plurality of topics.

### Claim 6

A system for query processing comprising:
a computer system comprising a processor, a memory configured to store program instructions and data, and program instructions executable by the processor to receive a plurality of queries for data, to determine at least one topic associated with each query, and to request data responsive to each query from a data cache;
the data cache comprising a plurality of partitions, wherein there are at least a static cache partition, a dynamic cache partition, and a temporal cache partition,
wherein the temporal cache partition is configured to store data based on a topic associated with the data,
wherein the temporal cache partition is further partitioned into a plurality of topic portions, each portion configured to store data relating to an associated topic, wherein the associated topic is selected from among determined topics of queries received by the computer system, and wherein the data cache is configured to retrieve data responsive to at least some queries from the computer system.

### Claim 7 (depends on 6)

The system of claim 6, wherein each topic portion is further partitioned into a static portion configured to store data entries indefinitely, and into a dynamic portion configured to store data entries until each least recently used data entry is replaced by a newer data entry.

### Claim 8 (depends on 7)

The system of claim 7, wherein the topic portion is further recursively partitioned with further refinements of the topic into corresponding sub-topics.

### Claim 9 (depends on 6)

The system of claim 6, wherein the at least one topic associated with each query is determined using a Latent Dirichlet Allocation.

### Claim 10 (depends on 6)

The system of claim 6, wherein the temporal cache partition is configured to be trained using a plurality of training queries associated with a plurality of topics.

### Claim 11

A computer program product for query processing, the computer program product comprising a non-transitory computer readable storage having program instructions embodied therewith, the program instructions executable by a computer, to cause the computer to perform a method comprising:
receiving a plurality of queries for data;
determining at least one topic associated with each query; and
requesting data responsive to each query from a data cache comprising a plurality of partitions, wherein there are at least a static cache partition, a dynamic cache partition, and a temporal cache partition, wherein the temporal cache partition is configured to store data based on a topic associated with the data, wherein the temporal cache partition is further partitioned into a plurality of topic portions, each portion configured to store data relating to an associated topic, wherein the associated topic is selected from among determined topics of queries received by the computer system, and wherein the data cache is configured to retrieve data responsive to at least some queries from the computer system.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein each topic portion is further partitioned into a static portion configured to store data entries indefinitely, and into a dynamic portion configured to store data entries until each least recently used data entry is replaced by a newer data entry.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the topic portion is further recursively partitioned with further refinements of the topic into corresponding sub-topics.

### Claim 14 (depends on 11)

The computer program product of claim 11, wherein the at least one topic associated with each query is determined using a Latent Dirichlet Allocation.

### Claim 15 (depends on 11)

The computer program product of claim 11, wherein the temporal cache partition is configured to be trained using a plurality of training queries associated with a plurality of topics.
