Open
Bug 1489178
Opened 7 years ago
Updated 3 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•7 years ago
|
Priority: -- → P3
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•