One of the primary issues with the current patch to update Lightning to use asynchronous storage is that when a timezone upgrade has to be performed, a database operation has to be performed on each item. This can make for a (likely) extensive process, and could potentially hang the program while the update is being performed. The obvious solution is to convert the upgrade to be asynchronous as well, but that comes with a lot of undesirable side effects. If a user changes the time an event starts before the upgrade finishes in the background, confusion over the correct start time would occur. As a result, currently I’m working on a progress dialog so that the user knows what’s happening, instead of the program silently hanging. This may not be the best solution, but timezone upgrades generally do not have to be performed that often. We are getting closer to putting the finishing touches on the patch, and on a Summer of Code related note, midterms are next week. The hope is to have the asynchronous storage patch reviewed and commited by the end of next week, as well as some more work done on the movement of metadata.
Fun with Timezones