Managing Metadata for Standard Providers
In Sync Framework, metadata represents information about replicas and items. This information is used to track the knowledge that each replica contains so that synchronization can be performed. Typically, the provider handles all metadata management. However, depending on the type of the item store and the provider implementation, it might be more useful to implement a component separate from the provider to handle some of the metadata tasks on the replica, such as tombstone cleanup.
Benefits of Sync Framework Metadata
Sync Framework uses metadata that includes all the information that is required to perform synchronization. The metadata is small and efficient, and Sync Framework provides components that handle many of the tasks that involve metadata. The use of metadata keeps synchronization data type agnostic and helps balance freedom, interoperability, and simplicity. The following table lists and describes some metadata benefits that Sync Framework provides.
Benefit | Description |
---|---|
Concise |
Metadata is concise because it has no per-item version vectors, and still is enough for single- and multi-master synchronization. |
Efficient |
Metadata is efficient because it uses minimal change enumeration, even in loops. |
Precise |
Sync Framework uses precise conflict detection, without under- or over-detection and no over-sending of changes. This applies to both unstructured data, such as files, and structured data, such as detailed change tracking. |
Flexible |
Users can use any store and any technique for storing metadata, can add verbs to their own protocols, and can use their own techniques to optimize synchronization operations. |
Interoperable |
Metadata is agreed upon. Therefore, arbitrary topologies can be supported. |
Easy |
Sync Framework provides a standard toolkit. This handles many of the complexities of multimaster synchronization. The toolkit can also be customized to enable users to make changes to obtain even better performance. |
Useful |
Sync Framework manages as much metadata as is required. For example, an application can decide to handle only timestamps and to let Sync Framework handle versions, knowledge, and metadata storage. The application does not have to track deletions because Sync Framework computes them from a list. The application does not have to track changes because Sync Framework computes them from hashes. Also, if it is necessary, Sync Framework can provide full multimaster support for legacy stores. |
In this Section
- Metadata Requirements for Standard Providers
Describes the required metadata for each replica and the required metadata for each item that is to be synchronized.
- Flexible IDs
Describes how to create and use flexible IDs, including global IDs.
- Synchronization Versions
Describes the version structure that tracks the version of an item.
- Managing Tombstones
Describes strategies for how to manage tombstones on a replica. Also, describes how the creation version and forgotten knowledge can help prevent problems that might occur when tombstones are cleaned up.
- Understanding Synchronization Knowledge
Provides an abstract view of how the Sync Framework synchronization algorithms use knowledge to enable change enumeration and conflict detection.
- Sync Framework Metadata Storage Service
Describes the metadata storage service, which helps to store synchronization metadata for a provider when the provider represents a replica that cannot otherwise store metadata.