Open Bug 1829296 Opened 2 years ago Updated 2 years ago

[meta] Reduce the PlacesTransaction manager cost

Categories

(Toolkit :: Places, task, P3)

task

Tracking

()

People

(Reporter: mak, Unassigned)

References

(Depends on 1 open bug)

Details

(Keywords: meta)

Currently on each bookmark operation the transactions manager fetches info for a bookmark, and stores it in a memory object, each transaction object keeps their own info.

There's a performance penalty to read from the database, parse and return the info, store it again in a different shape. One could imagine a system where we just copy-over the data to a memory table, assigning it a transaction id.

Second, there's a memory cost to retaining all this info, for example imagine removing hundreds or thousands of bookmarks. While not a particularly common operation, it may be useful to optimize the memory usage. One could imagine to compress the data in memory, maybe just using a compress/decompress sql function, or an actually transparent compression extension for the memory table (sqlite-zstd for example, or I think we have a Snappy implementation in localStorage)

You need to log in before you can comment on or make changes to this bug.