3.3.1.3 Slow Sync

Slow Sync is a secondary means to ensure the consistency of the data between each pair of machines. The main part of the Distributed File System Replication (DFS-R) protocol of exchanging version vectors can in some circumstances, such as garbage collection of tombstone updates, leave inconsistencies between machines undetected. The slow sync process is periodically run on a client for each replicated folder to detect and correct such inconsistencies.  <34>

When specifying the Slow Sync protocol, the following states are referred to.

  • SlowSyncInit: The client starts a slow sync with the server for a particular replicated folder by requesting a version chain vector from the server via the RequestVersionVector method, setting requestType to REQUEST_SLOW_SYNC.

  • SlowSync Requesting Version Vector: The client is waiting for the server's asynchronous callback to the AsyncPoll method to supply the requested version chain vector.

  • SlowSync Poll Again: The client registers an additional poll with the server.

  • SlowSync Request Records: The client requests all of the replicated folder's non-tombstone update records from the server and processes them.

The state transitions associated with Slow Sync are shown in the following state diagram.

Slow Sync state machine

Figure 7: Slow Sync state machine