Intent to unship MOZ_NEW_XULSTORE from Nightly 110. Note some minor dataloss expected

29 views
Skip to first unread message

Dave Townsend

unread,
Dec 9, 2022, 10:50:55 AM12/9/22
to Firefox Dev
Three and a half years ago we shipped a new version of xulstore (the component that caches window sizes and positions) to Nightly using rkv under the hood. At the time rkv was based on lmdb and was expected to improve performance by allowing incremental file reads and writes compared to the old xulstore which simply loaded the entire dataset into memory on startup and dumped it all to disk on shutdown. Unfortunately lmdb proved to have some unanticipated stability problems and so all consumers of rkv were switched to a safer backend which essentially also loads the entire dataset into memory on startup. In the time since we never got around to making the decision to ship the new xulstore implementation to beta and release users and so for three years nightly users have been using a different implementation of xulstore. This has caused confusion and even some bugs so the time has come to fix things so the same component is used across all channels.

Since the safe mode backed xulstore now has no obvious performance benefits and is significantly more complex than the old xulstore implementation, and because making changes for release users is inherently more risky than making changes for Nightly users, I've concluded that the best way to proceed is to switch Nightly back to the old xulstore implementation and then assuming no issues arise remove the code for the new implementation from the tree. Turning the new implementation off will happen early in the 110 Nightly cycle.

One issue to note is that while code exists to migrate xulstore data from the old to the new stores there is no way to do that in reverse and implementing such a thing would be non-trivial. So the first time Nightly with the new xulstore disabled starts all window sizes and positions will revert to their defaults (or whatever they were three years ago if you happen to have a profile that old ... think of it as an exciting journey into the past!). That is unless you have session restore enabled or restart Firefox through the automatic update UI which performs a one time session restore. As this is a one time thing and only impacts window positioning I don't believe that this is a reason to block this work.

Please reach out to me if you have concerns with this plan.

Brian Grinstead

unread,
Dec 13, 2022, 9:23:53 AM12/13/22
to Dave Townsend, Firefox Dev
The plan sounds good, thanks for doing this Dave.

We do use it to persist attributes on non-window elements as well (including open / selected states and sizing in a handful of cases). But I don’t have concerns with that data not getting migrated in Nightly. 

Brian

On Dec 9, 2022, at 7:51 AM, Dave Townsend <dtow...@mozilla.com> wrote:


--
You received this message because you are subscribed to the Google Groups "firef...@mozilla.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firefox-dev...@mozilla.org.
To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/firefox-dev/CAPMxTNruVKbSupR%2BijL0qysiAKdrfrun_F3Kp1ZPsMTPEgseWQ%40mail.gmail.com.

Dave Townsend

unread,
Jan 13, 2023, 7:08:39 AM1/13/23
to firef...@mozilla.org, Firefox Dev
We landed this change 10 days ago and I have seen no reported issues. I intend to strip the code for the new xulstore implementation from the tree after 110 the merges to beta.

To unsubscribe from this group and stop receiving emails from it, send an email to firefox-dev+unsubscribe@mozilla.org.
Reply all
Reply to author
Forward
0 new messages