Dans l'introduction de cet article Objets partagés éventuellement linéarisables (PODC'10) , les auteurs ont présenté l'énoncé suivant sans références:
La linéarisation, cependant, ne peut être atteinte que si et seulement si un consensus peut être trouvé.
Ici, la linéarisation est la propriété de cohérence connue la plus forte des objets partagés, qui est proposée dans le document Linearizability: A Correctness Condition for Concurrent Objects .
Je suis confus au sujet de la déclaration ci-dessus en raison des arguments suivants:
Dans l'article Partager la mémoire de manière robuste dans les systèmes de transmission de messages (JACM95) , nous savons que la linéarisation peut être obtenue dans le système de transmission de messages asynchrone, tout en tolérant une minorité de pannes de processus:
Tout algorithme sans attente basé sur des registres atomiques multi-lecteurs à écriture unique peut être automatiquement émulé dans des systèmes de transmission de messages, à condition qu'au moins la majorité des processeurs ne soient pas défectueux et restent connectés.
D'un autre côté, le document Impossibility of Distributed Consensus with One Faulty Process (JACM85) a prouvé le résultat d'impossibilité du consensus même avec un seul crash de processus:
Le problème du consensus implique un système de processus asynchrone, dont certains peuvent ne pas être fiables. Le problème est que les processus fiables conviennent d'une valeur binaire. Dans cet article, il est montré que chaque protocole pour ce problème a la possibilité de non-terminaison, même avec un seul processus défectueux.
Par conséquent, pouvons-nous arriver à la conclusion suivante:
le consensus est plus fort que la linéarisation?
Quel est le problème avec mes arguments? Y a-t-il des références directes pour la conclusion d' équivalence ?
Réponses:
La chose que vous vous trompez est "nous savons que la linéarisation peut être réalisée dans le système de transmission de messages asynchrone, tout en tolérant une minorité de plantages de processus." Nous ne le savons pas, et en fait c'est faux.
Ce que la citation du document JACM95 montre, c'est que les registres multi-lecteurs à rédacteur unique peuvent être implémentés en utilisant le passage de messages. Et uniquement ce type de registres, ou tout autre objet pouvant être implémenté (compte tenu d'une minorité de plantages) à partir de ces registres. Cela inclut par exemple les registres multi-lecteurs multi-lecteurs (MWMR).
En revanche, la linéarisation n'est pas limitée aux objets qui peuvent être implémentés à l'aide de registres multi-lecteurs à écriture unique. Un exemple de tels objets sont ceux qui prennent en charge les opérations de lecture-modification-écriture (atomiques).
En fait, comme Attiya et al soulignent (Section 7) de tels objets ne peuvent pas être implémentés par les registres MWMR précisément parce qu'ils permettent de résoudre le consensus (cf. Synchronisation sans attente par Herlihy) et donc l'implémentabilité contredirait le résultat FLP.
la source
atomicity of operations on a single object
avecsequential specifications are not violated
?Eventually Linearizable Shared Objects (PODC'10)
et j'ai remarqué que des objets arbitraires (au lieu de seulement des registres SWMR) étaient considérés.