Chapitre 13. Transactions distribuées
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
Pour maintenir l'ordre dans un système distribué, nous devons garantir au moins une certaine cohérence. Dans "Modèles de cohérence", nous avons parlé des modèles de cohérence à objet unique et à opération unique qui nous aident à raisonner sur les opérations individuelles. Cependant, dans les bases de données, nous avons souvent besoin d'exécuter plusieurs opérations de façon atomique.
Les opérations atomiques sont expliquées en termes de transitions d'état : la base de données était dans l'état A avant le début d'une transaction particulière ; au moment où elle s'est terminée, l'état est passé de A à B. En termes d'opérations, c'est simple à comprendre, car les transactions n'ont pas d'état attaché prédéterminé. Au lieu de cela, elles appliquent des opérations à des enregistrements de données à partir d'un certain moment. Cela nous donne une certaine flexibilité en termes de programmation et d'exécution : les transactions peuvent être réorganisées et même relancées.
L'objectif principal du traitement des transactions est de déterminer les historiques autorisés, de modéliser et de représenter les scénarios d'exécution intercalaires possibles. L'historique, dans ce cas, représente un graphe de dépendance : quelles transactions ont été exécutées avant l'exécution de la transaction en cours. L'historique est dit ...