[meta] Reduce the PlacesTransaction manager cost
Categories
(Toolkit :: Places, task, P3)
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)
Description
•