Parallel DNS Pre-caching for Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current web browsers do not implement DNS pre-fetching due to concerns about network stack complexity and the need for adaptations for different network applications, resulting in significant latency during DNS resolution, which affects user experience.
Innovation Solution
Implementing DNS pre-caching by using parallel threads to perform hostname-to-IP address DNS resolution and storing results in the DNS cache before a user request, effectively 'pre-warming' the cache without adding complexity, thus reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If DNS pre-fetching is implemented to reduce latency, then user-perceived latency is reduced, but network stack complexity increases
Solution Approach 1:
The patent implements DNS pre-fetching by proactively resolving hostnames before they are actually needed by the user. The system identifies candidate hostnames from various sources (currently loaded pages, history, bookmarks) and initiates DNS resolution in advance, storing results in a cache. This preliminary action eliminates the need for users to wait for DNS resolution during actual navigation, directly reducing perceived latency without requiring complex real-time processing.
Solution Approach 2:
The patent segments the DNS resolution process into distinct components: a pre-fetching module that identifies candidate hostnames, a DNS resolution module that performs actual lookups, and a caching module that stores results. This segmentation allows each component to operate independently with optimized logic, reducing overall system complexity while enabling effective pre-fetching functionality.
2Speed
If DNS pre-fetching is implemented to accelerate navigation, then URL navigation speed is improved, but browser complexity increases
Solution Approach 1:
The patent implements a universal DNS pre-fetching mechanism that serves multiple functions: it accelerates navigation to linked pages, pre-loads hostnames from history and bookmarks, and caches results for future use. This single multi-functional system replaces what would otherwise require separate optimization mechanisms for different navigation scenarios, reducing overall browser complexity while improving various navigation pathways.
Solution Approach 2:
The DNS pre-fetching system operates autonomously by automatically identifying candidate hostnames, initiating resolutions, and caching results without user intervention. The system self-manages the entire pre-fetching workflow, reducing the complexity burden on the main browser architecture while delivering performance benefits.
3Loss of time
If parallel DNS threads are used to pre-cache resolutions, then DNS resolution time is reduced, but processing overhead increases
Solution Approach 1:
The patent implements parallel DNS threads that perform more resolutions than immediately necessary, pre-fetching hostnames that may or may not be needed. While this excessive action consumes some processing overhead, it ensures that when users do navigate to pre-fetched hostnames, the resolution time is dramatically reduced. The system accepts partial waste in processing to achieve significant gains in user-perceived performance.
Solution Approach 2:
The patent maintains continuous DNS resolution operations through parallel threads that constantly identify and resolve candidate hostnames. Rather than waiting for explicit user requests, the system continuously performs useful DNS work in the background, keeping the resolution pipeline full and ready. This continuous action reduces idle time and improves overall system responsiveness despite the increased processing overhead.
Data Source
AI summary
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.


