Performance week in Translations land
The week of February 2nd – 6th has been the inaugural Launchpad Performance Week: a week where we concentrate on the most pressing performance issues and do anything we can to improve them. During that week, we also establish a hard goal that we enforce by lowering the timeout limit by 5 seconds.
The Launchpad Translations team has been concentrating on improving performance of two most problematic pages we are in charge of: POFile +translate pages (where translators do most of their work) and Person +translations pages, which display history for a person’s translation contributions inside Launchpad.
Jeroen has done a very good job improving Person:+translations pages (pages like Yannick’s translation history which used to timeout occasionally). We have since seen no timeouts on that page.
Henning has spent some time on writing a script to remove obsolete Ubuntu translations (translations for Warthy, Hoary, Breezy, Edgy and Feisty) from the database, before joining Ubuntu guys for the Jaunty sprint in Berlin. This should remove around one third of our entire data set, which should help with rendering of POFile:+translate pages. Unfortunately, he was unable to complete that — due to not being around 🙂 — so I picked it up and have completed and tested it this week. We should have this done by the end of the month, and that should bring large improvements to the rendering of +translate page.
Additionally, I’ve disabled global suggestions on edge (translations coming from different PO templates in Launchpad for the same English string) to confirm this is indeed our biggest problem. Edge has practically been flawless since, and we’ve discovered more areas for improvement. We are getting some new hardware to help with competition for resources between different jobs on the server as well (should be in by the end of the month), and as soon as we do, we’ll re-enable global suggestions (which are one of Launchpad’s essential features).
Just as the week was ending, we started getting a bunch of timeouts on DistroSeriesLanguage pages like the Brazilian Portuguese one for Jaunty: anonymous users started getting it frequently using a script, along with a large batch size of 300, and that started putting a lot of load on the server. Jeroen already has an idea how to improve the situation significantly, but that will have to wait until a later date.
I am looking forward to February release of Launchpad which should bring performance improvements for everyone to notice.
February 13th, 2009 at 2:02 pm
Great news for translators! Please (if it’s possible) share more of what you’re working on!
February 15th, 2009 at 11:19 pm
These improvements sound quite good, but what about the non page-loading delays? For example instead of worrying about pages that take 5 SECONDS to load, what about looking at translation exports that take minutes or hours, and imports that take 2-3 DAYS? Personally, this is what rather dramatically affects my workflow and release schedule, not page loads that take a few seconds 🙂
February 16th, 2009 at 12:10 pm
@Milo: we will 🙂
@Michael: imports for upstream projects should not take that long (when they are, please find us on #launchpad on FreeNode: look for ‘danilos’, ‘jtv’ or ‘henninge’), unless we hit a problem somewhere (read: bug).
For exports, it’s sometimes really hard because people keep requesting wrong stuff (i.e. we’ve got a lot of users wanting to try out a translated application downloading all translations when they just want one language, if that). This involves fixing UI, since exports are usually working pretty well. Also, for projects, there’s another interesting (and easy) thing we can do: periodic (eg. daily or weekly) exports for all of their translations.
February 20th, 2009 at 12:02 pm
@Michael: Also, it is not about pages loading *slowly* but about them *not* loading at all because they time out. That also causes a major interruption in people’s workflows… 😉