The <Configuration>/<Database>/<Synchronization> element

The <Configuration>/<Database>/<Synchronization> element defines the settings that control synchronization, including the optimization of system resources, the file types to include or exclude, the mapping of metadata provider fields to database fields, and policies for media data and playlists.

The elements that define the synchronization settings make up the bulk of the configuration file. It's helpful to visualize the synchronization elements based on the area of functionality they control.

Resource optimization elements

Tag name Attribute Default Description
<Priority>   0 Sets the priority of the foreground synchronization threads. Zero sets the default priority, which is the same priority that the mm-sync service uses at startup. Nonzero values assign absolute priorities.
<MergePriorityAdjust>   1 Sets the synchronization merge thread's priority adjustment. This value is added to the synchronization thread priority to derive the merge thread priority. The default behavior is to add 1 to the synchronization thread priority.
<MaxThreads>   8 Sets the maximum number of foreground synchronization threads permitted to run at a time.
<MaxRecursionDepth>   8 Sets the maximum directory structure depth to recursively visit when synchronizing a mediastore. This setting also applies to priority folders.
<MaxSyncBuffers>   250 Sets the maximum number of synchronization records in the buffers between the foreground and background synchronization threads. More buffers increases memory usage, but speeds up synchronization.

Database size management elements

Tag name Attribute Default Description
<ChangedFilesHaveConstantId> enabled off When enabled, ensures media and playlist files with a changed size or modification date keep the same ID value in the database. In such cases, the files and playlists table entries for the changed items have their accurate flags cleared, but there's no other indication that these items have changed. This setting helps limit the database size by preventing new rows from being created whenever a file is changed, which happens when the ID values are not kept the same.
<StopOnDbLimit> enabled false Controls whether or not synchronization stops when a database limit is reached.

Event elements

Tag name Attribute Default Description
<Events> folder trimonly Controls what optional synchronization events are delivered. Currently, only the delivery of folder events is controllable. Acceptable values are on, off, and trimonly. Use trimonly to send folder events only when a folder object (file, folder, playlist) is deleted. Use on to send events following folder object additions, modifications, and deletions. Use off to disable event sending.

Synchronization filter elements

Tag name Attribute Default Description
<SyncFileMask>   (empty) Defines a POSIX regular expression (regex) pattern for naming files you do not want synchronized. Only one SyncFileMask can be specified. The default setting is an empty mask, meaning no files will be skipped during synchronization.
<NonMediaItems>     Controls the media pre-synchronization scan done for each folder. You can configure mm-sync to skip the synchronization of folders containing too much nonmedia content. The pre-synchronization scan parameters are set through the elements contained in the <NonMediaItems> element.
<NonMediaItems>/<MaxItems>   0 Sets a limit on how many nonmedia files can be found in a folder before that folder is skipped during synchronization.
consecutive false Sets whether the limit of nonmedia files is a consecutive file limit. The file order is generally not guaranteed, so using a consecutive limit could yield nondeterministic results. When this setting is disabled, as is the default, MaxItems is a limit of total files.
<NonMediaItems>/<PrescanLimit>   0 Limits how many files can be scanned when searching for media content in a folder. Zero disables this limit and forces the entire folder to be scanned; nonzero values enforce a limit on files scanned.
<MaxFolderItems>   0 Controls the maximum number of items read from a folder. This limit excludes "." and "..", but includes any items whose filenames match the pattern in <SyncFileMask>. Zero disables the limit on the number of items read from; nonzero values enforce this limit.
<MaxMediaStoreItemsConfiguration>     Controls the maximum number of items read from mediastores. For each mediastore on which you want to impose a limit of items read, define a separate <MaxMediaStoreItems> element.
<MaxMediaStoreItemsConfiguration>/<MaxMediaStoreItems>   100 Limits the number of items read from a mediastore. This limit excludes "." and "..", but includes any items whose filenames match the pattern in <SyncFileMask>. Zero disables the limit on the number of items read; nonzero values enforce this limit.
mediastore (none) Names the mediastore the limit of items read applies to.
<extensions>     Specifies which file extensions are supported, allowing you to filter the synchronization of content by file type. This element contains the <playlists> element, which lists supported playlist extensions, and the <library> element, which lists supported media file extensions. Files with unlisted extensions aren't synchronized.

Advanced configuration elements

Some synchronization elements contain many other elements that collectively configure helper utilities such as plugins and playlist synchronizers used by mm-sync to perform advanced tasks.

Name Description
<ConfigurableMetadata> Defines the metadata provider fields that are copied into specific database fields. The mm-sync service has no special knowledge of this metadata but will pass it along to the database.
<MSS> Contains elements that configure mediastore synchronizers (MSSs). Currently, only iPod synchronizers can be configured in this area.
<PLSS> Defines resource usage limits and filename-matching parameters for playlist session synchronizers (PLSSs). This element can also name a nondefault configuration file for the library that mm-sync uses to synchronize playlists.