11.4.4. Résultats heuristiques

Un résultat heuristique, ou résultat non atomique, est une anomalie de la transaction. Il se réfère à une situation où certains participants à une transaction ont validé leur état, et d'autres l'ont annulé. Un résultat heuristique entraîne une incompatibilité entre les états.
Les résultats heuristiques se produisent généralement au cours de la deuxième phase du protocole de validation à 2 phases (2PC). Ils sont souvent causées par des échecs au niveau du matériel physique sous-jacent ou des sous-systèmes de communication des serveurs sous-jacents.
Il y a quatre types de résultats heuristiques différents.
Rollback heuristique
L'opération de validation a échoué car certains ou tous les participants ont abandonné la transaction.
Validation heuristique
Une opération de tentative de restauration a échoué, car tous les participants ont validé unilatéralement. Cela peut se produire si, par exemple, le coordinateur est en mesure de préparer correctement la transaction, mais décide alors de l'annuler en raison d'une défaillance de son côté, comme un oubli de mettre à jour son journal. Dans l'intervalle, les participants peuvent décider de valider.
Mixed heuristiques
Certains participants ont validé et d'autres ont abandonné
Danger heuristique
Le résultat de certaines mises à jour est inconnu. Pour les connues, ils ont soit tous été validés ou été annulés.
Les résultats heuristiques peuvent entraîner des pertes d'intégrité dans le système, et nécessitent généralement une intervention humaine pour être résolus. Ne créez pas de code qui en dépende.