Firefox/Goals/2010Q1/IO Reduction

From MozillaWiki
< Firefox‎ | Goals‎ | 2010Q1
Revision as of 19:56, 2 March 2010 by Comrade693 (talk | contribs) (Updated formatting)
Jump to navigation Jump to search

Pitch

Reducing I/O operations on the main thread will remove potential points of hanging that users experience, providing a substantially better user experience to our users. Removing at least 50% of our current I/O operations (as of January 1, 2010) from the main thread.

Goals

  • Reduce at least 50% of the I/O operations on the main thread (read, write, fsync, fstat) based on a certain set of criteria.

Non-Goals

  • Reduce the number of I/O operations that we do

Status

  • IN FLIGHT
  • Project Lead: sdwilsh
  • Project Members: Bjarne, mak, rflint, Unfocused
  • Cookie stuff should have a new patch up this week. About 27% of the IO has been removed from mozilla-central. See this table for more details

Timeline / Milestones

Initial numbers from v1.1 of the criteria are:

  • write counts: 4084
  • read counts: 1073
  • fsync counts: 49
  • total count: 5206

These are the bugs of interest:

Bug Owner Status reads writes fsyncs fstats % I/O Responsible
bug 513074 - remove sync writes from current cache Bjarne landed 1423 3 27.3%
bug 536978 - Cookies should write asynchronously sdwilsh need to address review comments 1137 21.8%
bug 540765 mak some bits landed in bug bug 522855. Revising Favicon Service interface to make it async. 10 111 2.3%
bug 513008 - Eliminate synchronous reads from cache michal.novotny wip patch up; discussion ongoing 75 1.4%
bug 546255 - Make nsIBrowserHistory.[un]registerOpenPage async Unfocused ? ? ?
bug 541779 - Make site-specific zoom check asynchronous rflint waiting on review ? ? ?
bug 461199 - Make visitedness checks asynchronous sdwilsh landed ? ? ?

Delivery Requirements

This work must be landed on mozilla-central by March 31, 2010.

Constraints

None

Dependencies

None

Testing

Our normal automated testing should be sufficient here. Numbers of calls are generated by this DTrace script.

Related Projects

None