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
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
- Reduce at least 50% of the I/O operations on the main thread (read, write, fsync, fstat) based on a certain set of criteria.
- 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 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.||?||?||?||?||?|
This work must be landed on mozilla-central by March 31, 2010.
Our normal automated testing should be sufficient here. Numbers of calls are generated by this DTrace script.