Is svnsync good enough?
At WANdisco we offer a clustered Subversion solution which provides both Read AND Write access to replicated repositories hosted over multiple nodes. Our products are already in use within many large enterprise shops, where the value of replicating the repository in this active-active way is obvious. But one of the questions we hear most often is whether synsync and the Write-through proxy can deliver the same benefits as WANdisco without the additional cost of a third party solution?
Obviously enterprise customers who buy our products don't think svnsync is suitable for their needs, but asking this question internally sparked an interesting discussion and, after trying svnsync for myself, it occurred to me that this blog would be a good place to open up the debate and encourage some contributions to the discussion from the Subversion and general developer community.
Below I've presented the 'WANdisco' view of svnsync when compared to WANdisco's solution. The context here is that we're talking about what is appropriate for *enterprise* development shops who are working in a distributed development environment.
- Free, no external product cost
- Improves local read performance at slave/mirror sites
- Reduces read traffic from WAN
- Master/slave model means a single point of failure - If the master is down no-one can write to the repository.
- No performance improvement on writes (these are simply proxied to the master server)
- No guarantee of transactional integrity
- No topology intelligence
- Can’t build against slave/mirror if process requires master
- Manual intervention is normally required in the event of network outage and latency
- Implementation, configuration, and maintenance generally dependent on a specialised resources (the folks that set it up)
- No optimization of SVN traffic
- Recovery time and recovery point objectives are greater than zero
- No dashboard or central administration
- Requires additional solution or approach for DR, business continuity, fault tolerance
- Down time for upgrades or routine maintenance
- Buggy – More than 5 known issues awaiting attention from a Subversion developer
- Little, if any, ongoing development input from the Subversion development community
So it's clear that svnsync has one major advantage - cost. But there's also a long list of reasons why we think WANdisco's approach to clustered Subversion is superior. What do you think? Have I missed things from the Pro list for svnsync? Is there anything lacking in our product that would make it more enterprise capable? What features are you looking for in a distributed development solution to support the future needs of your business?