Open
Bug 1489178
Opened 6 years ago
Updated 2 years ago
Tab Store refactor: (1) debounce, (2) stop storing in DB and as serialized file
Categories
(Firefox for iOS :: General, enhancement, P3)
Tracking
()
NEW
Tracking | Status | |
---|---|---|
fxios | + | --- |
People
(Reporter: garvan, Unassigned)
Details
Tab storage is both database and on-disk (as an archived array of tabs). It is triggered on every page navigation (and various other actions). Page navigations are the highest consumer of system resources; WebKit will highly consume CPU and disk I/O at that time. I see delays introduced in the existing code which I assume are to avoid increased system load during a page navigation. Problems with the existing code: - storing data both in the DB and on disk -- DB I/O API is properly concurrent (and has safety guarantees). Disk I/O needs to be wrapped in additional code to ensure read/write safety. -- duplication of work, unnecessary redundancy (although I suspect they store slightly different data currently) - Disk storage writes the full tab array every time -- DB storage is better for granular updates - lack of debouncing -- there are no protections on how frequently tab storage code is called. Solutions: - store tabs in the DB only - update individual tabs, rather than the full tab list every time - debounce the storage to aggregate calls in close time proximity, and write out the most recent changeset only
Updated•6 years ago
|
Priority: -- → P3
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•