Synchronization tools overview

February 17, 2016

There are plenty of file synchronization services available on the Internet. But they all can be divided in two groups:

I. Cloud storages

When you are using these programs you upload your file into, so called, “cloud” (it’s basically a group of servers, maintaining this storage), and then your files are sent to their destinations.
This approach is not ideal and has some caveats, such as:

Uploading to server and downloading to destination devices is a really slow process! If you want to send a large file, then you have to wait for a long time until it would be available on the destination device.

You are limited by your cloud storage capacity. You can’t sync a file, that is bigger than your “cloud”. Let’s imagine, that you want to send a Blu-ray disk image to another computer. That is 25 GB file. And if you have only 10 GB free on your “cloud”, then you have to erase files or pay for a more expensive plan.

You are vendor-locked to a single service. If this service goes down, then all your data and business processes, that use file synchronization are lost.

All your base are belong to us!

All your data uploaded to cloud servers can be accessed freely by developer company and they can do anything with it. They can send your data to an advertising company or they can publish it online with free access to all. Or they can transfer your data to massive surveillance organization.
People didn’t believe in this earlier, but they started to understand that after Edward Snowden’s shocking leaks and interviews.

These caveats lead to developing a new group of synchronization tools:

II. Peer-2-peer synchronizers

Applications of this group send data directly from one device to another (peer-2-peer). They don’t store data on the servers, they are not limited by storage capacity and sending a file in a local network takes much less time. Also, these applications can work without Internet.
But they have their own caveats:

For syncing a file you need both devices to be online. So, for example, if you and your partner live in different timezones on different continents, then one of you has to leave computer online at night.

Synchronization algorithms are way less efficient than in centralized system. If a file had been changed on one computer and the difference between files was small, then you may have to retransmit the whole file.

These programs are not really suitable for backup storage, because in cloud storages you don’t have to store your backups by yourself. Professional equipment in large datacenters and engineers would take care of your data and store it very carefully. And without cloud you have to provide enough disk space to store backups, you have to monitor your disk state, because sometimes disks may break accidentally. Or a fire can just destroy all of your disks (your documents, your photos, your memories)

Closed source applications may contain malware code, that can send your personal data to remote servers. If the application has closed source, then this app may do anything with your data.

That’s it. Each approach has its own caveats. But why don’t we have universal synchronization app, that uses advantage of both of these approaches? We don’t know. That’s why we are developing Librevault…