Partager via


Sommes de contrôle et nombres d’objets

Les sommes de contrôle et les nombres d’objets sont des stratégies de détection qui permettent à une application de détecter un état de mise à jour partielle. Les sommes de contrôle peuvent également être utilisées pour détecter les incohérences introduites par la résolution de collision. Les sommes de contrôle et les nombres d’objets nécessitent un emplacement pour stocker la valeur utilisée pour vérifier une somme de contrôle ou un nombre d’objets. Il peut s’agir d’un objet « maître » choisi parmi ceux impliqués dans la relation spécifique à l’application ou sur un objet parent sous lequel les objets associés sont stockés.

Pour les sommes de contrôle, les applications lisant les objets associés vérifient la somme de contrôle en calculant un résultat local et en le comparant à la valeur stockée. Si les valeurs ne correspondent pas, le réplica est dans un état de mise à jour partielle et les objets ne peuvent pas être utilisés.

Pour les nombres d’objets, les applications comptent les objets associés (généralement les enfants d’un parent unique) et comparent le nombre à la valeur stockée. Si le nombre ne correspond pas, le réplica est dans un état de mise à jour partielle et les objets ne peuvent pas être utilisés.

Quelques considérations importantes :

  • Pour que l’approche de somme de contrôle fonctionne, l’un ou plusieurs attributs utilisés pour calculer la somme de contrôle doivent être mis à jour. L’algorithme utilisé pour calculer la somme de contrôle doit refléter de manière fiable les différences d’entrée. Si de nombreuses entrées différentes produit la même somme de contrôle, l’algorithme ne détecte pas de manière fiable les mises à jour partielles. « Salting » de l’entrée avec des valeurs telles que le objectGUID de l’ordinateur source et la date et l’heure de la mise à jour sont également utiles.
  • Le nombre d’objets fonctionne le mieux lorsqu’il est utilisé avec de nouveaux ensembles d’objets ou en combinaison avec des GUID de cohérence (consultez la section suivante pour plus d’informations). L’application effectuant la mise à jour doit savoir, à l’avance, le nombre d’objets qui se trouveront dans le conteneur une fois la mise à jour terminée ou utiliser d’autres moyens de marquer le conteneur non valide pendant que la mise à jour se poursuit (par exemple, en définissant le nombre sur zéro). Une fois la mise à jour terminée, l’application source marque le conteneur avec le nombre d’objets contenus.