IP Library Granted Patent US 10,887,418
Granted Patent B1
US 10,887,418 · App. 16/231,125 · Granted Jan 5, 2021

Parallel, side-effect based DNS pre-caching

Inventor: James Roskind (Redwood City, CA)
Assignee: Google LLC
H04L67/2847G06F16/9566G06F16/9574H04L61/1511H04L61/6009
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 10,887,418
App. No.
16/231,125
Granted
Jan 5, 2021
Kind
B1
Abstract

Embodiments of the present invention include methods and systems for domain name system (DNS) pre-caching. A method for DNS pre-caching is provided. The method includes receiving uniform resource locator (URL) hostnames for DNS pre-fetch resolution prior to a user hostname request for any of the URL hostnames. The method also includes making a DNS lookup call for at least one of the URL hostnames that are not cached by a DNS cache prior to the user hostname request. The method further includes discarding at least one IP address provided by a DNS resolver for the URL hostnames, wherein a resolution result for at least one of the URL hostnames is cached in the DNS cache in preparation for the user hostname request. A system for DNS pre-caching is provided. The system includes a renderer, an asynchronous DNS pre-fetcher and a hostname table.

Claims (57)

1. A method comprising:

responsive to detecting an initial user gesture associated with a user hostname request, but prior to detecting a subsequent user gesture to confirm or commit to the user hostname request:

predicting, by a computing device and based on the initial user gesture, one or more uniform resource locator (URL) hostnames for domain name system (DNS) pre-fetch resolution;

performing, by the computing device, a DNS lookup call for at least one of the one or more URL hostnames that is not stored in a DNS cache; and

storing, by the computing device and in the DNS cache, at least one Internet Protocol (IP) address that is provided by a DNS resolver and that is associated with the at least one of the one or more URL hostnames;

determining, by the computing device, a cache eviction time for the at least one of the one or more URL hostnames stored in the DNS cache; and

after storing the at least one IP address, performing, by the computing device, a subsequent DNS lookup call for the at least one of the one or more URL hostnames that has not had a lookup call within the cache eviction time.

2. The method of claim 1 , wherein predicting the one or more URL hostnames and performing the DNS lookup call are performed by one or more parallel threads.

3. The method of claim 1 , further comprising:

scanning, by the computing device, a web page for one or more URL links; and

gathering, by the computing device, the one or more URL hostnames from the one or more URL links in the web page prior to a user selection of the one or more URL links, wherein the subsequent user gesture comprises the user selection of the one or more URL links.

4. The method of claim 1 , further comprising:

determining, by the computing device, a context associated with the one or more URL hostnames,

wherein predicting the one or more URL hostnames is based on the context.

5. The method of claim 1 , wherein predicting the one or more URL hostnames comprises:

identifying, by the computing device, anchor tags in a web page;

parsing, by the computing device, the anchor tags; and

extracting, by the computing device, the one or more URL hostnames from the parsed anchor tags.

6. The method of claim 1 , wherein predicting the one or more URL hostnames comprises:

augmenting, by the computing device, a link tag associated with the one or more URL hostnames by replacing a relationship value in the link tag with a prediction indicating one of the one or more URL hostnames available for pre-fetching.

7. The method of claim 1 , wherein predicting the one or more URL hostnames comprises:

scanning, by the computing device, a web page; and

setting, by the computing device, a limit on a quantity of the one or more URL hostnames that are selected for pre-fetch resolution based on a total number of URL links found during the scanning of the web page, and

wherein a number of the one or more URL hostnames does not exceed the limit.

8. The method of claim 1 ,

wherein the initial user gesture is associated with a pointer appearing over one or more URL links on a web page for a predetermined period of time, and

wherein the subsequent user gesture comprises a selection of at least one of the one or more URL links.

9. The method of claim 1 , further comprising:

storing, by the computing device, DNS pre-fetch information associated with the one or more URL hostnames, the DNS pre-fetch information comprising at least one of DNS resolution tracking information for a DNS task or a transition time for the DNS task.

10. The method of claim 1 , further comprising:

temporarily storing, by the computing device, the one or more URL hostnames until a thread passes the one or more URL hostnames to an Application Programming Interface (API) for DNS pre-fetch resolution.

11. The method of claim 10 , wherein the one or more URL hostnames are passed as an array.

12. The method of claim 1 , further comprising:

updating, by the computing device, pre-fetch information for the one or more URL hostnames in a data structure prior to discarding the at least one IP address.

13. The method of claim 1 ,

wherein the initial user gesture comprises entering activity in a URL address bar, and

wherein predicting the one or more URL hostnames is based on a result of autocompletion logic with respect to the entering activity in the URL address bar.

14. The method of claim 13 , wherein the autocompletion logic is based on at least one of previously entered URLs, query submissions, or termination of typing by a user.

15. A system comprising:

a memory comprising instructions; and

at least one processor configured to execute the instructions to:

responsive to detecting an initial user gesture associated with a user hostname request, but prior to detecting a subsequent user gesture to confirm or commit to the user hostname request:

predict, based on the initial user gesture, one or more uniform resource locator (URL) hostnames for domain name system (DNS) pre-fetch resolution;

perform a DNS lookup call for at least one of the one or more URL hostnames that is not stored in a DNS cache; and

store, in the DNS cache, at least one Internet Protocol (IP) address that is provided by a DNS resolver and that is associated with the at least one of the one or more URL hostnames;

determine a cache eviction time for the at least one of the one or more URL hostnames stored in the DNS cache; and

after storing the at least one IP address, perform a subsequent DNS lookup call for the at least one of the one or more URL hostnames that has not had a lookup call within the cache eviction time.

16. The system of claim 15 , wherein the at least one processor is further configured to execute the instructions to pass the at least one of the one or more URL hostnames to a DNS pre-fetcher configured to perform the DNS lookup call, and wherein the at least one processor is configured to execute the instructions to predict the one or more URL hostnames and to perform the DNS lookup call using one or more parallel threads.

17. The system of claim 15 , wherein the one or more URL hostnames are selected from one or more URL links in a web page prior to a user selection of the one or more URL links, and wherein the subsequent user gesture comprises the user selection of the one or more URL links.

18. A non-transitory, machine-readable storage medium comprising machine-readable instructions for causing at least one processor to perform operations comprising:

responsive to detecting an initial user gesture associated with a user hostname request, but prior to detecting a subsequent user gesture to confirm or commit to the user hostname request:

predicting, based on the initial user gesture, one or more uniform resource locator (URL) hostnames for domain name system (DNS) pre-fetch resolution;

performing a DNS lookup call for at least one of the one or more URL hostnames that is not stored in a DNS cache; and

storing, in the DNS cache, at least one Internet Protocol (IP) address that is provided by a DNS resolver and that is associated with the at least one of the one or more URL hostnames;

determining a cache eviction time for the at least one of the one or more URL hostnames stored in the DNS cache; and

after storing the at least one IP address, performing a subsequent DNS lookup call for the at least one of the one or more URL hostnames that has not had a lookup call within the cache eviction time.

19. The non-transitory, machine-readable storage medium of claim 18 , wherein predicting the one or more URL hostnames and performing the DNS lookup call are performed by one or more parallel threads.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: ROSKIND, JAMES
To: GOOGLE INC.
Reel/Frame 051735/0290 →
CHANGE OF NAME Recorded Jan 29, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 051759/0737 →
Continuity (4)
Continuation 15457942 · Mar 13, 2017
Continuation 14718231 · May 21, 2015
Continuation 14175102 · Feb 7, 2014
Continuation 12197907 · Aug 25, 2008