Concepts
Block transfer
How Datamotive compresses, deduplicates, and transfers changed disk blocks from source to target.
- Product
- Datamotive Platform
- Version
- v1.0
- Documentation status
- Published
- Last updated
- Updated
- Reading time
- 2 min read
After changed blocks are identified via CBT, the block transfer pipeline is responsible for moving those blocks from the source to the target as efficiently as possible.
Transfer pipeline stages
Each changed block passes through four stages:
-
Read — The Replication Appliance reads the block from the vSphere API snapshot or the cloud SDK. Reads are batched and parallelized to maximize throughput.
-
Compress — The block is compressed using LZ4 (for speed) or ZSTD (for ratio, configurable). Typical compression ratios for enterprise workloads range from 1.5:1 to 3:1 for mixed data and up to 5:1 for text-heavy workloads. Already-compressed data (ZIP, video, encrypted volumes) compresses poorly and may expand slightly.
-
Deduplicate — Blocks are hashed (SHA-256) and compared against a local deduplication index maintained per plan. If an identical block was transferred in a recent cycle, the index record is updated and the block is not retransmitted. Deduplication is most effective for VMs with large unchanged regions across cycles.
-
Encrypt and transmit — Compressed blocks are encrypted with AES-256-GCM using a per-plan data encryption key before leaving the source network. The blocks are transmitted over TLS 1.3 to the Cloud Connector or directly to the target cloud endpoint.
Bandwidth usage
Sustained bandwidth is determined by the daily churn rate and the compression ratio:
Bandwidth (Mbps) = (Daily churn GB × 8) / (86400 seconds) / compression ratioFor a 1 TB protected workload with 3% daily churn and 2:1 compression:
= (30 GB × 8) / 86400 / 2 = ~1.4 Mbps sustainedPeak bandwidth occurs during the initial seed, when the full disk is transferred. After seeding, bandwidth drops to the incremental rate shown above.
Configuring transfer settings
The following settings are configurable per plan in the Advanced replication settings panel:
- Compression algorithm: LZ4 (default, lower CPU) or ZSTD (higher ratio, higher CPU)
- Transfer thread count: number of parallel read/write threads (default: 4, range: 1 to 16)
- Bandwidth cap: maximum sustained transfer rate in Mbps (useful to avoid saturating shared WAN links during business hours)
- Replication schedule: restrict replication cycles to specific time windows
Error handling and retries
If a block transfer fails mid-cycle (due to a network interruption, for example), the appliance checkpoints its progress. On retry, the transfer resumes from the last committed block rather than restarting from the beginning. A cycle that encounters persistent errors is marked Failed and the next cycle begins from the previous successful checkpoint.
Related docs
Was this page helpful?
