In reviewing synchronization tools there are three primary competitors, MirrorSync, GoZync and SyncDek. I’ll post our review of those three first, and then get to the newer products in the latter posts.
Mirror Sync is made by the great folks over at 360Works and has been around since early 2012. They are up to version 2.109 (released June of 2014) and it has grown and gotten better with age. Version 2.109 is the version tested and all comments will be regarding that version.
As a reminder, we are testing all synchronization tools on the default Invoices starter solution, which includes 6 tables by default with no more than 40 fields in any one table. To get the larger field counts for the speed tests we would add 10 additional fields to the one large table already present (customers).
From Patrick (our intern and tester, you can read more about our testing process in our last post.):
Unique Features
Throughout their website 360Works boasts that MirrorSync is very easy to setup and that it should not take more than an hour to start syncing data. Out of the three this is the only one that gives an estimated time on how long it will take to setup.
It also goes on to talk about how fast MirrorSync’s syncs are. It achieves this speed by using web communication to transfer data so that it does not have to worry about layouts or scripts. Along with that it uses multithreading to read changes from the server and user at the same time to cut down on sync times.
Another useful feature is that there is no limit to the amount of data that can be transferred during a sync, which could come in handy especially if there are many large container fields. MirrorSync gives a lot of control over what does and does not get synced on a mobile device. Meaning that users can add their own record-filtering and editing logic before anything is done to the records.
MirrorSync is free and comes with server and one device license, to add more it is an additional $95 per device.
When it came time to integrate, these were Patrick’s thoughts:
Integration Test
MirrorSync was by far the easiest tool to integrate of the tools tested. The MirrorSyncConfigClient was very straight forward with creating a new integration. Although there was a bit of difficulty in getting a deployed version of the database. Besides that it was simple to integrate, it amounted to pasting a few tables, scripts and layouts into the FileMaker solution and then making sure that each table that I wanted to sync had a corresponding sync layout. It took me a total of one and a half hours to be able to sync data from the mobile solution. The majority of the time was spent figuring out how to download a copy from the server because all of the ways they suggested in the client were not working.
Editor note (The download issue has since been resolved)
If I were to integrate with MirrorSync again it would probably only take about half an hour to an hour. All in all a very simple set up process except sending out new improved versions is more difficult than some tools.
We then ran some speed tests. Charts are below, one important thing to note on container field testing. There is a setting to change the threshold MirrorSync uses to determine when to use open remote for container fields (open remote should be faster for large files).
From Patrick:
After finding the variable in the mirrorSync script I proceeded to change the values to see if changing it changed the sync times. When I set it equal to 0 (telling it to always use open remote) it did end up running faster but it also ended up stalling when it tried to sync one 512 mb record. Then I set it to 128000000 (128 mb) to see if it made a difference. Compared to the default value of 1000000 it did run faster until it synced the 512 mb record.
Our feeling is that as with all things, control is nice, but a good understanding of your data would be vital if you were to change the default setting.
50 Records |
100 Records |
500 Records |
1000 Records |
5000 Records |
|
---|---|---|---|---|---|
10 Fields | 9 seconds | 20 seconds | 1 minute 14 seconds | 2 minutes 25 seconds | 11 minutes 51 seconds |
50 fields | 9 seconds | 21 seconds | 1 minute 19 seconds | 2 minutes 42 seconds | 12 minutes 47 seconds |
50 Records |
100 Records |
500 Records |
1000 Records |
5000 Records |
|
10 Fields | 7 seconds | 7 seconds | 31 seconds | 55 seconds | 4 minutes 16 seconds |
---|---|---|---|---|---|
50 Fields | 6 seconds | 8 seconds | 31 seconds | 1 minute 16 seconds | 5 minutes 49 seconds |
File Size | 50 Records |
100 Records |
500 Records |
1000 Records |
1 mb | 1 minute 59 seconds | 4 minutes 29 seconds | 19 minutes 39 seconds | Not Performed |
---|---|---|---|---|
16 mb | 26 minutes 21 seconds | Not Performed | Not Performed | Not Performed |
128 mb | 9 minutes 41 seconds (Only 2 records) |
Not Performed | Not Performed | Not Performed |
512 mb | 27 minutes 53 seconds (only 1 record) |
Not Performed | Not Performed | Not Performed |
1 gb | Not Performed | Not Performed | Not Performed | Not Performed |
As this was our first tool to test, this will provide a baseline for us to compare other tools against moving forward. As we get more tools to compare with, charts will be made for better visual comparisons.
Next we wanted to compare features. In choosing features to list and compare, we tried to focus on features that were quantifiable and concise, but weren’t covered in other analysis. For MirrorSync they provide (what we consider the preferred answer is in green, the less ideal answer in red):
MirrorSync | |
---|---|
The ability to choose what fields to synchronize | Yes |
Tools to help deploy local offline copies | Yes |
Developer can control the synchronization direction | Yes |
Synchronizes container fields | Yes |
Provides field level merge to manage conflicts | Yes |
Supports Server to Server synchronization | Yes |
Open Remote required | No |
Requires UUID | No |
Deletions synchronize both directions | Yes |
Requires additional hosted files | No |
Resume incomplete synchronization | Yes |
Requires FileMaker Server | Yes |
Field level conflict management | Yes |
Approximate first time to integrate | 1 Hour 30 Minutes |
Time to integrate once familiar | 30 Minutes |
We’ll continue to test and report on a new product each week. If you’d like us to expand our testing to include something you feel we may have missed, or just want to chime in with your thoughts or say something nice about MirrorSync or 360Works. Please leave a comment below.
Thanks a lot for doing these reviews. I’m looking forward to the reviews of the other products and the newer ones as well!
Yeah- I’ll be forward to these. Plug-in reviews are in short supply.