Computability Abstractions for Fault-tolerant Asynchronous Distributed Computing - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Thèse Année : 2015

Computability Abstractions for Fault-tolerant Asynchronous Distributed Computing

Abstractions pour la calculabilité dans les systèmes répartis asynchrones tolérant les défaillances

Résumé

In the last decades, computer systems evolved from centralized single processor units running lo- cal programs to interconnected swarms of multi-core machines running communicating processes. Even in the case of single machine local computations, in order to benefit of the multi-core architecture of modern processors, the applications have to be split up into several threads or processes. Communication between these entities is needed in order to achieve the application goal collaboratively and to access shared data in a coherent manner. This already rises numerous issues related to asynchrony, scheduling, mutual exclusion and progress guarantees. To be able to produce correct and efficient single machine programs and systems, these problems have to be tackled by leveraging the hardware primitives multi-core architectures offer, to synchronize the multiple agents involved in the computation. This theses addresses several abstractions, problems, algorithms and reductions in order to better understand, in terms of computability, the links between failure detectors, partitioning systems and iterated models.
Cette thèse porte sur la calculabilité dans les système distribués asynchrones sujets aux défaillances. Plusieurs modèles représentant ce type de systèmes sont étudiés au long de ce document. Les modèles de base sont constitués de processus séquentiels asynchrones commu- nicant par passage de messages ou par mémoire partagée. Dans ces modèles, il n’y a pas de bornes sur les vitesses relatives entre processus. Sauf indication particulière, c’est la version wait-free de ces systèmes qui est prise en considération ; c’est-à-dire que parmi n processus, jusqu’à n − 1 peuvent subir une défaillance. Dans les modèles asynchrones et wait-free, certaines tâches sont impossible à résoudre, essentiellement à cause de l’impossibilité pour les processus de distinguer un processus extrêmement lent d’un processus ayant subi une défaillance. Ainsi, un des problèmes fondamentaux du calcul distribué, le consensus est impossible à résoudre dans ces systèmes [31, 57]. Le consensus consiste, pour les processus, à se mettre d’accord sur une valeur proposée par l’un d’entre eux. Afin de définir, de façon modulaire, de nouveaux modèles, basés sur les modèles asynchrones classiques, dans lesquels ces problèmes ont des solutions, la notion de détecteur de fautes [20, 56] à été introduite. Il s’agit de supposer qu’un dispositif, contrôlé par le système, fournit aux processus de l’information sur les défaillances survenant dans l’exécution considérée. L’exemple le plus connu de détecteur de fautes est Ω, qui fournit à tout moment à chaque processus l’identité d’un guide (l’un d’entre eux). Les guides des processus peuvent prendre des valeurs arbitraires pendant un temps non borné, mais après un temps fini, tous les processus ont le même guide jusqu’à la fin de l’exécution et il s’agit d’un processus n’ayant pas subi de défaillance. Il a été prouvé dans [19] qu’Ω est à la fois nécessaire et suffisant pour résoudre le consensus dans les modèles wait-free asynchrones dans lequels les processus communiquent par mémoire partagée.
Fichier principal
Vignette du fichier
STAINER_Julien.pdf (889.62 Ko) Télécharger le fichier

Dates et versions

tel-01256926 , version 1 (15-01-2016)
tel-01256926 , version 2 (18-01-2016)

Identifiants

  • HAL Id : tel-01256926 , version 1

Citer

Julien Stainer. Computability Abstractions for Fault-tolerant Asynchronous Distributed Computing . Distributed, Parallel, and Cluster Computing [cs.DC]. Université de Rennes 1, 2015. English. ⟨NNT : ⟩. ⟨tel-01256926v1⟩
357 Consultations
233 Téléchargements

Partager

Gmail Facebook X LinkedIn More