# US 10,375,197 B2 · Dynamic key generation for identifying data segments

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

- Number: US 10,375,197 B2
- Document ID: US10375197B2
- Status: Granted
- Kind: B2
- Application number: 15/375,010
- Filed: 2016-12-09
- Published: 2017-06-15
- Granted: 2019-08-06
- Earliest claimed: 2015-12-11
- Assignees: Riverbed Technology, Inc.
- Applicants: Riverbed Technology, Inc.
- Inventors: Hemanga Krishna Borah; Manjunath Chinni Lakshmana
- Web page: https://patentgrep.com/patent/US10375197B2

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 12/0864: using pseudo-associative means, e.g. set-associative or hashing
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and techniques are described for caching resources. Multiple distinct resource identifiers that correspond to the same resource can be automatically collected, wherein the multiple distinct resource identifiers are included in resource requests that are sent from at least one client to at least one server. Next, a key can be automatically determined that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers. A resource request can be received from a client that includes a resource identifier, and in response to determining that the resource identifier matches the key, the resource can be sent to the client.

## Claims

### Claim 1

A method for resource caching based on dynamic key generation, the method comprising:
a caching device automatically collecting multiple distinct resource identifiers that correspond to a resource, wherein the multiple distinct resource identifiers are included in resource requests that are sent from at least one client to at least one server, and wherein the caching device is located on a network path between the at least one client and the at least one server;
the caching device automatically determining a key that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers;
the caching device receiving a resource request from a client that includes a resource identifier; and
in response to the caching device determining that the resource identifier matches the key, the caching device sending the resource to the client.

### Claim 2 (depends on 1)

The method of claim 1, wherein each resource request is a Hypertext Transfer Protocol (HTTP) request.

### Claim 3 (depends on 2)

The method of claim 2, wherein each resource identifier includes a sequence of parameter values.

### Claim 4 (depends on 3)

The method of claim 3, wherein said automatically determining the key that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers comprises:
identifying common parameter values that are common to all of the multiple distinct resource identifiers; and
determining the key based on the common parameter values.

### Claim 5 (depends on 1)

The method of claim 1, wherein said automatically collecting the multiple distinct resource identifiers that correspond to the resource comprises:
monitoring the resource requests and resources that are communicated between the at least one client and the at least one server;
computing a hash value for each resource based on contents of the resource, wherein each hash value is used to uniquely identify each unique resource; and
collecting distinct resource identifiers in the resource requests that correspond to resources with the same hash value.

### Claim 6 (depends on 1)

The method of claim 1, wherein said automatically collecting the multiple distinct resource identifiers comprises collecting a sufficient number of distinct resource identifiers so that a diversity condition is satisfied by the collected distinct resource identifiers.

### Claim 7

A non-transitory computer-readable storage medium storing instructions that, when executed by a caching device, cause the caching device to perform a method for resource caching based on dynamic key generation, the method comprising:
automatically collecting multiple distinct resource identifiers that correspond to a resource, wherein the multiple distinct resource identifiers are included in resource requests that are sent from at least one client to at least one server, and wherein the caching device is located on a network path between the at least one client and the at least one server;
automatically determining a key that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers;
receiving a resource request from a client that includes a resource identifier; and
in response to determining that the resource identifier matches the key, sending the resource to the client.

### Claim 8 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein each resource request is a Hypertext Transfer Protocol (HTTP) request.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein each resource identifier includes a sequence of parameter values.

### Claim 10 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein said automatically determining the key that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers comprises:
identifying common parameter values that are common to all of the multiple distinct resource identifiers; and
determining the key based on the common parameter values.

### Claim 11 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein said automatically collecting the multiple distinct resource identifiers that correspond to the resource comprises:
monitoring the resource requests and resources that are communicated between the at least one client and the at least one server;
computing a hash value for each resource based on contents of the resource, wherein each hash value is used to uniquely identify each unique resource; and
collecting distinct resource identifiers in the resource requests that correspond to resources with the same hash value.

### Claim 12 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein said automatically collecting the multiple distinct resource identifiers comprises collecting a sufficient number of distinct resource identifiers so that a diversity condition is satisfied by the collected distinct resource identifiers.

### Claim 13

A caching device, comprising:
a processor; and
a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the caching device to perform a method for resource caching based on dynamic key generation, the method comprising:
automatically collecting multiple distinct resource identifiers that correspond to a resource, wherein the multiple distinct resource identifiers are included in resource requests that are sent from at least one client to at least one server, and wherein the caching device is located on a network path between the at least one client and the at least one server;
automatically determining a key that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers;
receiving a resource request from a client that includes a resource identifier; and
in response to determining that the resource identifier matches the key, sending the resource to the client.

### Claim 14 (depends on 13)

The caching device of claim 13, wherein each resource request is a Hypertext Transfer Protocol (HTTP) request.

### Claim 15 (depends on 14)

The caching device of claim 14, wherein each resource identifier includes a sequence of parameter values.

### Claim 16 (depends on 15)

The caching device of claim 15, wherein said automatically determining the key that matches the multiple distinct resource identifiers by analyzing the multiple distinct resource identifiers comprises:
identifying common parameter values that are common to all of the multiple distinct resource identifiers; and
determining the key based on the common parameter values.

### Claim 17 (depends on 13)

The caching device of claim 13, wherein said automatically collecting the multiple distinct resource identifiers that correspond to the resource comprises:
monitoring the resource requests and resources that are communicated between the at least one client and the at least one server;
computing a hash value for each resource based on contents of the resource, wherein each hash value is used to uniquely identify each unique resource; and
collecting distinct resource identifiers in the resource requests that correspond to resources with the same hash value.

### Claim 18 (depends on 13)

The caching device of claim 13, wherein said automatically collecting the multiple distinct resource identifiers comprises collecting a sufficient number of distinct resource identifiers so that a diversity condition is satisfied by the collected distinct resource identifiers.
