Compartilhar via


Requisitos de metadados

O Estrutura de sincronização requer um conjunto de metadados específicos para cada réplica e para cada item a ser sincronizado.

Metadados necessários para cada réplica

Cada réplica é necessária para armazenar o conjunto de metadados mostrado na seguinte tabela.

Elemento de metadados Descrição

ID da réplica

É o identificador exclusivo de uma réplica em uma comunidade de sincronização. Embora a ID da réplica seja uma ID flexível podendo, portanto, ser definida pelo esquema para a comunidade, é recomendado um GUID de 16 bytes. O formato de uma ID da réplica passada para um método do Estrutura de sincronização deve corresponder ao formato especificado pelo provedor.

Código gerenciado O formato é especificado pela propriedade ReplicaIdFormat da classe SyncIdFormatGroup. A ID é representada pela classe SyncId.

Código não gerenciado O formato é especificado pelo campo replicaId da estrutura Estrutura ID_PARAMETERS. A ID é representada pela estrutura SYNC_ID.

Contagem em escala atual

É a contagem em escala atual da réplica. Lembre-se que este é um número conceitual e pode ser inferido da última versão local no conhecimento por item ou de algum outro valor que aumenta de forma monotônica disponível para a réplica. Por exemplo, uma réplica pode usar o tempo de relógio atual contanto que possa impedir este valor de ser redefinido.

Código gerenciado Representado por um UInt64.

Código não gerenciado Representado por um ULONGLONG.

Mapa da chave da réplica

É um mapeamento entre IDs da réplica e chaves de 4 bytes. Devido as ocorrências repetidas de IDs da réplica nos metadados (recomenda-se que sejam GUIDs de 16 bytes), é mais eficiente representar as IDs usando uma tabela para mapear IDs da réplica até chaves de 4 bytes. Estas chaves são usadas em outros lugares nos quais são necessárias referências a réplicas específicas.

Código gerenciado Representado usando ReplicaKeyMap.

Código não gerenciado Representado usando IReplicaKeyMap.

Conhecimento atual

É o resumo das informações da versão que a réplica conhece para o escopo especificado. O conhecimento da réplica é manipulado através dos serviços dos metadados e não deve ser manipulado diretamente.

Código gerenciado Representado usando SyncKnowledge.

Código não gerenciado Representado usando ISyncKnowledge.

Conhecimento esquecido

Permite uma réplica detectar que uma réplica de parceiro não sabe sobre itens que foram excluídos. Isso pode ocorrer quando as marcas de exclusão para estes itens forem limpas. O conhecimento esquecido é manipulado através de serviços de metadados.

Código gerenciado Representado usando ForgottenKnowledge.

Código não gerenciado Representado usando IForgottenKnowledge.

Log de conflitos

É um log dos conflitos ocorridos quando estes foram detectados após a enumeração de alterações e não foram resolvidos. As réplicas devem manter um log de conflitos. A representação de um log de conflitos é determinada pela réplica e não é necessário fornecer acesso a este log para o Estrutura de sincronização.

Log da marca de exclusão

Armazena informações sobre a exclusão de itens de uma réplica de forma que alterações de exclusão são propagadas corretamente nas comunidades de exclusão e itens excluídos não são reintroduzidos acidentalmente. As réplicas devem manter um log de marca de exclusão. A representação de um log de marca de exclusão é determinada pela réplica e o acesso a este log não deve ser fornecido ao Estrutura de sincronização.

Metadados necessários para cada item

Cada item a ser sincronizado deve ter o conjunto de metadados mostrado na seguinte tabela.

Elemento de metadados Descrição

ID global

É um identificador para um item armazenado em uma réplica. Como a réplica é responsável por gerar as IDs globais, a réplica pode alocar IDs globais que permitem uma enumeração mais eficiente. Por exemplo, a comunidade pode definir seu formato de ID global para ser um GUID precedido por um prefixo de 8 bytes. O prefixo pode ser usado para controlar a ordem de classificação das IDs globais. Isso permite que os provedores usem os intervalos mais facilmente para enumerar alterações e porque um intervalo pode conter um grande número de itens, a estrutura de conhecimento pode ser mais compacta quando os itens são representados como grupos ordenados. Para obter mais informações sobre formatos de ID global, consulte IDs flexíveis.

Código gerenciado O formato é especificado pela propriedade ItemIdFormat da classe SyncIdFormatGroup. A ID é representada pela classe SyncId.

Código não gerenciado O formato é especificado pelo campo itemId da estrutura Estrutura ID_PARAMETERS. A ID é representada pela estrutura SYNC_ID.

Versão atual

É a última versão atualizada de um item específico. A versão atual contém a chave da réplica que atualizou o item mais recentemente e a contagem em escala da réplica quando a alteração foi feita.

Esta versão é armazenada por unidade de alteração quando um item usa unidades de alteração. Por exemplo, um contato pode ter números distintos da versão da unidade de alteração para os campos de endereço e número de telefone.

Código gerenciado Representado pelo SyncVersion.

Código não gerenciado Representado pelo SYNC_VERSION.

Versão de criação

É a versão quando o item foi criado. A versão de criação contém a chave da réplica que criou o item e a contagem em escala da réplica quando o item foi criado.

Código gerenciado Representado pelo SyncVersion.

Código não gerenciado Representado pelo SYNC_VERSION.

Requisitos de armazenamento

Como a réplica determina o formato da ID global, o espaço necessário para armazenar os metadados para cada item varia. No entanto, quando é usado o formato recomendado de um GUID mais um prefixo de 8 bytes, o valor total de armazenamento necessário é de 48 bytes, como mostrado na tabela a seguir.

Item Bytes

ID global

24 (GUID + prefixo de 8 bytes)

Versão atual

12 (chave da réplica de 4 bytes + contagem em escala de 8 bytes)

Versão de criação

12 (chave da réplica de 4 bytes + contagem em escala de 8 bytes)

total de 48 bytes

Consulte também

Referência

Interface IReplicaKeyMap
Estrutura SYNC_ID
Estrutura SYNC_GID
Estrutura SYNC_VERSION
ReplicaKeyMap
SyncId
SyncGlobalId
SyncIdFormat
SyncIdFormatGroup
SyncVersion

Conceitos

Gerenciamento de metadados
Noções básicas sobre conhecimento de sincronização
IDs flexíveis
Versões de sincronização
Gerenciando marcas de exclusão