Software Engineering Glossary

Delta Sync

Also known as: Block-Level Sync Delta Encoding Differential Sync

Delta sync transfers only the parts of a file that changed instead of the whole file. The file is treated as a list of chunks, each identified by a content hash. When the file is edited, the client re-chunks it, compares the new chunk hashes against the previous ones, and uploads or downloads only the chunks whose hashes differ. Editing a few bytes of a large file then costs kilobytes instead of the full file size.

Key Takeaways

  • Delta sync moves only changed chunks, so a small edit to a huge file transfers very little data.
  • It relies on chunking plus content-addressable storage to tell changed chunks from unchanged ones.
  • Fixed-size chunking breaks on byte insertions because every later boundary shifts; content-defined chunking fixes that.
  • It pairs with deduplication: unchanged chunks are already stored, so only new ones are written.

How It Works

  1. Represent each file version as an ordered list of content-hashed chunks.
  2. On edit, re-chunk the file and compute the new list of chunk hashes.
  3. Diff the new hash list against the old one to find which chunks are new.
  4. Transfer only the new chunks, then commit the new version’s chunk list.

Where It Is Used

  • Dropbox uses block-level delta sync so editing a large file uploads only changed blocks.
  • The rsync algorithm popularized transferring file deltas using rolling checksums.
  • Version control and backup tools store successive versions as deltas to save space.

Related glossary terms