Networking/DNS/Performance: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
''Work in Progress''
''Work in Progress''


This is a page to summarise discussions relating to DNS Prefetching.
This is a page to summarise discussions relating to improving performance via changes to DNS.


Note: Closely related to HTTP Prefetching.
Note: Closely related to [[Networking/DNS/Prefetching|HTTP Prefetching]].


=== Meta-bug improve DNS performance {{Bug|580093}} ===
=== Meta-bug improve DNS performance {{Bug|580093}} ===
Line 14: Line 14:
* {{Bug|580104}} - Keep hostname cache for more aggressive DNS prefetching
* {{Bug|580104}} - Keep hostname cache for more aggressive DNS prefetching
* {{Bug|580117}} - Prefetch DNS for links that the mouse gets close to
* {{Bug|580117}} - Prefetch DNS for links that the mouse gets close to
: ''Note: Prefetching has privacy considerations - see later''
: ''Note: Prefetching has privacy considerations - see [[Networking/DNS/Prefetching|here]]''


'''Other performance related'''
'''Other performance related'''
Line 31: Line 31:
* {{bug|622232}} DNS prefetches continue after a tab is closed
* {{bug|622232}} DNS prefetches continue after a tab is closed
* {{bug|235853}} [PAC] Defer proxy resolution for HTTP and HTTPS PAC to avoid blocking main thread during DNS resolution
* {{bug|235853}} [PAC] Defer proxy resolution for HTTP and HTTPS PAC to avoid blocking main thread during DNS resolution
== Privacy Issues and Prefetching ==
''Note: Before discussing privacy, it is important to reiterate that while only a small group of folks may notice privacy issues, it is the large majority of (non-techically savvy) users who are affected. So, the point of discussing privacy issues and policy is not to appease a vocal minority, but to determine the legitimate complaints and respond appropriately.''
Of primary concern here is leaking information about sites a user has visited or regularly visits via hostname resolution requests.  Mitigations and solutions that have been suggested include:
* Prefetch only those sites which were accessed on the same network.  For example, timestamp history entries, and only use DNS prefetch for an entry if the network has not been changed since it was created (or last used).  However, this means we have to store another large int for each entry, retrieve and check it
* Use a config pref to enable/disable such prefetching from history/bookmarks.
* Allow easy opt-out, maybe even by a allow/deny notification on first locationbar use (similar to geolocation).
Points to consider about past decisions:
* Current href prefetching already leaks information about searches that a user is performing
* Href prefetching is disabled by default on securely connected sites.
* History is not stored in private browsing sessions, so awesome bar suggestions from private browsing should already be excluded from such prefetching.
''Note: Private Browsing shouldn't impact DNS prefetching - Private Browsing is there to keep the browser's local state unaffected while the mode is on.  It does not mean that the network is unaware of what the user is doing.''
=== Suggestions for moving forward ===
* User Study
Find out about users' comfort level with DNS prefetching; speed versus leaking tracking information.
* Telemetry Data
Put together some math theory to describe variables etc. and get telemetry based on this for real world, useful values.  This data may be more helpful for the user study to present hard numbers for consideration.
* Once both of those are done, an informed decision can be made and referred to in the future.

Latest revision as of 19:45, 31 January 2012

Work in Progress

This is a page to summarise discussions relating to improving performance via changes to DNS.

Note: Closely related to HTTP Prefetching.

Meta-bug improve DNS performance bug 580093

Listed as blocking bug 71668 - page loading performance issues

Contains the following Prefetching-related bugs

  • bug 40082 - Domain Guessing: should call resolver explicitly (and not trigger DNS search domains)
  • bug 481503 - do DNS prefetch for awesomebar matches
  • bug 580099 - Prefetch DNS for hosts needed during startup
  • bug 580104 - Keep hostname cache for more aggressive DNS prefetching
  • bug 580117 - Prefetch DNS for links that the mouse gets close to
Note: Prefetching has privacy considerations - see here

Other performance related

Metrics

  • bug 580130 - implement about:histograms for necko?

Other DNS Performance bugs

  • bug 697830 Delayed DNS prefetch queue is disabled for e10s

Other DNS Related bugs that may affect performance (some listed for informative reasons only)

  • bug 507578 disable DNS prefetching when PAC or WPAD is used
  • bug 390304 DNS lookups not bypassed when using auto proxy config URL
  • bug 511839 DNS prefetch peppers DNS server with queries for the same FQDN
  • bug 622232 DNS prefetches continue after a tab is closed
  • bug 235853 [PAC] Defer proxy resolution for HTTP and HTTPS PAC to avoid blocking main thread during DNS resolution