hhz

Feature Request: Don't use remote sync server if local one is available

Recommended Posts

Hi,

here's a feature request:

btsync should never retrieve data from a remote sync server if that data is also available from a sync server on the local network.

Reasoning: Assume there are three btsync machines, one at the office, one at home, one laptop. The laptop serves as sneakernet-acceleration - user makes a major change on the office machine, syncs to laptop through the office LAN, brings laptop home, turns on home machine.

For this case, btsync on the home machine will retrieve data from the office machine even if the laptop is already present on the home network as a 100% up-to-date copy.

I believe a change like this would reduce the amount traffic on the user's internet connection to remote servers significantly.

Thanks!

Share this post


Link to post
Share on other sites

I believe a change like this would reduce the amount traffic on the user's internet connection to remote servers significantly.

It might reduce the amount of traffic, but it would adversely affect Sync's performance!

Assume you have a large file on 3 devices (1 local device, 2 remote devices), and the file is to be sync'd to a 4th device (also local) that doesn't yet have the file. Sync will be far faster if different chunks of data can be simultaneously obtained from all 3 sources at once, rather than just 1 (the local one).

If you really don't wish Sync to use "remote" sources when syncing, you can always turn off the Relay, Tracker, and DHT options

Share this post


Link to post
Share on other sites

I don't think that this is significant drop in performance. I'd guess that in my case, a sync that took two hours with the external source would take two hours and five minutes instead. Being nice to The Internet out there and keeping my pipe clear by not creating unnecessary traffic is more important to me than a negligible improvement in speed.

Share this post


Link to post
Share on other sites

FYI:

 

This undesired behaviour still exists in 1.3.106 and I still consider it an issue that needs to be fixed.

 

Situation today: An office machine with a sync folder of 100 GB and a home NAS with that same sync folder. These two are synced.

 

I have just set up a laptop at my office and added the sync folder there.

 

Right now, the laptop is downloading files from the remote NAS at the top of its pipe's upload capacity, clogging the internet. While a full copy is available just 1 meter next to it on the local network.

 

This is bad for the internet. btsync should not hog traffic bandwidth when it's not necessairy.

Share this post


Link to post
Share on other sites

I have multiple machines both local(some) and remote(many) and so far when I have large files they sync local at full speed on the switch, and comparatively a tiny amount from remote servers. BTYsync may not officially prioritize local traffic, but the speed of the network you're connected to impacts where the data eventually comes from. I would check your local network configuration for a bottleneck. 

 

Alternatively look here for forcing local only transfer. tl;dr Change your NAS and office server (and likely laptop as well) to local only sync (turn off all options but 'search LAN'). 

Share this post


Link to post
Share on other sites

btsync should never retrieve data from a remote sync server if that data is also available from a sync server on the local network.

 

++

 

I reconized btsyncs "faulty" behaviour some time ago, but never realized, it wasn't my fault, but a feature.

 

I often wondered, why the transfer of the data took so damn long, when all the files i'd like to share are on another computer just next to me in the same network.

(For $$ reason, we have a "small" Internet line to the world but 1GBit network inside our company.)

 

It seems obvious to me, that "local" data needs be prefered before non-local data.

 

Dropb*x btw. has a great feature called "LAN-Synchronisatio", which -if activated by the user- just syncs all the data in the LAN first, and then to/via the internet.

Share this post


Link to post
Share on other sites

I like that idea. But I wouldn't bind it to local computers. Instead I would call it like this:
If two remote nodes provide the same data and the reached bandwidth differs by more than 75%, just skip the slower one. Make the actual percentage configurable.

 

 

 

The idea is: If the bandwidth differs by a certain percentage, the slower node has no significant impact in the overall performance. So there is no need to fill up the like, no matter if its the own line to the internet or the remote nodes line.

 

Regards,

Stephan.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.