Resilio Connect can be used in collaboration scenario where multiple people need to exchange files as they work on them together.
Resilio Connect follows a lot of complex rules and performs a lot of operations when synchronizing files:
- detect local file change or learn about file changes on remote agents;
- verify whether file needs to be synced and in which direction, which agents need to receive file update, which agents have the latest version;
- discover what part of file needs to be synced, the whole file or only some pieces;
- actually sync the file and write on disk, move older file version to Archive.
The biggest challenge for Resilio Agent is that a lot of files may change on multiple computers at the same time, so a lot of efforts need to be done so as to synchronise them quickly and reliably.
Below are some additional settings and tweaks to ease the flow.
1. Enable conflict resolution
Especially valid if there's a mix of operating systems in the mesh - Windows, Linux, OS X. It's almost inevitable that filename conflicts will appear here, especially those caused by different letter cases in files' and folders' names.
In Agent Profile set option "Resolve filename system conflicts" to True. When enabled, if Agent faces a potential filename conflict, it will try to fix it. If fails for a reason, it will add .Conflict part to the filename and continue the job. Otherwise, Agent will be stuck on these files as it won't be able to write the downloaded file on disk. For example, if it happens on a subfolder, files inside it won't be synced.
2. It's always advisable to have an arbitrary agent in mesh
Especially valid if Selective Sync is used on other agents. The arbitrary agent shall not have Selective Sync enabled as it will keep all the files and will confirm receiving files to others. Users may now be confident that files are there and clear them off their workstations to free up some space.
Add custom parameter
priority_peers with Agent ID as value in Agent Profile. Agent ID can be learned from the agent details. If several agents need to be defined, use semicolon (;) as separator.
3. Enable setting to detect file collision
Agent technically cannot prevent users from editing same file on different workstations at the same time, and will synchronise the file with latest timestamp overwriting others. However, by adding custom parameter
notify_file_edit_conflict_time_diff it's possible to at least inform a user that the recently edited file is moved to Archive and is replaced with a newer file from remote agent. Read more about the peculiarities of this option here.
4. Force all agents to always calculate file hashes
On the one hand it may require additional CPU and disk time and affect performance. On the other, it's good to have agents know the hashes - agents will simply compare the hashes and see if anything needs to be re-synced instead of just re-downloading the file. It's also very useful and safe to have file hashes if users rename or move files, subdirectories in bulk. Add custom parameter
lazy_indexing with value
false to Agent profile.
5. Improve the way renames are handled
Files are renamed pretty frequently in a team work. From system's point of view, a rename is deleting and then recreating a file, so Agent has to artificially guess and correctly process the rename so as to avoid re-syncing of a file. Read more about it here. This may be a problem if a subfolder with a lot of files inside is renamed.
To ease processing renames, set option "Read files ID from disk" to True in Agent profile.