# US 8,788,475 B2 · System and method of accessing a document efficiently through multi-tier web caching

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

- Number: US 8,788,475 B2
- Document ID: US8788475B2
- Status: Granted
- Kind: B2
- Application number: 13/536,701
- Filed: 2012-06-28
- Published: 2012-10-25
- Granted: 2014-07-22
- Earliest claimed: 2004-06-30
- Assignees: Google Inc.
- Applicants: Eric Russell Fredricksen; Fritz John Schneider; Jeffrey Adgate Dean; Sanjay Ghemawat; Niels Provos; Georges Harik
- Inventors: Eric Russell Fredricksen; Fritz John Schneider; Jeffrey Adgate Dean; Sanjay Ghemawat; Niels Provos; Georges Harik
- Web page: https://patentgrep.com/patent/US8788475B2

## CPC

- G06F 16/9574: {of access to content, e.g. by caching}
- G06F 16/93: Document management systems
- Y10S 707/99931: Database or file accessing
- Y10S 707/99932: Access augmentation or optimizing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Upon receipt of a document request, a client assistant examines its cache for the document. If not successful, a server searches for the requested document in its cache. If the server copy is still not fresh or not found, the server seeks the document from its host. If the host cannot provide the copy, the server seeks it from a document repository. Certain documents are identified from the document repository as being fresh or stable. Information about each of these identified documents is transmitted to the server which inserts entries into an index if the index does not already contain an entry for the document. If and when this particular document is requested, the document will not be present in the server, however the server will contain an entry directing the server to obtain the document from the document repository rather than the document's web host.

## Claims

### Claim 1

A system for domain name server (DNS) caching comprising:
a memory, including a DNS cache configured to store DNS address records, wherein each DNS address record corresponds to a hostname; and
one or more processing units, coupled to the DNS cache and configured to:
prioritize DNS address records in the DNS cache for self-refresh prior to expiration of the respective DNS address records, wherein the DNS address records in the DNS cache are prioritized for self-refresh in accordance with predefined criteria that include user visit frequency associated with IP addresses corresponding to the DNS address records in the DNS cache;
in accordance with the prioritization of the DNS address records for self-refresh, initiate a DNS resolution request for a hostname of a respective DNS address record of the prioritized DNS address records; and
update the respective DNS address record based upon a result of the DNS resolution request.

### Claim 2 (depends on 1)

The system of claim 1, wherein the one or more processing units are further configured to replace the respective DNS address record with the result of the DNS resolution request.

### Claim 3 (depends on 1)

The system of claim 1, wherein the one or more processing units are further configured to extend a time-to-live (TTL) value of the respective DNS address record based upon the result of the DNS resolution request.

### Claim 4 (depends on 1)

The system of claim 1, wherein the predefined criteria further comprise criteria with respect to time-to-live values associated with the DNS address records in the DNS cache.

### Claim 5 (depends on 1)

The system of claim 1, wherein the one or more processing units are configured to initiate DNS resolution requests for predetermined hostnames in order to store corresponding DNS address records in the DNS cache.

### Claim 6

A system for domain name server (DNS) caching comprising:
a memory, including a DNS cache configured to store DNS address records, wherein each DNS address record corresponds to a hostname; and
one or more processing units, coupled to the DNS cache and configured to:
determine, for a plurality of DNS address records in the DNS cache, user visit frequency for corresponding IP addresses;
prioritize DNS address records in the DNS cache for self-refresh prior to expiration of the respective DNS address records, wherein the DNS address records in the DNS cache are prioritized for self-refresh in accordance with predefined criteria that include user visit frequency for IP addresses corresponding to the DNS address records in the DNS cache;
in accordance with the prioritization of the DNS address records for self-refresh, initiate a DNS resolution request for a hostname of a respective DNS address record of the prioritized DNS address records; and
update the respective DNS address record corresponding to the hostname based upon a result of the DNS resolution request.

### Claim 7 (depends on 6)

The system of claim 6, wherein the one or more processing units are further configured to replace the respective DNS address record corresponding to the hostname with the result of the DNS resolution request.

### Claim 8 (depends on 6)

The system of claim 6, wherein the one or more processing units are further configured to extend a time-to-live (TTL) value of the respective DNS address record corresponding to the hostname based upon the result of the DNS resolution request.

### Claim 9 (depends on 6)

The system of claim 6, wherein the predefined criteria further comprise criteria with respect to time-to-live values associated with the DNS address records in the DNS cache.

### Claim 10 (depends on 6)

The system of claim 6, wherein the one or more processing units are configured to initiate DNS resolution requests for predetermined hostnames in order to store corresponding DNS address records in the DNS cache.

### Claim 11

A method for domain name server (DNS) caching with one or more processors that utilize a DNS cache to resolve network addresses, comprising:
prioritizing DNS address records in the DNS cache for self-refresh prior to expiration of the respective DNS address records, wherein the DNS address records in the DNS cache are prioritized for self-refresh in accordance with predefined criteria that include user visit frequency associated with IP addresses corresponding to the DNS address records in the DNS cache;
in accordance with the prioritization of the DNS address records for self-refresh, initiating a DNS resolution request for a hostname of a respective DNS address record of the prioritized DNS address records; and
updating the respective DNS address record in the DNS cache based upon a result of the DNS resolution request,
wherein the prioritizing, initiating, and updating steps are performed by the one or more processors.

### Claim 12 (depends on 11)

The method of claim 11, wherein the updating comprises replacing the respective DNS address record with the result of the DNS resolution request.

### Claim 13 (depends on 11)

The method of claim 11, wherein the updating further comprises extending a time-to-live (TTL) value of the respective DNS address record based upon the result of the DNS resolution request.

### Claim 14 (depends on 11)

The method of claim 11, wherein the predefined criteria further comprise criteria with respect to time-to-live values associated with the DNS address records in the DNS cache.

### Claim 15 (depends on 11)

The method of claim 11, further comprising initiating DNS resolution requests for predetermined hostnames in order to store corresponding DNS address records in the DNS cache.

### Claim 16

A method for domain name server (DNS) caching with one or more processors that utilize a DNS cache to resolve network addresses, comprising:
determining, for a plurality of DNS address records in the DNS cache, user visit frequency for corresponding IP addresses;
prioritizing DNS address records in the DNS cache for self-refresh prior to expiration of the respective DNS address records, wherein the DNS address records in the DNS cache are prioritized for self-refresh in accordance with predefined criteria that include user visit frequency for IP addresses corresponding to the DNS address records in the DNS cache;
in accordance with the prioritization of the DNS address records for self-refresh, initiating a DNS resolution request for a hostname of a respective DNS address record of the prioritized DNS address records; and
updating the respective DNS address record corresponding to the hostname in the DNS cache based upon a result of the DNS resolution request,
wherein the determining, prioritizing, initiating, and updating steps are performed by the one or more processors.

### Claim 17 (depends on 16)

The method of claim 16, wherein the updating comprises replacing the respective DNS address record corresponding to the hostname with the result of the DNS resolution request.

### Claim 18 (depends on 16)

The method of claim 16, wherein the updating further comprises extending a time-to-live (TTL) value of the respective DNS address record corresponding to the hostname based upon the result of the DNS resolution request.

### Claim 19 (depends on 16)

The method of claim 16, wherein the predefined criteria further comprise criteria with respect to time-to-live values associated with the DNS address records in the DNS cache.

### Claim 20 (depends on 16)

The method of claim 16, further comprising initiating DNS resolution requests for predetermined hostnames in order to store corresponding DNS address records in the DNS cache.
