Firefox/Goals/2010Q1/IO Reduction

From MozillaWiki
< Firefox‎ | Goals‎ | 2010Q1
Jump to: navigation, search

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.

  • Project Lead: sdwilsh
  • Project Members: Bjarne, mak, rflint, Unfocused

Status

MISSED. 42 - 43% of the IO has been removed from mozilla-central. Up to 23.4% is real close. See this table for more details

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

Timeline / Milestones

Initial numbers from v1.2 of the criteria are:

  • write counts: 4362
  • read counts: 1636
  • fsync counts: 47
  • fstat counts: 1517
  • total count: 7562

Note: You will find 5803 writes in the log, however 1441 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket. We don't actually care about this write, so we've adjusted the total to reflect this.

Finishing numbers from v1.2 of the criteria are:

  • write counts: 1431
  • read counts: 1649
  • fsync counts: 19
  • fstat counts: 1268
  • total count: 4367

Note: You will find 2968 writes in the log, however 1537 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket. We don't actually care about this write, so we've adjusted the total to reflect this.

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 0 898 0 0 11.9%
bug 549767 - Write/flush cache metadata off main-thread Bjarne MISSED; needs a new patch 0 1220 0 0 16.1%
bug 536978 - Cookies should write asynchronously sdwilsh landed 0 1786 19 265 27.4%
bug 553489 - Make setAndLoadFaviconForPage completely async mak landed 9 92 9 8 1.6%
bug 513008 - Eliminate synchronous reads from cache michal.novotny MISSED; needs a new patch to finish up and get final review 554 0 0 0 7.3%
bug 541779 - Make site-specific zoom check asynchronous rflint landed 150 0 0 0 2.0%
bug 461199 - Make visitedness checks asynchronous sdwilsh landed; but not showing up in DTrace likely because it was hitting the SQLite cache before.  ?  ?  ?  ?  ?

Requirements

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

Dependencies

None

Testing

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

Related Projects

None