blob: c01171ca2ac3ef91df1a85ccb6db940805a2eb0e [file] [log] [blame]
---
layout: post
status: PUBLISHED
published: true
title: Improving our Subversion Services
id: f7fcabb4-54e3-4546-b703-bf5ed23ea589
date: '2009-04-02 20:47:41 -0400'
categories: infra
tags:
- subversion
- pgeodns
permalink: infra/entry/improving_our_subversion_services
---
<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>.</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.</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>.</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>.</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.</p>
<p>While this change should improve the experience significantly, we have some other changes coming up soon for svn.apache.org:</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.</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>
<p></p>