Optimization of synchronization for slow devices

Some devices can store large volumes of information that isn't all media content or that may be inherently slow to read. To avoid an unacceptably long delay between when the device is inserted and when media playback can begin, mm-sync optimizes the synchronization of slow devices through its foreground merge feature.

The overhead of database transactions makes it valuable to insert information for many files (say, 100) in one database operation. If the media file information on the device is slow to read, extracting information for the number of files necessary for a full transaction can take up to several seconds, easily exceeding the client application's limit on playback response times. To allow faster playback, mm-sync uploads information on the first media file found, which gets marked as the first fid file (first playable file), in a dedicated database transaction. This operation is known as a foreground synchronization merge.

The merge makes the first media file playable sooner and allows the remaining file and metadata information to be synchronized later in the background, while the first media file is played. When developing your client application, you can choose either to begin playback when the first fid is synchronized to the database or to wait until the files pass of synchronization completes so you have the entire list of tracks. The second strategy may be necessary if you have to play tracks in a certain order (say, alphabetically) that requires that all files are synchronized before playback can start.

You can set the priority of the synchronization merge with the <MergePriorityAdjust> element in the configuration file.