Looks like I misspoke here. I said "It would be nice to get some feedback from Merlijn about how to solve the problems he's trying to solve in a more efficient way." I meant to say "It would be nice to get some feedback FOR Merlijn about how to solve the problems he's trying to solve in a more efficient way."
So, I'm bumping this thread for two reasons: 1. Still would like to see some feedback for Merlijn 2. Reminder that we need to either fix or revert Merlijn's changes on master prior to deploying 1.21wmf6, lest we bring down itwikisource again. I'm going to guess that without more feedback, Merlijn won't be able to fix this, so we should plan on reverting on Thursday or so if this thread goes stale.
Rob ---------- Forwarded message ---------- From: Rob Lanphier robla@wikimedia.org Date: Fri, Nov 30, 2012 at 5:03 PM Subject: Re: [Wikitech-l] LabeledSectionTransclusion performance problems To: Wikimedia developers wikitech-l@lists.wikimedia.org
On Fri, Nov 30, 2012 at 4:09 AM, Guillaume Paumier gpaumier@wikimedia.org wrote:
On Fri, Nov 30, 2012 at 10:07 AM, Merlijn van Deen valhallasw@arctus.nl wrote:
After the new version of LabeledSectionTransclusion (LST) was deployed on itwikisource, performance issues popped up. itwikisource's main page makes heavy use of LST, and the new version is clearly heavier than the old one.
As a sidenote: because of the performance issues, the most recent changes to the LST extension will probably be reverted today (Friday, November 30).
If you made changes to articles or templates to accommodate the new version or benefit from new features, you may want to revert those changes temporarily.
Aaron just reverted this a little earlier: https://gerrit.wikimedia.org/r/#/c/36316/
I think the way that he did this, though, means that if we do nothing, then we'll be redeploying this starting December 10th with the start of the 1.21wmf6 cycle. There's a reasonable amount of time between now and then, so we can leave it like this until next week, depending on the result of this conversation.
It would be nice to get some feedback from Merlijn about how to solve the problems he's trying to solve in a more efficient way. For those wanting to see the code in question, Merlijn's main commit is here: https://gerrit.wikimedia.org/r/#/c/31330/
For my part, it seems that even just making sure that there is only one extra parse per referenced page might be enough to make this perform acceptably, even if it means keeping all of the parsed transcluded pages around in memory. I'm not sure the preferred method these days (e.g. global, singleton, context object, or attaching to some other existing object), but that may be worth exploring. This is just a wild guess, though; I have no idea if that would be too heavy on our memory usage, and I'm only suggesting it because it seems relatively easy compared to the alternatives.
Rob