title: Improving our Subversion Services
date: '2009-04-02T20:47:41+00:00'
permalink: improving_our_subversion_services
layout: post

<p>This week the ASF Infrastructure Team deployed one of the first major changes to how <a href="http://svn.apache.org/">svn.apache.org</a> works since it was launched, <a href="http://svn.apache.org/viewvc?view=rev&amp;revision=1">6 years ago</a>.<br /></p><p><a href="http://geo.bitnames.com/"></a>We now distribute Subversion traffic to our servers based on the geographic region of a client.</p><p>We are using <a href="http://geo.bitnames.com/">pgeodns</a>, the same software that powers <a href="http://search.cpan.org/">CPAN</a><a href="http://search.cpan.org/"> Search</a> and the <a href="http://www.pool.ntp.org/">NTP Pool</a>.&nbsp; With pgeodns we can give out different DNS entries to clients, depending on where they are connecting from.&nbsp; It isn't an exact science, but for most clients it is good enough to find the closer Subversion Server.<br /></p><p>If you are connecting from Europe, your client will connect to Harmonia.&nbsp; <a href="http://www.apache.org/dev/machines.html#harmonia">Harmonia</a> is a Sun x4150 running FreeBSD 7.0, using ZFS raid2z over&nbsp; 6 disks, hosted in Amsterdam at <a href="http://www.surfnet.nl/en/">SURFnet</a>.<br /></p><p>Users in North America are directed to Eris, our traditional Subversion Master Server.&nbsp; <a href="http://www.apache.org/dev/machines.html#eris">Eris</a> is a Dell 2950 also running FreeBSD 7.0, using ZFS raid2z over 4 disks, hosted in Corvallis, Oregon at <a href="http://osuosl.org">OSUOSL</a>.<br /></p><p>Using <a href="http://svnbook.red-bean.com/nightly/en/svn.ref.svnsync.html">svnsync</a> as described in <a href="https://blogs.apache.org/infra/entry/subversion_on_the_fly_replication">Norman's ApacheCon EU 2009 Talk</a>, we replicate all commits to the master to the slave in real time.&nbsp; If a commit is made to the slave, we proxy the commit to the master.</p><p>Read operations are handled on the nearest mirror, and are much faster for everything from the initial checking out to running an update due to the decreased latency.<br /></p><p>While this change should improve the experience significantly, we have some other changes coming up soon for svn.apache.org:<br /></p><ul><li>Upgrade to <a href="http://subversion.tigris.org/svn_1.6_releasenotes.html">Subversion 1.6</a>: Representation Sharing, inode packing, and memcached support should help make our SVN servers even faster.</li><li>Upgrade both Eris and Harmonia to FreeBSD 7.2-STABLE: The ZFS filesystem is experimental in FreeBSD 7, and there are many stability and performance enhancements available in newer versions.<br /></li><li>Adding more Geographic Mirrors: Once we are comfortable with the current setup, we would like to expand to another mirror location, hopefully in Australia or Asia.&nbsp;</li></ul><br />
