CINXE.COM
Launchpad Blog
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="description" content="Blog posts from the Launchpad team" /> <title>Launchpad Blog</title> <link href="https://blog.launchpad.net/wp-content/themes/launchpad/style.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="https://launchpad.net/@@/launchpad" /> <script type="text/javascript" src="https://blog.launchpad.net/wp-content/themes/launchpad/js/mootools-1.2-core.js"></script> <script type="text/javascript" src="https://blog.launchpad.net/wp-content/themes/launchpad/js/funcs.js"></script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-12833497-3']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head> <body> <!-- Header --> <div id="header"> <a href="/wp-admin" style="float:right; top: 2px;">Log in</a> <div id="finder"> <input type="search" accesskey="s" value="Search blog archives" name="s" id="s" /> <input type="hidden" name="blog_url" id="blog_url" value="https://blog.launchpad.net" /> <a href="https://blog.launchpad.net/feed" title="RSS Feed for Blog Entries"><img src="https://blog.launchpad.net/wp-content/themes/launchpad/images/rss.png" alt="RSS Feed" /></a> </div> <h1><a href="https://blog.launchpad.net" class="header-link"><img src="https://blog.launchpad.net/wp-content/themes/launchpad/images/logo.png" /><span class="logotext"> launchpad</span><strong>blog</strong></a></h1> </div> <div id="content" class="narrowcolumn"> <h2 class="pagetitle">Archive for the ‘Performance’ Category</h2> <div class="navigation"> <div class="alignleft"></div> <div class="alignright"></div> </div> <div class="post"> <h3 id="post-4351"><a href="https://blog.launchpad.net/code/git-protocol-v2-available-at-launchpad" rel="bookmark" title="Permanent Link to Git Protocol v2 Available at Launchpad">Git Protocol v2 Available at Launchpad</a></h3> <small>Monday, September 28th, 2020</small> <div class="entry"> <p><em>After a few weeks of development and testing, we are proud to finally announce that Git protocol v2 is available at Launchpad! But what are the improvements in the protocol itself, and how can you benefit from that?</em></p> <p>The git v2 protocol was released a while ago, in <a href="https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html">May 2018</a>, with the intent of simplifying git over HTTP transfer protocol, allowing extensibility of git capabilities, and reducing the network usage in some operations.</p> <p>For the end user, the main clear benefit is the bandwidth reduction: in the previous version of the protocol, when one does a “git pull origin master”, for example, even if you have no new commits to fetch from the remote origin, git server would first “advertise” to the client all refs (branches and tags) available. In big repositories with hundreds or thousands of refs, this simple handshake operation could consume a lot of bandwidth and time to communicate a bunch of data that would potentially be discarded by the client after.</p> <p>In the v2 protocol, this waste is no longer present: the client now has the ability to filter which refs it wants to know about before the server starts advertising it.</p> <p>The v2 protocol is not the default on git clients yet, but if you are using a git version higher than 2.19, you can use v2: simply run <strong><code>git config --global protocol.version 2</code></strong>, and you will be using the most recent protocol version when communicating with servers that support this version. Including Launchpad, of course.</p> <p>And even if you have repositories hosted in a server that is not yet compatible with v2, don’t worry: the git client is backward compatible. If the server does not support v2, git client should fall back gracefully to the previous version and everything should continue to work as expected. We hope you enjoy the new feature. And let us know if you have any <a href="https://help.launchpad.net/Feedback">feedback</a>!</p> </div> <p class="postmetadata">Tags: <a href="https://blog.launchpad.net/tag/feature" rel="tag">feature</a>, <a href="https://blog.launchpad.net/tag/git" rel="tag">git</a><br /> Posted in <a href="https://blog.launchpad.net/category/code" rel="category tag">Code</a>, <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/code/git-protocol-v2-available-at-launchpad#respond">No Comments »</a></p> </div> <div class="post"> <h3 id="post-3727"><a href="https://blog.launchpad.net/general/launchpad-javascript-now-combo-loaded-and-faster-than-ever" rel="bookmark" title="Permanent Link to Launchpad JavaScript now combo loaded and faster than ever.">Launchpad JavaScript now combo loaded and faster than ever.</a></h3> <small>Tuesday, September 25th, 2012</small> <div class="entry"> <p><div style="width: 960px" class="wp-caption alignnone"><img title="Network graph of the combo loaded JavaScript." src="http://ubuntuone.com/4TlJf9tXAV2NDiJvi2i91v" alt="Network graph of the combo loaded JavaScript." width="950" height="170" /><p class="wp-caption-text">Updated network graph</p></div></p> <p>Back in January a side project was started to update the JavaScript used in Launchpad. Launchpad has been using YUI 3.3.0 for a long time, very successfully, however recent advances in <a href="https://github.com/yui/yui3/blob/master/src/app/HISTORY.md#350">YUI 3.5</a> and higher have added some great tools for development that Launchpad can take advantage of. In order to facilitate easier upgrades our YUI library version Launchpad has been moved to using a <a href="http://pypi.python.org/pypi/convoy/0.2.4">combo loader</a> for serving out JavaScript.</p> <p>This means, that instead of a single launchpad.js file that can be upwards of 3MB in size, each request builds a list of JavaScript modules needed for the current page to work, and the combo loader only sends down those modules. This drastically cuts down on the download size of the JavaScript for users. These combo loaded JavaScript files are also cached for speedy serving to other users of Launchpad.</p> <p>The combo loader also allows us to specify which YUI version to load via a tweak to the url. In this way we can easily test new version of YUI side by side with the current stable version as they come out. This allows Launchpad to keep with future YUI released much faster.</p> <p>We’re excited that today Launchpad has moved from YUI 3.3.0 to 3.5.1 and is now served by the combo loader. This change provides a faster experience for users along with easier maintenance and new JavaScript library features for developers.</p> <p>We’ve still got more to do though. YUI <a href="http://www.yuiblog.com/blog/2012/09/18/announcing-yui-3-7-0/">just released version 3.7</a> and we aim to push that into production faster than ever before. Please let us know how these changes work for you.</p> <p>Launchpad also wants to thank the folks over at <a href="http://yuilibrary.com/">YUI</a> for continuing the great work on a tool that Launchpad heavily depends on.</p> </div> <p class="postmetadata"> Posted in <a href="https://blog.launchpad.net/category/cool-new-stuff" rel="category tag">Cool new stuff</a>, <a href="https://blog.launchpad.net/category/general" rel="category tag">General</a>, <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/general/launchpad-javascript-now-combo-loaded-and-faster-than-ever#comments">3 Comments »</a></p> </div> <div class="post"> <h3 id="post-3723"><a href="https://blog.launchpad.net/performance/parallel-testing-is-live" rel="bookmark" title="Permanent Link to Parallel testing is live">Parallel testing is live</a></h3> <small>Monday, September 24th, 2012</small> <div class="entry"> <p>One of the projects the Launchpad Squads (yellow) have been working on has been the <a href="http://blog.launchpad.net/general/parallelising-the-unparallelisable" target="_blank">Parallel Testing</a> during the last cycle, this has now been completed and is now in operation. WebOps have today finished setting up parallel testing in buildbot. Buildbot-poll has been updated to know about the new builders, and the developers have confirmed that [testfix] and automatic stable merging etc. work fine. Nothing should have changed except that builds now take 35 minutes rather than 6.5 hours.</p> <p>If something goes wrong, <a href="http://lpbuildbot.canonical.com/waterfall">http://lpbuildbot.canonical.com/waterfall</a> and h<a href="https://dev.launchpad.net/yellow/ParallelTestingTroubleshooting">ttps://dev.launchpad.net/yellow/ParallelTestingTroubleshooting</a> may be helpful. The buildbot master is still praseodymium, but the slaves are new: sluagh for devel, and radande for db-devel. If you need packages upgraded on the slaves, poke WebOps as before.</p> <p>If you would like to follow the discussion on this topic you’ll find more on the <a href="https://lists.launchpad.net/launchpad-dev/msg09640.html" target="_blank">Launchpad development mailing list</a></p> </div> <p class="postmetadata">Tags: <a href="https://blog.launchpad.net/tag/parallel-testing" rel="tag">parallel testing</a><br /> Posted in <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/performance/parallel-testing-is-live#respond">No Comments »</a></p> </div> <div class="post"> <h3 id="post-3712"><a href="https://blog.launchpad.net/performance/launchpad-builders-update" rel="bookmark" title="Permanent Link to Launchpad Builders update">Launchpad Builders update</a></h3> <small>Sunday, September 16th, 2012</small> <div class="entry"> <p>We have recovered some of the affected builders, more will be coming back on later this week with the remainder to come in a few weeks when we have new hardware. Until then launchpad <a href="https://launchpad.net/builders" target="_blank">builders</a> will be at a reduced build capacity. l</p> <p>We apologise for the inconvenience and we’re sorry for the disruption to your service.</p> </div> <p class="postmetadata">Tags: <a href="https://blog.launchpad.net/tag/launchpad-builders" rel="tag">launchpad builders</a><br /> Posted in <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/performance/launchpad-builders-update#respond">No Comments »</a></p> </div> <div class="post"> <h3 id="post-2956"><a href="https://blog.launchpad.net/general/improved-performance-for-personal-code-pages" rel="bookmark" title="Permanent Link to Improved performance for personal code pages">Improved performance for personal code pages</a></h3> <small>Thursday, November 10th, 2011</small> <div class="entry"> <p><strong>Edit 2011-11-15 08:18 UTC</strong>: The problem is now fixed and we’ve re-enabled the new menu.</p> <p><strong>Edit 2011-11-11 13:42 UTC</strong>: We’ve temporarily disabled the new menu while we fix some unfortunate side effect.</p> <p>We’ve just deployed a new, simplified version of the branch menu displayed on the right hand side of personal code pages (e.g. <a title="Personal page for the Launchpad team" href="https://code.launchpad.net/~launchpad">personal page for the Launchpad team</a>). It looks like this:</p> <table> <tbody> <tr> <td> <p><div id="attachment_2968" style="width: 276px" class="wp-caption alignnone"><a href="/wp-content/uploads/2011/11/prev_menu_branches2.png"><img aria-describedby="caption-attachment-2968" loading="lazy" class="size-full wp-image-2968" title="prev_menu_branches2" src="/wp-content/uploads/2011/11/prev_menu_branches2.png" alt="" width="266" height="150" /></a><p id="caption-attachment-2968" class="wp-caption-text"> Old menu</p></div></td> <td></td> <td> <p><div id="attachment_2967" style="width: 276px" class="wp-caption alignnone"><a href="/wp-content/uploads/2011/11/new_menu_branches2.png"><img aria-describedby="caption-attachment-2967" loading="lazy" class="size-full wp-image-2967" title="new_menu_branches2" src="/wp-content/uploads/2011/11/new_menu_branches2.png" alt="" width="266" height="150" /></a><p id="caption-attachment-2967" class="wp-caption-text"> New menu</p></div></td> </tr> </tbody> </table> <p>Calculating the number of branches took way too much time for people/teams with a huge number of branches (e.g. <a href="https://code.launchpad.net/~ubuntu-branches">https://code.launchpad.net/~ubuntu-branches</a>), up to the point that they were getting timeouts.</p> <p>The new design, along with optimisations we’ve made to the database queries, should improve performance for everyone.</p> </div> <p class="postmetadata"> Posted in <a href="https://blog.launchpad.net/category/code" rel="category tag">Code</a>, <a href="https://blog.launchpad.net/category/general" rel="category tag">General</a>, <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/general/improved-performance-for-personal-code-pages#comments">3 Comments »</a></p> </div> <div class="post"> <h3 id="post-2384"><a href="https://blog.launchpad.net/performance/launchpad-answers-is-faster" rel="bookmark" title="Permanent Link to Launchpad Answers is faster">Launchpad Answers is faster</a></h3> <small>Thursday, May 12th, 2011</small> <div class="entry"> <p>Users of Launchpad Answers will see that asking a question, editing it, or posting a comment to it is faster. Email about question changes is sent a few minutes latter. Many bugs relating to question emails were fixed as we moved the work of sending emails to the new process.</p> <p>Users and answer contacts saw slow pages or time out errors when working with questions in large projects. Simple actions like asking a question or providing an answer would fail. It was common to see errors converting bugs into questions. A few weeks ago, we saw that 8 of the top 10 kinds of time outs involved questions; though this ratio was caused in part by the tremendous work of making other parts of Launchpad faster.</p> <p>The root cause of the slow question pages was sending email to all the subscribers before showing the next page. The solution was to queue the the event to notify subscribers, and send the emails later. While updating the code, there were many opportunities to fix related Answers bugs. I am particularly pleased with the changes to the rules to create a question. There were four lines of code, and while I intended to fix one line, I realised there was a bug related to each line of code. In a matter of minutes I had fixed four bugs. The most obvious change you will see is that question emails will now state that you received the email because you asked the question, where previously you were merely described as a subscriber.</p> </div> <p class="postmetadata">Tags: <a href="https://blog.launchpad.net/tag/front-page" rel="tag">front-page</a><br /> Posted in <a href="https://blog.launchpad.net/category/answers" rel="category tag">Answers</a>, <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/performance/launchpad-answers-is-faster#comments">9 Comments »</a></p> </div> <div class="post"> <h3 id="post-2185"><a href="https://blog.launchpad.net/performance/what-you-said-faster-pages-or-more-accurate-bug-counts" rel="bookmark" title="Permanent Link to What you said: faster pages or more accurate bug counts">What you said: faster pages or more accurate bug counts</a></h3> <small>Tuesday, April 19th, 2011</small> <div class="entry"> <p><a href="http://blog.launchpad.net/bug-tracking/survey-faster-pages-or-accurate-bug-counts">Last week I asked what you’d prefer</a>: faster loading pages that may have slightly inaccurate bug counts or slower loading pages where the bug counts were guaranteed to be accurate always.</p> <p>Well, here’s the result:</p> <p><img loading="lazy" src="/wp-content/uploads/2011/04/faster-or-accurate-chart.png" alt="85.9% of respondents wanted faster pages" title="Chart of results from the "faster or accurate" survey" width="600" height="450" class="size-full wp-image-2186" /></p> <p>85.9% of the people who responded to the question said they wanted faster pages, even if it meant that some of the bug counts might be a little inaccurate.</p> <p>I asked a similar question on <a href="http://facebook.com/launchpad.net">Facebook</a> and 88% of the people who replied said they’d rather have faster pages.</p> <p>We’re not going to do anything just yet. First, we want to do some more research. If we did implement this, though, it’s likely to affect only those projects with private bugs and, even then, show up only in side-boxes such as this:</p> <p><img loading="lazy" src="/wp-content/uploads/2011/04/bug-portlet.png" alt="Bug information box" title="Bug information box" width="257" height="223" class="size-full wp-image-2189" /></p> <p>There’s more in the <a href="https://lists.launchpad.net/launchpad-dev/msg06839.html">full discussion on the launchpad-dev list</a>.</p> </div> <p class="postmetadata"> Posted in <a href="https://blog.launchpad.net/category/performance" rel="category tag">Performance</a> | <a href="https://blog.launchpad.net/performance/what-you-said-faster-pages-or-more-accurate-bug-counts#respond">No Comments »</a></p> </div> <div class="navigation"> <div class="alignleft"></div> <div class="alignright"></div> </div> </div> <div id="sidebar"> <h2>Latest Posts</h2> <ul id="lastentries"> <li><a href="https://blog.launchpad.net/general/launchpads-new-homepage" title="Launchpad’s new homepage">Launchpad’s new homepage</a></li> <li><a href="https://blog.launchpad.net/general/launchpad-verified-federated-matrix-accounts" title="Launchpad-linked federated Matrix accounts">Launchpad-linked federated Matrix accounts</a></li> <li><a href="https://blog.launchpad.net/ppa/self-service-riscv64-builds" title="Self-service riscv64 builds">Self-service riscv64 builds</a></li> <li><a href="https://blog.launchpad.net/general/introducing-project-scoped-access-tokens" title="Introducing Project-Scoped Access Tokens">Introducing Project-Scoped Access Tokens</a></li> <li><a href="https://blog.launchpad.net/ppa/new-domain-names-for-ppas" title="New domain names for PPAs">New domain names for PPAs</a></li> </ul> </div> <div id="footer"> <p> <a href="https://help.launchpad.net/Legal">Terms of use</a> | <a href="https://launchpad.net/feedback">Help improve Launchpad</a> | <a href="https://launchpad.net/faq">FAQ</a> </p> <p><a rel="license" href="http://creativecommons.org/licenses/by/2.0/uk/"> <span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">Launchpad Blog</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://canonical.com/" property="cc:attributionName" rel="cc:attributionURL">Canonical Ltd</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/2.0/uk/">Creative Commons Attribution 2.0 UK: England & Wales License</a>. <img alt="Creative Commons License" style="border-width:0;vertical-align:middle;" src="https://i.creativecommons.org/l/by/2.0/uk/80x15.png" /></a></p> <p>© 2004-2019 <a href="https://canonical.com/" target="_blank">Canonical Limited.</a></p> </div>