I've been experimenting with various sync clients for cloud storage services and noticed that offline performance can vary wildly. I'm looking for best practices or algorithms that can improve sync speed when the device is offline and then reconnects.
- Incremental hashing vs full file hashing
- Chunked uploads with resume support
- Local change logs and conflict resolution strategies
What have you found works best in real-world scenarios?
We cache file hashes locally and only recompute them when a file changes. Coupled with a Bloom filter to quickly check for modified chunks, it reduces overhead dramatically.
Chunked uploads with a rolling checksum (like rsync) are a must. It allows you to resume from the last successful chunk without re-uploading the whole file.