Share via


Requisitos de metadatos

Sync Framework requiere un conjunto determinado de metadatos para cada réplica y para cada elemento que se va a sincronizar.

Metadatos necesarios para cada réplica

Cada réplica tiene que almacenar el conjunto de metadatos que se muestra en la tabla siguiente.

Elemento de metadatos Descripción

Identificador de réplica

Se trata del identificador único de una réplica en una comunidad de sincronización. Aunque el identificador de réplica es flexible y, por consiguiente, el esquema puede definirlo para la comunidad, recomendamos un GUID de 16 bytes. El formato de un identificador de réplica que se pasa a un método Sync Framework debe coincidir con el formato especificado por el proveedor.

Código administrado: el formato se especifica mediante la propiedad ReplicaIdFormat de la clase SyncIdFormatGroup. El identificador se representa mediante la clase SyncId.

Código no administrado: el formato se especifica mediante el campo replicaId de la estructura Estructura ID_PARAMETERS. La estructura SYNC_ID representa el identificador.

Contador actual

Se trata del contador actual para la réplica. Tenga en cuenta que es un número conceptual y se puede deducir a partir de la versión local más reciente del conocimiento por cada elemento o con algún otro valor monótonamente creciente disponible para la réplica. Por ejemplo, una réplica podría utilizar la hora del reloj actual siempre que pueda evitar que ese valor se restablezca.

Código administrado: se representa mediante un valor UInt64.

Código no administrado: se representa mediante un valor ULONGLONG.

Mapa de claves de réplica

Es una asignación entre los identificadores de réplica y claves de 4 bytes. Debido a las repetidas apariciones de los identificadores de réplica en los metadatos (se recomienda que sean GUID de 16 bytes), es más eficiente representar los identificadores mediante una tabla para asignar los identificadores de réplica con las claves de 4 bytes. Estas claves se usan entonces siempre que se requieran referencias a réplicas determinadas.

Código administrado: se representa mediante un valor ReplicaKeyMap.

Código no administrado: se representa utilizando IReplicaKeyMap.

Conocimiento actual

Es el resumen de la información de versión que la réplica conoce para el ámbito especificado. El conocimiento de la réplica se usa a través de los servicios de metadatos y no se debería usar directamente.

Código administrado: se representa mediante un valor SyncKnowledge.

Código no administrado: se representa utilizando ISyncKnowledge.

Conocimiento olvidado

Permite a una réplica detectar que una réplica asociada no conoce los elementos que se han eliminado. Esto puede ocurrir cuando se hayan limpiado los marcadores de exclusión para esos elementos. El conocimiento olvidado se manipula a través de los servicios de metadatos.

Código administrado: se representa mediante un valor ForgottenKnowledge.

Código no administrado: se representa utilizando IForgottenKnowledge.

Registro de conflictos

Es un registro de los conflictos que se produjeron cuando se detectaron conflictos después de la enumeración de los cambios y no se resolvieron. Las réplicas deben mantener un registro de conflictos. La réplica determina la representación del registro de conflictos y Sync Framework no tiene que proporcionar acceso al mismo.

Registro de marcadores de exclusión

Almacena información sobre la eliminación de elementos de una réplica de modo que los cambios de eliminación se propaguen correctamente en las comunidades de sincronización y los elementos eliminados no se vuelvan a introducir de forma accidental. Las réplicas deben mantener un registro de marcadores de exclusión. La réplica determina la representación de un registro de marcadores de exclusión y Sync Framework no tiene que proporcionar acceso al mismo.

Metadatos necesarios para cada elemento

Cada elemento que se va a sincronizar debe tener el conjunto de metadatos que se muestra en la tabla siguiente.

Elemento de metadatos Descripción

Identificador global

Es un identificador de un elemento almacenado en una réplica. Dado que la réplica es responsable de generar los identificadores globales, la réplica puede asignar identificadores globales que hagan la enumeración más eficaz. Por ejemplo, una comunidad puede definir su formato de identificador global como un GUID que vaya precedido de un prefijo de 8 bytes. El prefijo se puede utilizar a continuación para controlar el criterio de ordenación de los identificadores globales. De este modo se permite que los proveedores usen intervalos para enumerar los cambios más fácilmente y dado que un intervalo puede contener un número grande de elementos, la estructura del conocimiento puede ser más compacta cuando los elementos se representan como grupos ordenados. Para obtener más información sobre los formatos de los identificadores globales, vea Identificadores flexibles.

Código administrado: el formato se especifica mediante la propiedad ItemIdFormat de la clase SyncIdFormatGroup. El identificador se representa mediante la clase SyncId.

Código no administrado: el formato se especifica mediante el campo itemId de la estructura Estructura ID_PARAMETERS. La estructura SYNC_ID representa el identificador.

Versión actual

Es la última versión actualizada para un elemento determinado. La versión actual contiene la clave de la réplica que actualizó el elemento en último lugar y el contador de la réplica cuando se realizó el cambio.

Esta versión se almacena por cada unidad de cambio cuando un elemento utiliza unidades de cambio. Por ejemplo, un contacto podría tener números de versión de unidad de cambio distintos para los campos de número de teléfono y dirección.

Código administrado: se representa mediante un valor SyncVersion.

Código no administrado: se representa mediante SYNC_VERSION.

Versión de creación

Es la versión correspondiente a cuando se creó el elemento. La versión de creación contiene la clave de la réplica que creó el elemento y el contador de la réplica cuando se creó el elemento.

Código administrado: se representa mediante un valor SyncVersion.

Código no administrado: se representa mediante SYNC_VERSION.

Requisitos de almacenamiento

Dado que la réplica determina el formato para el identificador global, la cantidad de espacio que se necesita para almacenar los metadatos para cada elemento varía. Sin embargo, cuando se utiliza el formato recomendado de un GUID más un prefijo de 8 bytes, la cantidad total de almacenamiento que se requiere es de 48 bytes, como se muestra en la tabla siguiente.

Elemento Bytes

Identificador global

24 (GUID + prefijo de 8 bytes)

Versión actual

12 (clave de réplica de 4 bytes + contador de 8 bytes)

Versión de creación

12 (clave de réplica de 4 bytes + contador de 8 bytes)

48 bytes en total

Vea también

Referencia

Interfaz IReplicaKeyMap
Estructura SYNC_ID
Estructura SYNC_GID
Estructura SYNC_VERSION
ReplicaKeyMap
SyncId
SyncGlobalId
SyncIdFormat
SyncIdFormatGroup
SyncVersion

Conceptos

Administración de los metadatos
Descripción del conocimiento de sincronización
Identificadores flexibles
Versiones de sincronización
Administrar marcadores de exclusión