Conflict Resolution: Syncplicity vs Live Mesh
After Peter’s comment on my recent post comparing SugarSync, DropBox & Live Mesh saying that I hadn’t looked at Syncplicity – his preferred Cloud-based synchronisation tool – I decided to install it and try out the free 2Gb storage as a trial.
I was quite impressed with the simplicity of the interface – it was very informative about what was being uploaded to the cloud, what was being downloaded and what it was going to do next. It was also very easy adding existing folders to the sync set (much more so than Live Mesh: see Live Mesh Syncing Folders).
Everything was going well until Syncplicity told me that I had exceeded my storage quota and would need to pay to upgrade my account in order to continue to sync the files. This was strange because I only had 1.6Gb of files to sync, and allowing for possible differences in quota allocated to the files in the cloud versus the Windows PC, this should not have been an issue.
I investigated further and found that it was due to Syncplicity’s conflict resolution management system.
When Syncplicity finds a conflict it keeps the original copy of the file from that machine, plus creates additional copies of the file – 1 from each machine in the sync group (if there were 3 or more computers there would be 3 or more extra files) – but doesn’t tell you it has done this. This is a sure way to eat up the available storage. So, for example, I get:
- foo (edited by Edward Terry on Machine A @ 1-12-08 17:56).php
- foo (edited by Edward Terry on Machine B @ 1-12-08 12:36).php
Syncplicity then proceeds to synchronise these additional files across the connected computers and chews up the remaining space leading to the “you have exceeded your quota” message. Unfortunately, Syncplicity (at least as far as I could see from the user interface) offers no way of finding or managing these conflicts and you have to track them down in their respective directories manually.
The trouble with this is that my 1.6Gb is made up of thousands of small files in hundreds of directories, and so the task of tracking down and resolving these conflicts is impractical.Â In my case I had over 2000 such conflicts which resulted in over 4000 “edited by” files scattered around my directories and resorted to the DOS command “delete /s/f/q ‘*edited by Edward*’” which removed them all in one go. Not very elegant.
Syncplicity is still a beta at this stage, so – hopefully – they will sort out the synchronisation management issue. But for now I have stopped using it because of this issue as it creates more of a problem than it solves by using it (sorry Peter).
Back to Live Mesh.
Live Mesh doesn’t appear to keep shadow copies of files in the file system, and so doesn’t appear to use additional storage when conflicts occur. Instead it informs you there are conflicts in the news window alongside the synchronised folder when you open it. Since I have a handful of root folders which I synchronise it is quick and easy to check all conflicts across the 3Gb I currently sync with Live Mesh.
The down side with Live Mesh is that conflict management is tedious because you have to confirm what you want to do with each and every file conflict one by one, and Mesh keeps you waiting while it processes your decision before you can address the next conflict. It also only lets you process batches of 50 conflicts, so you can be there for a long time. OK, Mesh is still beta also, and the conflict management is more helpful than Syncplicity but it’s still tedious. (I current have over 11,000 files in my Holding Area directory of Live Mesh which suggests a very large problem).
According to the Mesh blog, Microsoft have a tool at their data centre which can be executed to help you clean up large-scale conflicts, especially those caused by tombstones. However, it’s not clear if this is an actual service you can request, or if it was a one-off when they did a specific upgrade to the Mesh software.
Ideally, what I would like to see out of a conflict management tool is something like this:
System Tray Notification:
There are 1863 file conflicts that need your attention. Click the bubble to view them.
When you click the notification a dialogue box pops up with a table of all conflicts. You then scroll through the list and select what you want to do with each conflict and then hit the “resolve” button and let the application process the results in the background.
The list should be a simple, interactive interface.
At the end of the background task, you would get another system tray notification telling you the task was complete and offering a report. This would show any failures or unresolvable conflicts for you to follow-up manually, but should result in the bulk (if not all) of the conflicts being resolved and allowing the user to get on with working and not lose hours to resolving conflicts one by one (as I have so far and will continue to do until I clear the backlog).
The difference engine in the synchronisation tool should be intelligent enough to check file contents and determine if there are any byte differences or if the files are exact copies. Conflicts that are only a difference in the date stamp on the file could be auto-selected to “keep latest” in the initial table of conflicts, while others that have differences would be left to the user to decide.
The synchronisation tool could be configurable to allow the user to select their own visual difference tool – I use the excellent open source WinMerge – so that they could view differences between files to make a decision and manage how to proceed. The sync tool could also have its own in-built basic visual difference tool for users who don’t use their own. This is OK for ASCII files, but more complex for binary files (although not insurmountable).
I still favour Live Mesh – despite the conflict issue – if only because it is more transparent than Syncplicity, and also has not yet deleted live filesÂ (as far as I can see so far)Â as SugarSync once did, and allows me to use my existing directories which DropBox does not.
I would like to see a simple and effective conflict management system in any and all of the cloud storage synchronisation systems because, as we commit more data to the cloud we will need effective ways in managing the little hiccups that occur along the way. Who will be first? (Or are any of the main players already claiming they can offer this?)