La plupart des implémentations de validation en deux phases, si je comprends bien, nécessitent que tous les nœuds d'un système s'accordent sur la valeur avant de s'engager localement et seulement après qu'ils ont tous commis localement répondre au client - est-ce une compréhension correcte de 2PC?

Cela fait-il alors de 2PC une implémentation du modèle de cohérence séquentielle linéarisable?

Je pensais que parce que la valeur retournée au client ne sera jamais obsolète et qu'elle se produit en temps réel, cela signifie qu'elle est vraiment linéarisable, n'est-ce pas?

Je n'entends jamais 2PC décrit comme linéarisable, alors pensez qu'il y a quelque chose ici que je ne comprends pas.

1
red888 3 nov. 2019 à 18:13

1 réponse

Cela ne doit pas l'être, et il existe de nombreux meilleurs algorithmes qui survivent aux échecs de crash (ce que 2PC ne fait pas). Cela dit, vous pouvez utiliser la validation en deux phases pour implémenter la linéarisation ou la sérialisation sérieuse.

L'instruction "la valeur retournée au client ne sera jamais obsolète et cela se produit en temps réel" ignore complètement la présence de caches et de files d'attente, qui vous permettent facilement de lire du passé ou d'écrire pour le futur, alors faites attention à cela .

1
Filip Haglund 3 nov. 2019 à 15:25