How to use Subversion at two sites
For the last six weeks I’ve been working for a company called WANdisco; a Silicon Valley based business with a product that the more I learn about, the more it fascinates me. In development since 2001, the current WANdisco product range is actually a two stage affair. First, a common replication engine called Dcone sits underneath every product and organises a type of Peer to Peer communication between instances of itself running on different physical servers. On top of this runs product specific code for each piece of software WANdisco has support for; currently Subversion, CVS and Jira.
The process of Subversion replication is remarkably simple, which is really the exciting thing. The WANDisco replicator is implemented as a network proxy - a Java app running in-between the server and the client. The replicator takes over listening to client requests, and when ever it sees a write command, it passes this down to Dcone, which then replicates the same write command on the other sites.
The simplicity of this is unbelievable. All of the servers stay exactly the same because they all effectively see the same communication from the client. Logic within the Dcone engine ensures all the Subversion servers recieve the same transactions replayed in exactly the same order they are recieved. As such all the servers are exact copies of each other and stay in synch at all times. If one goes down, it catches up as soon as it’s back automatically and in the right sequence. The behaviour a user sees is no different to what would happen if the client were writing directly to multiple servers at the same time, except the client only has to make its changes against the local server. WANdisco handles the rest.
This simple two-part model has many possibilities for future products, but for now the most popular WANdisco product is Subversion Multisite. I guess that’s because it has the most impact for developers and because the alternatives in Subversion land really aren’t good enough. These alternatives include svnsynch and the write-through proxy, both of which are variants on a master-slave model of replication that although better than nothing, doesn’t provide the advantages of having every server as a live independent fully functioning copy running at a local site.
I’m really looking forward to learning more about the products and to being part in the evolution of the business as the Dcone engine is applied to other products. There are many obvious applications for the WANdisco syncronising technology and the challenge seems to be where to start rather than what to do. It’s certainly an interesting place to be.



