Compartilhar via


Somas de verificação e contagens de objetos

Somas de verificação e contagens de objetos são estratégias de detecção que permitem que um aplicativo detecte um estado de atualização parcial. Somas de verificação também podem ser usadas para detectar inconsistências introduzidas pela resolução de colisão. As somas de verificação e as contagens de objetos exigem um local para armazenar o valor usado para verificar uma soma de verificação ou uma contagem de objetos. Isso pode estar em um objeto "mestre" escolhido entre os envolvidos na relação específica do aplicativo ou em um objeto pai no qual os objetos relacionados são armazenados.

Para somas de verificação, os aplicativos que leem os objetos relacionados verificam a soma de verificação calculando um resultado local e comparando-o com o valor armazenado. Se os valores não corresponderem, a réplica estará em um estado de atualização parcial e os objetos não poderão ser usados.

Para contagens de objetos, os aplicativos contam os objetos relacionados (normalmente filhos de um único pai) e comparam a contagem com o valor armazenado. Se as contagens não corresponderem, a réplica estará em um estado de atualização parcial e os objetos não poderão ser usados.

Algumas considerações importantes:

  • Para que a abordagem de soma de verificação funcione, um ou mais atributos usados na computação da soma de verificação devem ser atualizados. O algoritmo usado para calcular a soma de verificação deve refletir de forma confiável as diferenças na entrada. Se muitas entradas diferentes forem o produto da mesma soma de verificação, o algoritmo não detectará de forma confiável atualizações parciais. "Salgar" a entrada com valores como o objectGUID do computador de origem e a data e hora da atualização também são úteis.
  • As contagens de objetos funcionam melhor quando usadas com novos conjuntos de objetos ou em combinação com GUIDs de consistência (consulte a próxima seção para obter mais informações). O aplicativo que está executando a atualização deve saber, com antecedência, o número de objetos que estarão no contêiner quando a atualização for concluída ou usar algum outro meio de marcar o contêiner inválido enquanto a atualização continuar (por exemplo, definir a contagem como zero). Depois de concluir a atualização, o aplicativo de origem marca o contêiner com a contagem de objetos contidos.